OSDN Git Service

lib/show_mem.c: use for_each_populated_zone() simplify code
authorYajun Deng <yajun.deng@linux.dev>
Mon, 17 Apr 2023 03:52:26 +0000 (11:52 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 21 Apr 2023 21:52:02 +0000 (14:52 -0700)
__show_mem() needs to iterate over all zones that have memory, we can
simplify the code by using for_each_populated_zone().

Link: https://lkml.kernel.org/r/20230417035226.4013584-1-yajun.deng@linux.dev
Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/show_mem.c

index 0d7585c..1485c87 100644 (file)
 
 void __show_mem(unsigned int filter, nodemask_t *nodemask, int max_zone_idx)
 {
-       pg_data_t *pgdat;
        unsigned long total = 0, reserved = 0, highmem = 0;
+       struct zone *zone;
 
        printk("Mem-Info:\n");
        __show_free_areas(filter, nodemask, max_zone_idx);
 
-       for_each_online_pgdat(pgdat) {
-               int zoneid;
+       for_each_populated_zone(zone) {
 
-               for (zoneid = 0; zoneid < MAX_NR_ZONES; zoneid++) {
-                       struct zone *zone = &pgdat->node_zones[zoneid];
-                       if (!populated_zone(zone))
-                               continue;
+               total += zone->present_pages;
+               reserved += zone->present_pages - zone_managed_pages(zone);
 
-                       total += zone->present_pages;
-                       reserved += zone->present_pages - zone_managed_pages(zone);
-
-                       if (is_highmem_idx(zoneid))
-                               highmem += zone->present_pages;
-               }
+               if (is_highmem(zone))
+                       highmem += zone->present_pages;
        }
 
        printk("%lu pages RAM\n", total);