Skip to content

Commit 7a70447

Browse files
yosrym93akpm00
authored andcommitted
mm: memcg: rename and document global_reclaim()
Evidently, global_reclaim() can be a confusing name. Especially that it used to exist before with a subtly different definition (removed by commit b5ead35 ("mm: vmscan: naming fixes: global_reclaim() and sane_reclaim()"). It can be interpreted as non-cgroup reclaim, even though it returns true for cgroup reclaim on the root memcg (through memory.reclaim). Rename it to root_reclaim() in an attempt to make it less ambiguous, and add documentation to it as well as cgroup_reclaim. Link: https://lkml.kernel.org/r/20230621023053.432374-1-yosryahmed@google.com Signed-off-by: Yosry Ahmed <yosryahmed@google.com> Reported-by: Johannes Weiner <hannes@cmpxchg.org> Closes: https://lore.kernel.org/lkml/20230405200150.GA35884@cmpxchg.org/ Acked-by: Yu Zhao <yuzhao@google.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Muchun Song <songmuchun@bytedance.com> Cc: Roman Gushchin <roman.gushchin@linux.dev> Cc: Shakeel Butt <shakeelb@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1 parent 7302338 commit 7a70447

1 file changed

Lines changed: 13 additions & 8 deletions

File tree

mm/vmscan.c

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -429,12 +429,17 @@ void reparent_shrinker_deferred(struct mem_cgroup *memcg)
429429
up_read(&shrinker_rwsem);
430430
}
431431

432+
/* Returns true for reclaim through cgroup limits or cgroup interfaces. */
432433
static bool cgroup_reclaim(struct scan_control *sc)
433434
{
434435
return sc->target_mem_cgroup;
435436
}
436437

437-
static bool global_reclaim(struct scan_control *sc)
438+
/*
439+
* Returns true for reclaim on the root cgroup. This is true for direct
440+
* allocator reclaim and reclaim through cgroup interfaces on the root cgroup.
441+
*/
442+
static bool root_reclaim(struct scan_control *sc)
438443
{
439444
return !sc->target_mem_cgroup || mem_cgroup_is_root(sc->target_mem_cgroup);
440445
}
@@ -489,7 +494,7 @@ static bool cgroup_reclaim(struct scan_control *sc)
489494
return false;
490495
}
491496

492-
static bool global_reclaim(struct scan_control *sc)
497+
static bool root_reclaim(struct scan_control *sc)
493498
{
494499
return true;
495500
}
@@ -546,7 +551,7 @@ static void flush_reclaim_state(struct scan_control *sc)
546551
* memcg reclaim, to make reporting more accurate and reduce
547552
* underestimation, but it's probably not worth the complexity for now.
548553
*/
549-
if (current->reclaim_state && global_reclaim(sc)) {
554+
if (current->reclaim_state && root_reclaim(sc)) {
550555
sc->nr_reclaimed += current->reclaim_state->reclaimed;
551556
current->reclaim_state->reclaimed = 0;
552557
}
@@ -5325,7 +5330,7 @@ static long get_nr_to_scan(struct lruvec *lruvec, struct scan_control *sc, bool
53255330
static unsigned long get_nr_to_reclaim(struct scan_control *sc)
53265331
{
53275332
/* don't abort memcg reclaim to ensure fairness */
5328-
if (!global_reclaim(sc))
5333+
if (!root_reclaim(sc))
53295334
return -1;
53305335

53315336
return max(sc->nr_to_reclaim, compact_gap(sc->order));
@@ -5477,7 +5482,7 @@ static void lru_gen_shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc
54775482
{
54785483
struct blk_plug plug;
54795484

5480-
VM_WARN_ON_ONCE(global_reclaim(sc));
5485+
VM_WARN_ON_ONCE(root_reclaim(sc));
54815486
VM_WARN_ON_ONCE(!sc->may_writepage || !sc->may_unmap);
54825487

54835488
lru_add_drain();
@@ -5538,7 +5543,7 @@ static void lru_gen_shrink_node(struct pglist_data *pgdat, struct scan_control *
55385543
struct blk_plug plug;
55395544
unsigned long reclaimed = sc->nr_reclaimed;
55405545

5541-
VM_WARN_ON_ONCE(!global_reclaim(sc));
5546+
VM_WARN_ON_ONCE(!root_reclaim(sc));
55425547

55435548
/*
55445549
* Unmapped clean folios are already prioritized. Scanning for more of
@@ -6260,7 +6265,7 @@ static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
62606265
bool proportional_reclaim;
62616266
struct blk_plug plug;
62626267

6263-
if (lru_gen_enabled() && !global_reclaim(sc)) {
6268+
if (lru_gen_enabled() && !root_reclaim(sc)) {
62646269
lru_gen_shrink_lruvec(lruvec, sc);
62656270
return;
62666271
}
@@ -6501,7 +6506,7 @@ static void shrink_node(pg_data_t *pgdat, struct scan_control *sc)
65016506
struct lruvec *target_lruvec;
65026507
bool reclaimable = false;
65036508

6504-
if (lru_gen_enabled() && global_reclaim(sc)) {
6509+
if (lru_gen_enabled() && root_reclaim(sc)) {
65056510
lru_gen_shrink_node(pgdat, sc);
65066511
return;
65076512
}

0 commit comments

Comments
 (0)