[PATCH 0/2] Reduce reclaim from per-zone LRU in global kswapd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The global kswapd scans per-zone LRU and reclaims pages regardless of the
cgroup. It breaks memory isolation since one cgroup can end up reclaiming
pages from another cgroup. Instead we should rely on memcg-aware target
reclaim including per-memcg kswapd and soft_limit hierarchical reclaim under
memory pressure.

In the global background reclaim, we do soft reclaim before scanning the
per-zone LRU. However, the return value is ignored. This patch adds the logic
where no per-zone reclaim happens if the soft reclaim raise the free pages
above the zone's high_wmark.

This is part of the effort which tries to reduce reclaiming pages in global
LRU in memcg. The per-memcg background reclaim patchset further enhances the
per-cgroup targetting reclaim, which I should have V4 posted shortly.

Try running multiple memory intensive workloads within seperate memcgs. Watch
the counters for both soft_steal in memory.stat and skip_reclaim in zoneinfo.

$ egrep 'steal|scan' /dev/cgroup/A/memory.stat
soft_steal 304640
total_soft_steal 304640

$ egrep skip /proc/zoneinfo
nr_skip_reclaim_global 0
nr_skip_reclaim_global 381
nr_skip_reclaim_global 387

Ying Han (2):
  check the return value of soft_limit reclaim
  add two stats to monitor soft_limit reclaim.

 Documentation/cgroups/memory.txt |    2 ++
 include/linux/memcontrol.h       |    5 +++++
 include/linux/mmzone.h           |    1 +
 mm/memcontrol.c                  |   14 ++++++++++++++
 mm/vmscan.c                      |   16 +++++++++++++++-
 mm/vmstat.c                      |    1 +
 6 files changed, 38 insertions(+), 1 deletions(-)

-- 
1.7.3.1

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]