[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230105125248.772766288@redhat.com>
Date: Thu, 05 Jan 2023 09:52:19 -0300
From: Marcelo Tosatti <mtosatti@...hat.com>
To: atomlin@...mlin.com, frederic@...nel.org
Cc: cl@...ux.com, tglx@...utronix.de, mingo@...nel.org,
peterz@...radead.org, pauld@...hat.com, neelx@...hat.com,
oleksandr@...alenko.name, linux-kernel@...r.kernel.org,
linux-mm@...ck.org, Marcelo Tosatti <mtosatti@...hat.com>
Subject: [PATCH v13 1/6] mm/vmstat: Add CPU-specific variable to track a vmstat discrepancy
From: Aaron Tomlin <atomlin@...mlin.com>
Introduce a CPU-specific variable namely vmstat_dirty to indicate
if a vmstat imbalance is present for a given CPU. Therefore, at
the appropriate time, we can fold all the remaining differentials.
This patch also provides trivial helpers for modification and testing.
Signed-off-by: Aaron Tomlin <atomlin@...mlin.com>
Signed-off-by: Marcelo Tosatti <mtosatti@...hat.com>
---
mm/vmstat.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
Index: linux-2.6/mm/vmstat.c
===================================================================
--- linux-2.6.orig/mm/vmstat.c
+++ linux-2.6/mm/vmstat.c
@@ -194,6 +194,22 @@ void fold_vm_numa_events(void)
#endif
#ifdef CONFIG_SMP
+static DEFINE_PER_CPU_ALIGNED(bool, vmstat_dirty);
+
+static inline void vmstat_mark_dirty(void)
+{
+ this_cpu_write(vmstat_dirty, true);
+}
+
+static inline void vmstat_clear_dirty(void)
+{
+ this_cpu_write(vmstat_dirty, false);
+}
+
+static inline bool is_vmstat_dirty(void)
+{
+ return this_cpu_read(vmstat_dirty);
+}
int calculate_pressure_threshold(struct zone *zone)
{
Powered by blists - more mailing lists