mm/page_alloc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
From: Ye Liu <liuye@kylinos.cn>
Use max() macro to simplify the calculation of maximum lowmem_reserve
value in calculate_totalreserve_pages(), instead of open-coding the
comparison. The functionality remains identical.
Signed-off-by: Ye Liu <liuye@kylinos.cn>
---
mm/page_alloc.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 64872214bc7d..8a55a4951d19 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -6236,8 +6236,7 @@ static void calculate_totalreserve_pages(void)
/* Find valid and maximum lowmem_reserve in the zone */
for (j = i; j < MAX_NR_ZONES; j++) {
- if (zone->lowmem_reserve[j] > max)
- max = zone->lowmem_reserve[j];
+ max = max(max, zone->lowmem_reserve[j]);
}
/* we treat the high watermark as reserved pages. */
--
2.43.0
On 14 Aug 2025, at 5:00, Ye Liu wrote: > From: Ye Liu <liuye@kylinos.cn> > > Use max() macro to simplify the calculation of maximum lowmem_reserve > value in calculate_totalreserve_pages(), instead of open-coding the > comparison. The functionality remains identical. > > Signed-off-by: Ye Liu <liuye@kylinos.cn> > --- > mm/page_alloc.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 64872214bc7d..8a55a4951d19 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -6236,8 +6236,7 @@ static void calculate_totalreserve_pages(void) > > /* Find valid and maximum lowmem_reserve in the zone */ > for (j = i; j < MAX_NR_ZONES; j++) { > - if (zone->lowmem_reserve[j] > max) > - max = zone->lowmem_reserve[j]; > + max = max(max, zone->lowmem_reserve[j]); > } There is a “if (max > managed_pages)” below. Maybe convert that as well? Feel free to add Acked-by: Zi Yan <ziy@nvidia.com>. Best Regards, Yan, Zi
在 2025/8/14 22:47, Zi Yan 写道: > On 14 Aug 2025, at 5:00, Ye Liu wrote: > >> From: Ye Liu <liuye@kylinos.cn> >> >> Use max() macro to simplify the calculation of maximum lowmem_reserve >> value in calculate_totalreserve_pages(), instead of open-coding the >> comparison. The functionality remains identical. >> >> Signed-off-by: Ye Liu <liuye@kylinos.cn> >> --- >> mm/page_alloc.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/mm/page_alloc.c b/mm/page_alloc.c >> index 64872214bc7d..8a55a4951d19 100644 >> --- a/mm/page_alloc.c >> +++ b/mm/page_alloc.c >> @@ -6236,8 +6236,7 @@ static void calculate_totalreserve_pages(void) >> >> /* Find valid and maximum lowmem_reserve in the zone */ >> for (j = i; j < MAX_NR_ZONES; j++) { >> - if (zone->lowmem_reserve[j] > max) >> - max = zone->lowmem_reserve[j]; >> + max = max(max, zone->lowmem_reserve[j]); >> } > > There is a “if (max > managed_pages)” below. Maybe convert that as well? I should use min() here, but I noticed the two variables have different types: one is 'long' and the other is 'unsigned long'. So, I should use min_t(). But then again, why is lowmem_reserve of type 'long'? It should be a non-negative number, right? Is it possible to change the type of lowmem_reserve to 'unsigned long' and change all uses of it at the same time? Is it necessary? > > Feel free to add Acked-by: Zi Yan <ziy@nvidia.com>. > > Best Regards, > Yan, Zi -- Thanks, Ye Liu
On 14 Aug 2025, at 21:38, Ye Liu wrote: > 在 2025/8/14 22:47, Zi Yan 写道: >> On 14 Aug 2025, at 5:00, Ye Liu wrote: >> >>> From: Ye Liu <liuye@kylinos.cn> >>> >>> Use max() macro to simplify the calculation of maximum lowmem_reserve >>> value in calculate_totalreserve_pages(), instead of open-coding the >>> comparison. The functionality remains identical. >>> >>> Signed-off-by: Ye Liu <liuye@kylinos.cn> >>> --- >>> mm/page_alloc.c | 3 +-- >>> 1 file changed, 1 insertion(+), 2 deletions(-) >>> >>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c >>> index 64872214bc7d..8a55a4951d19 100644 >>> --- a/mm/page_alloc.c >>> +++ b/mm/page_alloc.c >>> @@ -6236,8 +6236,7 @@ static void calculate_totalreserve_pages(void) >>> >>> /* Find valid and maximum lowmem_reserve in the zone */ >>> for (j = i; j < MAX_NR_ZONES; j++) { >>> - if (zone->lowmem_reserve[j] > max) >>> - max = zone->lowmem_reserve[j]; >>> + max = max(max, zone->lowmem_reserve[j]); >>> } >> >> There is a “if (max > managed_pages)” below. Maybe convert that as well? > > I should use min() here, but I noticed the two variables have different types: > one is 'long' and the other is 'unsigned long'. So, I should use min_t(). > But then again, why is lowmem_reserve of type 'long'? Based on commit 3484b2de9499 ("mm: rearrange zone fields into read-only, page alloc, statistics and page reclaim lines”), lowmem_reserve type is changed due to the watermark calculation. Looking at current __zone_watermark_ok(), the comment above free_pages -= ... says free_pages may go negative and later free_pages is compared with lowmem_reserve. > It should be a non-negative number, right? > Is it possible to change the type of lowmem_reserve to 'unsigned long' and > change all uses of it at the same time? Is it necessary? In calculate_totalreserve_pages(), max cannot be negative, so you probably can use min_t(unsigned long, max, managed_pages) and without changing lowmem_reserve type. > >> >> Feel free to add Acked-by: Zi Yan <ziy@nvidia.com>. >> >> Best Regards, >> Yan, Zi > > -- > Thanks, > Ye Liu Best Regards, Yan, Zi
On Thu, Aug 14, 2025 at 05:00:52PM +0800, Ye Liu wrote: > From: Ye Liu <liuye@kylinos.cn> > > Use max() macro to simplify the calculation of maximum lowmem_reserve > value in calculate_totalreserve_pages(), instead of open-coding the > comparison. The functionality remains identical. > > Signed-off-by: Ye Liu <liuye@kylinos.cn> You can remove the {} from the for block as well now. Acked-by: Johannes Weiner <hannes@cmpxchg.org>
在 2025/8/14 22:07, Johannes Weiner 写道: > On Thu, Aug 14, 2025 at 05:00:52PM +0800, Ye Liu wrote: >> From: Ye Liu <liuye@kylinos.cn> >> >> Use max() macro to simplify the calculation of maximum lowmem_reserve >> value in calculate_totalreserve_pages(), instead of open-coding the >> comparison. The functionality remains identical. >> >> Signed-off-by: Ye Liu <liuye@kylinos.cn> > > You can remove the {} from the for block as well now. I agree to delete it, but I noticed a patch has been added to the -mm mm-new branch by Andrew Morton[1]. What should I do now? Send v2 ? Or send a new patch? If this is my first time, please feel free to give me some advice. [1]:https://lore.kernel.org/all/20250815004917.03FD7C4CEED@smtp.kernel.org/ > > Acked-by: Johannes Weiner <hannes@cmpxchg.org> -- Thanks, Ye Liu
On 14 Aug 2025, at 21:59, Ye Liu wrote: > 在 2025/8/14 22:07, Johannes Weiner 写道: >> On Thu, Aug 14, 2025 at 05:00:52PM +0800, Ye Liu wrote: >>> From: Ye Liu <liuye@kylinos.cn> >>> >>> Use max() macro to simplify the calculation of maximum lowmem_reserve >>> value in calculate_totalreserve_pages(), instead of open-coding the >>> comparison. The functionality remains identical. >>> >>> Signed-off-by: Ye Liu <liuye@kylinos.cn> >> >> You can remove the {} from the for block as well now. > > I agree to delete it, but I noticed a patch has been added to the -mm > mm-new branch by Andrew Morton[1]. What should I do now? Send v2 ? > Or send a new patch? If this is my first time, please feel free to give me some advice. > [1]:https://lore.kernel.org/all/20250815004917.03FD7C4CEED@smtp.kernel.org/ If you read the message carefully, you will see: “Please do not hesitate to respond to review feedback and post updated versions to replace or incrementally fixup patches in mm-new.” So feel free to send v2. Best Regards, Yan, Zi
© 2016 - 2025 Red Hat, Inc.