Message ID | 20230612125102.1674568-1-zhangpeng362@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | memblock: use the helper macro for_each_zone | expand |
On Mon, Jun 12, 2023 at 08:51:02PM +0800, Peng Zhang wrote: > From: ZhangPeng <zhangpeng362@huawei.com> > > Let's use the helper macro for_each_zone to iterate over all memory > zones and reset the node managed pages. After that, we can remove the > unused function reset_node_managed_pages. Are you sure it's safe to use for_each_zone() in all users of reset_all_zones_managed_pages()? > Signed-off-by: ZhangPeng <zhangpeng362@huawei.com> > --- > mm/memblock.c | 14 +++----------- > 1 file changed, 3 insertions(+), 11 deletions(-) > > diff --git a/mm/memblock.c b/mm/memblock.c > index da4264528e1e..af552604c3fb 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -2122,23 +2122,15 @@ static unsigned long __init free_low_memory_core_early(void) > > static int reset_managed_pages_done __initdata; > > -static void __init reset_node_managed_pages(pg_data_t *pgdat) > -{ > - struct zone *z; > - > - for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++) > - atomic_long_set(&z->managed_pages, 0); > -} > - > void __init reset_all_zones_managed_pages(void) > { > - struct pglist_data *pgdat; > + struct zone *z; > > if (reset_managed_pages_done) > return; > > - for_each_online_pgdat(pgdat) > - reset_node_managed_pages(pgdat); > + for_each_zone(z) > + atomic_long_set(&z->managed_pages, 0); > > reset_managed_pages_done = 1; > } > -- > 2.25.1 >
On 2023/6/14 19:46, Mike Rapoport wrote: > On Mon, Jun 12, 2023 at 08:51:02PM +0800, Peng Zhang wrote: >> From: ZhangPeng <zhangpeng362@huawei.com> >> >> Let's use the helper macro for_each_zone to iterate over all memory >> zones and reset the node managed pages. After that, we can remove the >> unused function reset_node_managed_pages. > Are you sure it's safe to use for_each_zone() in all users of > reset_all_zones_managed_pages()? > Thanks for your review. Using for_each_zone() is indeed unsafe in some users of reset_all_zones_managed_pages(). Please ignore. Thanks, Peng >> Signed-off-by: ZhangPeng <zhangpeng362@huawei.com> >> --- >> mm/memblock.c | 14 +++----------- >> 1 file changed, 3 insertions(+), 11 deletions(-) >> >> diff --git a/mm/memblock.c b/mm/memblock.c >> index da4264528e1e..af552604c3fb 100644 >> --- a/mm/memblock.c >> +++ b/mm/memblock.c >> @@ -2122,23 +2122,15 @@ static unsigned long __init free_low_memory_core_early(void) >> >> static int reset_managed_pages_done __initdata; >> >> -static void __init reset_node_managed_pages(pg_data_t *pgdat) >> -{ >> - struct zone *z; >> - >> - for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++) >> - atomic_long_set(&z->managed_pages, 0); >> -} >> - >> void __init reset_all_zones_managed_pages(void) >> { >> - struct pglist_data *pgdat; >> + struct zone *z; >> >> if (reset_managed_pages_done) >> return; >> >> - for_each_online_pgdat(pgdat) >> - reset_node_managed_pages(pgdat); >> + for_each_zone(z) >> + atomic_long_set(&z->managed_pages, 0); >> >> reset_managed_pages_done = 1; >> } >> -- >> 2.25.1 >>
diff --git a/mm/memblock.c b/mm/memblock.c index da4264528e1e..af552604c3fb 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -2122,23 +2122,15 @@ static unsigned long __init free_low_memory_core_early(void) static int reset_managed_pages_done __initdata; -static void __init reset_node_managed_pages(pg_data_t *pgdat) -{ - struct zone *z; - - for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++) - atomic_long_set(&z->managed_pages, 0); -} - void __init reset_all_zones_managed_pages(void) { - struct pglist_data *pgdat; + struct zone *z; if (reset_managed_pages_done) return; - for_each_online_pgdat(pgdat) - reset_node_managed_pages(pgdat); + for_each_zone(z) + atomic_long_set(&z->managed_pages, 0); reset_managed_pages_done = 1; }