[PATCH 0/3] writeback: support dirty flush parameters per memcg

From: Xie Yongmei
Date: Wed Apr 27 2022 - 05:37:49 EST


When analyzing the offline applications in co-location scenario, we
found they consume memory aggressively. Sometimes, they tend to fetch
massive data from the other machine and store them in the local
directory. Offline apps usually generate visible burst pressure upon
memory subsystem, especially the download phase. Because it kept
allocating pages from memory and producing dirty pages against the
global pool and cgroup pool.

How to get rid of dirty pages smoothly is challenge to make the system
as stable as before. So we'd to tune flush behavior per cgroup level.

This patchset only provide per memcg settings. No functional change.

BTW: bdi_writeback is bridge between memcg and blckcg. This patch chooses
to include those parameters in memcg, because dirty pages affect the
efficiency of memory reclaim more intuitively.

Xie Yongmei (3):
writeback: refine trace event balance_dirty_pages
writeback: per memcg dirty flush
writeback: specify writeback period and expire interval per memcg

fs/fs-writeback.c | 11 +-
include/linux/memcontrol.h | 38 +++++
include/trace/events/writeback.h | 25 ++--
init/Kconfig | 7 +
mm/backing-dev.c | 4 +-
mm/memcontrol.c | 250 +++++++++++++++++++++++++++++++
mm/page-writeback.c | 15 +-
7 files changed, 331 insertions(+), 19 deletions(-)

--
2.27.0