On Tue, Oct 10, 2023 at 9:48 AM domenico cerasuolo <cerasuolodomenico@xxxxxxxxx> wrote: > > Il giorno mar 10 ott 2023 alle ore 05:21 Yosry Ahmed > <yosryahmed@xxxxxxxxxx> ha scritto: > > > > 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 new version of > > the same patchset 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/ > > > > v1 -> v2: > > - Fixed compilation error reported by the kernel robot in patch 4, also > > added a missing rcu_read_unlock(). > > - More testing results in the commit message of patch 3. > > > > 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 | 42 ++++-- > > 4 files changed, 185 insertions(+), 136 deletions(-) > > > > -- > > 2.42.0.609.gbb76f46606-goog > > > > > > Hi Yosry, > > thanks for this series! We backported it on a 5.19-based kernel and ran it on a > machine for almost a week now. The goal was to fix a CPU utilization regression > caused by memory stats readings, it seems that this series was the last bit > needed to completely fix it and bring CPU utilization to 5.12 levels. > > FWIW, > > Tested-by: Domenico Cerasuolo <cerasuolodomenico@xxxxxxxxx> That's awesome. Thanks for the testing!