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>
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 2ef4b972470b..4615f34911d1 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 COLLAPSE_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;
@@ -256,7 +257,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 > COLLAPSE_MAX_PTES_LIMIT)
return -EINVAL;
khugepaged_max_ptes_none = max_ptes_none;
@@ -281,7 +282,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 > COLLAPSE_MAX_PTES_LIMIT)
return -EINVAL;
khugepaged_max_ptes_swap = max_ptes_swap;
@@ -307,7 +308,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 > COLLAPSE_MAX_PTES_LIMIT)
return -EINVAL;
khugepaged_max_ptes_shared = max_ptes_shared;
@@ -379,7 +380,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 = COLLAPSE_MAX_PTES_LIMIT;
khugepaged_max_ptes_swap = HPAGE_PMD_NR / 8;
khugepaged_max_ptes_shared = HPAGE_PMD_NR / 2;
--
2.53.0
On 2/26/26 02:29, 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> > 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 2ef4b972470b..4615f34911d1 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 COLLAPSE_MAX_PTES_LIMIT (HPAGE_PMD_NR - 1) I'd call it "KHUGEPAGED_MAX_PTES_LIMIT", because it's khugepaged specific (no madvise) and matches the parameters. Apart from that Acked-by: David Hildenbrand (Arm) <david@kernel.org> -- Cheers, David
On Thu, Feb 26, 2026 at 2:28 AM David Hildenbrand (Arm) <david@kernel.org> wrote: > > On 2/26/26 02:29, 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> > > 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 2ef4b972470b..4615f34911d1 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 COLLAPSE_MAX_PTES_LIMIT (HPAGE_PMD_NR - 1) > > I'd call it "KHUGEPAGED_MAX_PTES_LIMIT", because it's khugepaged > specific (no madvise) and matches the parameters. Ok before changing that, note that this is also leveraged in the mTHP set. It's technically used for madvise collapse because when it's not khugepaged we set max_ptes_none= 511. But I'm ok with either name! I just want to make sure it makes sense for the later users too. Thanks :) -- Nico > > Apart from that > > Acked-by: David Hildenbrand (Arm) <david@kernel.org> > > -- > Cheers, > > David >
On 2/26/26 21:17, Nico Pache wrote: > On Thu, Feb 26, 2026 at 2:28 AM David Hildenbrand (Arm) > <david@kernel.org> wrote: >> >> On 2/26/26 02:29, 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> >>> 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 2ef4b972470b..4615f34911d1 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 COLLAPSE_MAX_PTES_LIMIT (HPAGE_PMD_NR - 1) >> >> I'd call it "KHUGEPAGED_MAX_PTES_LIMIT", because it's khugepaged >> specific (no madvise) and matches the parameters. > > Ok before changing that, note that this is also leveraged in the mTHP > set. It's technically used for madvise collapse because when it's not > khugepaged we set max_ptes_none= 511. It's more about disabling that parameter, right? -- Cheers, David
On Fri, Feb 27, 2026 at 1:53 AM David Hildenbrand (Arm) <david@kernel.org> wrote: > > On 2/26/26 21:17, Nico Pache wrote: > > On Thu, Feb 26, 2026 at 2:28 AM David Hildenbrand (Arm) > > <david@kernel.org> wrote: > >> > >> On 2/26/26 02:29, 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> > >>> 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 2ef4b972470b..4615f34911d1 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 COLLAPSE_MAX_PTES_LIMIT (HPAGE_PMD_NR - 1) > >> > >> I'd call it "KHUGEPAGED_MAX_PTES_LIMIT", because it's khugepaged > >> specific (no madvise) and matches the parameters. > > > > Ok before changing that, note that this is also leveraged in the mTHP > > set. It's technically used for madvise collapse because when it's not > > khugepaged we set max_ptes_none= 511. > > It's more about disabling that parameter, right? Yeah, we conditionally set `max_ptes_none = ..._MAX_PTES_LIMIT` for the case where no pte limit should be enforced. -- Nico > > -- > Cheers, > > David >
On 2/26/26 9:29 AM, 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> > Reviewed-by: Zi Yan <ziy@nvidia.com> > Signed-off-by: Nico Pache <npache@redhat.com> > --- Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
© 2016 - 2026 Red Hat, Inc.