The value (HPAGE_PMD_NR - 1) is used often in the khugepaged code to
signify the limit of the max_ptes_* values. Add a define for this to
increase code readability and reuse.
Acked-by: Pedro Falcato <pfalcato@suse.de>
Acked-by: David Hildenbrand (Arm) <david@kernel.org>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Nico Pache <npache@redhat.com>
---
mm/khugepaged.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/mm/khugepaged.c b/mm/khugepaged.c
index d3bdec4ec61b..db77ab5b315e 100644
--- a/mm/khugepaged.c
+++ b/mm/khugepaged.c
@@ -89,6 +89,7 @@ static DECLARE_WAIT_QUEUE_HEAD(khugepaged_wait);
*
* Note that these are only respected if collapse was initiated by khugepaged.
*/
+#define KHUGEPAGED_MAX_PTES_LIMIT (HPAGE_PMD_NR - 1)
unsigned int khugepaged_max_ptes_none __read_mostly;
static unsigned int khugepaged_max_ptes_swap __read_mostly;
static unsigned int khugepaged_max_ptes_shared __read_mostly;
@@ -259,7 +260,7 @@ static ssize_t max_ptes_none_store(struct kobject *kobj,
unsigned long max_ptes_none;
err = kstrtoul(buf, 10, &max_ptes_none);
- if (err || max_ptes_none > HPAGE_PMD_NR - 1)
+ if (err || max_ptes_none > KHUGEPAGED_MAX_PTES_LIMIT)
return -EINVAL;
khugepaged_max_ptes_none = max_ptes_none;
@@ -284,7 +285,7 @@ static ssize_t max_ptes_swap_store(struct kobject *kobj,
unsigned long max_ptes_swap;
err = kstrtoul(buf, 10, &max_ptes_swap);
- if (err || max_ptes_swap > HPAGE_PMD_NR - 1)
+ if (err || max_ptes_swap > KHUGEPAGED_MAX_PTES_LIMIT)
return -EINVAL;
khugepaged_max_ptes_swap = max_ptes_swap;
@@ -310,7 +311,7 @@ static ssize_t max_ptes_shared_store(struct kobject *kobj,
unsigned long max_ptes_shared;
err = kstrtoul(buf, 10, &max_ptes_shared);
- if (err || max_ptes_shared > HPAGE_PMD_NR - 1)
+ if (err || max_ptes_shared > KHUGEPAGED_MAX_PTES_LIMIT)
return -EINVAL;
khugepaged_max_ptes_shared = max_ptes_shared;
@@ -382,7 +383,7 @@ int __init khugepaged_init(void)
return -ENOMEM;
khugepaged_pages_to_scan = HPAGE_PMD_NR * 8;
- khugepaged_max_ptes_none = HPAGE_PMD_NR - 1;
+ khugepaged_max_ptes_none = KHUGEPAGED_MAX_PTES_LIMIT;
khugepaged_max_ptes_swap = HPAGE_PMD_NR / 8;
khugepaged_max_ptes_shared = HPAGE_PMD_NR / 2;
--
2.53.0
On Wed, Mar 11, 2026 at 03:13:13PM -0600, Nico Pache wrote: > The value (HPAGE_PMD_NR - 1) is used often in the khugepaged code to > signify the limit of the max_ptes_* values. Add a define for this to > increase code readability and reuse. > > Acked-by: Pedro Falcato <pfalcato@suse.de> > Acked-by: David Hildenbrand (Arm) <david@kernel.org> > Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com> > Reviewed-by: Zi Yan <ziy@nvidia.com> > Signed-off-by: Nico Pache <npache@redhat.com> Hm didn't I suggest this? Or actually I can't remember :P Anyway LGTM, so: Reviewed-by: Lorenzo Stoakes (Oracle) <ljs@kernel.org> > --- > mm/khugepaged.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index d3bdec4ec61b..db77ab5b315e 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -89,6 +89,7 @@ static DECLARE_WAIT_QUEUE_HEAD(khugepaged_wait); > * > * Note that these are only respected if collapse was initiated by khugepaged. > */ > +#define KHUGEPAGED_MAX_PTES_LIMIT (HPAGE_PMD_NR - 1) > unsigned int khugepaged_max_ptes_none __read_mostly; > static unsigned int khugepaged_max_ptes_swap __read_mostly; > static unsigned int khugepaged_max_ptes_shared __read_mostly; > @@ -259,7 +260,7 @@ static ssize_t max_ptes_none_store(struct kobject *kobj, > unsigned long max_ptes_none; > > err = kstrtoul(buf, 10, &max_ptes_none); > - if (err || max_ptes_none > HPAGE_PMD_NR - 1) > + if (err || max_ptes_none > KHUGEPAGED_MAX_PTES_LIMIT) > return -EINVAL; > > khugepaged_max_ptes_none = max_ptes_none; > @@ -284,7 +285,7 @@ static ssize_t max_ptes_swap_store(struct kobject *kobj, > unsigned long max_ptes_swap; > > err = kstrtoul(buf, 10, &max_ptes_swap); > - if (err || max_ptes_swap > HPAGE_PMD_NR - 1) > + if (err || max_ptes_swap > KHUGEPAGED_MAX_PTES_LIMIT) > return -EINVAL; > > khugepaged_max_ptes_swap = max_ptes_swap; > @@ -310,7 +311,7 @@ static ssize_t max_ptes_shared_store(struct kobject *kobj, > unsigned long max_ptes_shared; > > err = kstrtoul(buf, 10, &max_ptes_shared); > - if (err || max_ptes_shared > HPAGE_PMD_NR - 1) > + if (err || max_ptes_shared > KHUGEPAGED_MAX_PTES_LIMIT) > return -EINVAL; > > khugepaged_max_ptes_shared = max_ptes_shared; > @@ -382,7 +383,7 @@ int __init khugepaged_init(void) > return -ENOMEM; > > khugepaged_pages_to_scan = HPAGE_PMD_NR * 8; > - khugepaged_max_ptes_none = HPAGE_PMD_NR - 1; > + khugepaged_max_ptes_none = KHUGEPAGED_MAX_PTES_LIMIT; > khugepaged_max_ptes_swap = HPAGE_PMD_NR / 8; > khugepaged_max_ptes_shared = HPAGE_PMD_NR / 2; > > -- > 2.53.0 >
On 3/16/26 12:18 PM, Lorenzo Stoakes (Oracle) wrote: > On Wed, Mar 11, 2026 at 03:13:13PM -0600, Nico Pache wrote: >> The value (HPAGE_PMD_NR - 1) is used often in the khugepaged code to >> signify the limit of the max_ptes_* values. Add a define for this to >> increase code readability and reuse. >> >> Acked-by: Pedro Falcato <pfalcato@suse.de> >> Acked-by: David Hildenbrand (Arm) <david@kernel.org> >> Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com> >> Reviewed-by: Zi Yan <ziy@nvidia.com> >> Signed-off-by: Nico Pache <npache@redhat.com> > > Hm didn't I suggest this? Or actually I can't remember :P I think you suggested most of these patches ;P Ill make sure to add your SB tag on the followups! > > Anyway LGTM, so: > > Reviewed-by: Lorenzo Stoakes (Oracle) <ljs@kernel.org> Thank you! > >> --- >> mm/khugepaged.c | 9 +++++---- >> 1 file changed, 5 insertions(+), 4 deletions(-) >> >> diff --git a/mm/khugepaged.c b/mm/khugepaged.c >> index d3bdec4ec61b..db77ab5b315e 100644 >> --- a/mm/khugepaged.c >> +++ b/mm/khugepaged.c >> @@ -89,6 +89,7 @@ static DECLARE_WAIT_QUEUE_HEAD(khugepaged_wait); >> * >> * Note that these are only respected if collapse was initiated by khugepaged. >> */ >> +#define KHUGEPAGED_MAX_PTES_LIMIT (HPAGE_PMD_NR - 1) >> unsigned int khugepaged_max_ptes_none __read_mostly; >> static unsigned int khugepaged_max_ptes_swap __read_mostly; >> static unsigned int khugepaged_max_ptes_shared __read_mostly; >> @@ -259,7 +260,7 @@ static ssize_t max_ptes_none_store(struct kobject *kobj, >> unsigned long max_ptes_none; >> >> err = kstrtoul(buf, 10, &max_ptes_none); >> - if (err || max_ptes_none > HPAGE_PMD_NR - 1) >> + if (err || max_ptes_none > KHUGEPAGED_MAX_PTES_LIMIT) >> return -EINVAL; >> >> khugepaged_max_ptes_none = max_ptes_none; >> @@ -284,7 +285,7 @@ static ssize_t max_ptes_swap_store(struct kobject *kobj, >> unsigned long max_ptes_swap; >> >> err = kstrtoul(buf, 10, &max_ptes_swap); >> - if (err || max_ptes_swap > HPAGE_PMD_NR - 1) >> + if (err || max_ptes_swap > KHUGEPAGED_MAX_PTES_LIMIT) >> return -EINVAL; >> >> khugepaged_max_ptes_swap = max_ptes_swap; >> @@ -310,7 +311,7 @@ static ssize_t max_ptes_shared_store(struct kobject *kobj, >> unsigned long max_ptes_shared; >> >> err = kstrtoul(buf, 10, &max_ptes_shared); >> - if (err || max_ptes_shared > HPAGE_PMD_NR - 1) >> + if (err || max_ptes_shared > KHUGEPAGED_MAX_PTES_LIMIT) >> return -EINVAL; >> >> khugepaged_max_ptes_shared = max_ptes_shared; >> @@ -382,7 +383,7 @@ int __init khugepaged_init(void) >> return -ENOMEM; >> >> khugepaged_pages_to_scan = HPAGE_PMD_NR * 8; >> - khugepaged_max_ptes_none = HPAGE_PMD_NR - 1; >> + khugepaged_max_ptes_none = KHUGEPAGED_MAX_PTES_LIMIT; >> khugepaged_max_ptes_swap = HPAGE_PMD_NR / 8; >> khugepaged_max_ptes_shared = HPAGE_PMD_NR / 2; >> >> -- >> 2.53.0 >> >
© 2016 - 2026 Red Hat, Inc.