[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220804074730.GA3269@haolee.io>
Date: Thu, 4 Aug 2022 07:47:30 +0000
From: Hao Lee <haolee.swjtu@...il.com>
To: akpm@...ux-foundation.org
Cc: david@...hat.com, yang.shi@...ux.alibaba.com, hannes@...xchg.org,
haolee.swjtu@...il.com, linux-kernel@...r.kernel.org,
linux-mm@...ck.org
Subject: [PATCH] mm: add DEVICE_ZONE to FOR_ALL_ZONES
FOR_ALL_ZONES should be consistent with enum zone_type. Otherwise,
__count_zid_vm_events have the potential to add count to wrong
item when zid is ZONE_DEVICE.
Signed-off-by: Hao Lee <haolee.swjtu@...il.com>
---
include/linux/vm_event_item.h | 9 ++++++++-
mm/vmstat.c | 9 ++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h
index 7b2363388bfa..bcd57ab55413 100644
--- a/include/linux/vm_event_item.h
+++ b/include/linux/vm_event_item.h
@@ -20,7 +20,14 @@
#define HIGHMEM_ZONE(xx)
#endif
-#define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, HIGHMEM_ZONE(xx) xx##_MOVABLE
+#ifdef CONFIG_ZONE_DEVICE
+#define DEVICE_ZONE(xx) xx##_DEVICE
+#else
+#define DEVICE_ZONE(xx)
+#endif
+
+#define FOR_ALL_ZONES(xx) (DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
+ HIGHMEM_ZONE(xx) xx##_MOVABLE, DEVICE_ZONE(xx))
enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
FOR_ALL_ZONES(PGALLOC),
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 4057372745d0..5ccaeac44e61 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -1167,8 +1167,15 @@ int fragmentation_index(struct zone *zone, unsigned int order)
#define TEXT_FOR_HIGHMEM(xx)
#endif
+#ifdef CONFIG_ZONE_DEVICE
+#define TEXT_FOR_DEVICE(xx) xx "_device",
+#else
+#define TEXT_FOR_DEVICE(xx)
+#endif
+
#define TEXTS_FOR_ZONES(xx) TEXT_FOR_DMA(xx) TEXT_FOR_DMA32(xx) xx "_normal", \
- TEXT_FOR_HIGHMEM(xx) xx "_movable",
+ TEXT_FOR_HIGHMEM(xx) xx "_movable", \
+ TEXT_FOR_DEVICE(xx)
const char * const vmstat_text[] = {
/* enum zone_stat_item counters */
--
2.35.1
Powered by blists - more mailing lists