* + memcg-move-mem_cgroup_charge_statistics-to-v1-code.patch added to mm-unstable branch
@ 2024-08-15 22:47 Andrew Morton
0 siblings, 0 replies; only message in thread
From: Andrew Morton @ 2024-08-15 22:47 UTC (permalink / raw)
To: mm-commits, tjmercier, roman.gushchin, muchun.song, mhocko,
hannes, shakeel.butt, akpm
The patch titled
Subject: memcg: move mem_cgroup_charge_statistics to v1 code
has been added to the -mm mm-unstable branch. Its filename is
memcg-move-mem_cgroup_charge_statistics-to-v1-code.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/memcg-move-mem_cgroup_charge_statistics-to-v1-code.patch
This patch will later appear in the mm-unstable branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via the mm-everything
branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there every 2-3 working days
------------------------------------------------------
From: Shakeel Butt <shakeel.butt@linux.dev>
Subject: memcg: move mem_cgroup_charge_statistics to v1 code
Date: Wed, 14 Aug 2024 22:04:49 -0700
There are no callers of mem_cgroup_charge_statistics() in the v2 code
base, so move it to the v1 only code and rename it to
memcg1_charge_statistics().
Link: https://lkml.kernel.org/r/20240815050453.1298138-4-shakeel.butt@linux.dev
Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: T.J. Mercier <tjmercier@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/memcontrol-v1.c | 17 +++++++++++++++--
mm/memcontrol-v1.h | 3 ++-
mm/memcontrol.c | 19 +++----------------
3 files changed, 20 insertions(+), 19 deletions(-)
--- a/mm/memcontrol.c~memcg-move-mem_cgroup_charge_statistics-to-v1-code
+++ a/mm/memcontrol.c
@@ -851,19 +851,6 @@ unsigned long memcg_events_local(struct
return READ_ONCE(memcg->vmstats->events_local[i]);
}
-void mem_cgroup_charge_statistics(struct mem_cgroup *memcg, int nr_pages)
-{
- /* pagein of a big page is an event. So, ignore page size */
- if (nr_pages > 0)
- __count_memcg_events(memcg, PGPGIN, 1);
- else {
- __count_memcg_events(memcg, PGPGOUT, 1);
- nr_pages = -nr_pages; /* for event */
- }
-
- __this_cpu_add(memcg->events_percpu->nr_page_events, nr_pages);
-}
-
struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p)
{
/*
@@ -2411,7 +2398,7 @@ void mem_cgroup_commit_charge(struct fol
commit_charge(folio, memcg);
local_irq_disable();
- mem_cgroup_charge_statistics(memcg, folio_nr_pages(folio));
+ memcg1_charge_statistics(memcg, folio_nr_pages(folio));
memcg1_check_events(memcg, folio_nid(folio));
local_irq_enable();
}
@@ -4790,7 +4777,7 @@ void mem_cgroup_replace_folio(struct fol
commit_charge(new, memcg);
local_irq_save(flags);
- mem_cgroup_charge_statistics(memcg, nr_pages);
+ memcg1_charge_statistics(memcg, nr_pages);
memcg1_check_events(memcg, folio_nid(new));
local_irq_restore(flags);
}
@@ -5035,7 +5022,7 @@ void mem_cgroup_swapout(struct folio *fo
* only synchronisation we have for updating the per-CPU variables.
*/
memcg_stats_lock();
- mem_cgroup_charge_statistics(memcg, -nr_entries);
+ memcg1_charge_statistics(memcg, -nr_entries);
memcg_stats_unlock();
memcg1_check_events(memcg, folio_nid(folio));
--- a/mm/memcontrol-v1.c~memcg-move-mem_cgroup_charge_statistics-to-v1-code
+++ a/mm/memcontrol-v1.c
@@ -853,9 +853,9 @@ static int mem_cgroup_move_account(struc
nid = folio_nid(folio);
local_irq_disable();
- mem_cgroup_charge_statistics(to, nr_pages);
+ memcg1_charge_statistics(to, nr_pages);
memcg1_check_events(to, nid);
- mem_cgroup_charge_statistics(from, -nr_pages);
+ memcg1_charge_statistics(from, -nr_pages);
memcg1_check_events(from, nid);
local_irq_enable();
out:
@@ -1439,6 +1439,19 @@ static void mem_cgroup_threshold(struct
}
}
+void memcg1_charge_statistics(struct mem_cgroup *memcg, int nr_pages)
+{
+ /* pagein of a big page is an event. So, ignore page size */
+ if (nr_pages > 0)
+ __count_memcg_events(memcg, PGPGIN, 1);
+ else {
+ __count_memcg_events(memcg, PGPGOUT, 1);
+ nr_pages = -nr_pages; /* for event */
+ }
+
+ __this_cpu_add(memcg->events_percpu->nr_page_events, nr_pages);
+}
+
#define THRESHOLDS_EVENTS_TARGET 128
#define SOFTLIMIT_EVENTS_TARGET 1024
--- a/mm/memcontrol-v1.h~memcg-move-mem_cgroup_charge_statistics-to-v1-code
+++ a/mm/memcontrol-v1.h
@@ -7,7 +7,6 @@
/* Cgroup v1 and v2 common declarations */
-void mem_cgroup_charge_statistics(struct mem_cgroup *memcg, int nr_pages);
int try_charge_memcg(struct mem_cgroup *memcg, gfp_t gfp_mask,
unsigned int nr_pages);
@@ -116,6 +115,7 @@ bool memcg1_oom_prepare(struct mem_cgrou
void memcg1_oom_finish(struct mem_cgroup *memcg, bool locked);
void memcg1_oom_recover(struct mem_cgroup *memcg);
+void memcg1_charge_statistics(struct mem_cgroup *memcg, int nr_pages);
void memcg1_check_events(struct mem_cgroup *memcg, int nid);
void memcg1_stat_format(struct mem_cgroup *memcg, struct seq_buf *s);
@@ -147,6 +147,7 @@ static inline bool memcg1_oom_prepare(st
static inline void memcg1_oom_finish(struct mem_cgroup *memcg, bool locked) {}
static inline void memcg1_oom_recover(struct mem_cgroup *memcg) {}
+static inline void memcg1_charge_statistics(struct mem_cgroup *memcg, int nr_pages) {}
static inline void memcg1_check_events(struct mem_cgroup *memcg, int nid) {}
static inline void memcg1_stat_format(struct mem_cgroup *memcg, struct seq_buf *s) {}
_
Patches currently in -mm which might be from shakeel.butt@linux.dev are
memcg-increase-the-valid-index-range-for-memcg-stats.patch
memcg-replace-memcg-id-idr-with-xarray.patch
memcg-replace-memcg-id-idr-with-xarray-v2.patch
memcg-use-ratelimited-stats-flush-in-the-reclaim.patch
memcg-move-v1-only-percpu-stats-in-separate-struct.patch
memcg-move-mem_cgroup_event_ratelimit-to-v1-code.patch
memcg-move-mem_cgroup_charge_statistics-to-v1-code.patch
memcg-move-v1-events-and-statistics-code-to-v1-file.patch
memcg-make-v1-only-functions-static.patch
memcg-allocate-v1-event-percpu-only-on-v1-deployment.patch
memcg-make-pgpgin-and-pgpgout-v1-only.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-08-15 22:47 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-15 22:47 + memcg-move-mem_cgroup_charge_statistics-to-v1-code.patch added to mm-unstable branch Andrew Morton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.