On Thu, Sep 21, 2023 at 1:11 AM Yosry Ahmed <yosryahmed@xxxxxxxxxx> wrote: > > This series attempts to address shortages in today's approach for memcg > stats flushing, namely occasionally stale or expensive stat reads. The > series does so by changing the threshold that we use to decide whether > to trigger a flush to be per memcg instead of global (patch 3), and then > changing flushing to be per memcg (i.e. subtree flushes) instead of > global (patch 5). > > Patch 3 & 5 are the core of the series, and they include more details > and testing results. The rest are either cleanups or prep work. > > This series replaces the "memcg: more sophisticated stats flushing" > series [1], which also replaces another series, in a long list of > attempts to improve memcg stats flushing. It is not a v2 as it is a > completely different approach. This is based on collected feedback from > discussions on lkml in all previous attempts. Hopefully, this is the > final attempt. > > [1]https://lore.kernel.org/lkml/20230913073846.1528938-1-yosryahmed@xxxxxxxxxx/ > > Yosry Ahmed (5): > mm: memcg: change flush_next_time to flush_last_time > mm: memcg: move vmstats structs definition above flushing code > mm: memcg: make stats flushing threshold per-memcg > mm: workingset: move the stats flush into workingset_test_recent() > mm: memcg: restore subtree stats flushing > > include/linux/memcontrol.h | 8 +- > mm/memcontrol.c | 269 +++++++++++++++++++++---------------- > mm/vmscan.c | 2 +- > mm/workingset.c | 37 +++-- > 4 files changed, 181 insertions(+), 135 deletions(-) > > -- > 2.42.0.459.ge4e396fd5e-goog > Friendly ping for feedback on this approach :)