Re: [PATCH] mmzone: Introduce for_each_populated_zone_pgdat()

From: Matthew Wilcox
Date: Sun Apr 23 2023 - 23:50:57 EST


On Mon, Apr 24, 2023 at 11:07:56AM +0800, Yajun Deng wrote:
> Instead of define an index and determining if the zone has memory,
> introduce for_each_populated_zone_pgdat() helper that can be used
> to iterate over each populated zone in pgdat, and convert the most
> obvious users to it.

I don't think the complexity of the helper justifies the simplification
of the users.

> +++ b/include/linux/mmzone.h
> @@ -1580,6 +1580,14 @@ extern struct zone *next_zone(struct zone *zone);
> ; /* do nothing */ \
> else
>
> +#define for_each_populated_zone_pgdat(zone, pgdat, max) \
> + for (zone = pgdat->node_zones; \
> + zone < pgdat->node_zones + max; \
> + zone++) \
> + if (!populated_zone(zone)) \
> + ; /* do nothing */ \
> + else
> +