All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/4] memcg: introduce per-memcg proactive reclaim
@ 2022-04-25 19:00 ` Yosry Ahmed
  0 siblings, 0 replies; 22+ messages in thread
From: Yosry Ahmed @ 2022-04-25 19:00 UTC (permalink / raw)
  To: Johannes Weiner, Michal Hocko, Shakeel Butt, Andrew Morton,
	Roman Gushchin
  Cc: David Rientjes, Tejun Heo, Zefan Li, Jonathan Corbet, Shuah Khan,
	Yu Zhao, Dave Hansen, Wei Xu, Greg Thelen, Chen Wandun,
	Vaibhav Jain, Michal Koutný,
	Tim Chen, cgroups, linux-doc, linux-kernel, linux-mm,
	linux-kselftest, Yosry Ahmed

This patch series adds a memory.reclaim proactive reclaim interface.
The rationale behind the interface and how it works are in the first
patch.

---

Changes in V5:
- Fixed comment formating and added Co-developed-by in patch 1.
- Modified selftest to work if swap is enabled or not, and retry
  multiple times to wait for background allocation before failing
  with a clear message.

Changes in V4:
mm/memcontrol.c:
- Return -EINTR on signal_pending().
- On the final retry, drain percpu lru caches hoping that it might
  introduce some evictable pages for reclaim.
- Simplified the retry loop as suggested by Dan Schatzberg.

selftests:
- Always return -errno on failure from cg_write() (whether open() or
  write() fail), also update cg_read() and read_text() to return -errno
  as well for consistency. Also make sure to correctly check that the
  whole buffer was written in cg_write().
- Added a maximum number of retries for the reclaim selftest.

Changes in V3:
- Fix cg_write() (in patch 2) to properly return -1 if open() fails
  and not fail if len == errno.
- Remove debug printf() in patch 3.

Changes in V2:
- Add the interface to root as well.
- Added a selftest.
- Documented the interface as a nested-keyed interface, which makes
  adding optional arguments in the future easier (see doc updates in the
  first patch).
- Modified the commit message to reflect changes and added a timeout
  argument as a suggested possible extension
- Return -EAGAIN if the kernel fails to reclaim the full requested
  amount.

---

Shakeel Butt (1):
  memcg: introduce per-memcg reclaim interface

Yosry Ahmed (3):
  selftests: cgroup: return -errno from cg_read()/cg_write() on failure
  selftests: cgroup: fix alloc_anon_noexit() instantly freeing memory
  selftests: cgroup: add a selftest for memory.reclaim

 Documentation/admin-guide/cgroup-v2.rst       |  21 ++++
 mm/memcontrol.c                               |  45 +++++++
 tools/testing/selftests/cgroup/cgroup_util.c  |  44 +++----
 .../selftests/cgroup/test_memcontrol.c        | 114 +++++++++++++++++-
 4 files changed, 197 insertions(+), 27 deletions(-)

-- 
2.36.0.rc2.479.g8af0fa9b8e-goog


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2022-05-04  0:25 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-25 19:00 [PATCH v5 0/4] memcg: introduce per-memcg proactive reclaim Yosry Ahmed
2022-04-25 19:00 ` Yosry Ahmed
2022-04-25 19:00 ` [PATCH v5 1/4] memcg: introduce per-memcg reclaim interface Yosry Ahmed
2022-04-25 19:00   ` Yosry Ahmed
2022-04-25 19:15   ` David Rientjes
2022-04-25 19:15     ` David Rientjes
2022-04-25 19:31     ` Yosry Ahmed
2022-04-25 19:31       ` Yosry Ahmed
2022-04-26  8:22       ` Michal Hocko
2022-04-26  8:22         ` Michal Hocko
2022-05-04  0:13   ` Davidlohr Bueso
2022-05-04  0:13     ` Davidlohr Bueso
2022-04-25 19:00 ` [PATCH v5 2/4] selftests: cgroup: return -errno from cg_read()/cg_write() on failure Yosry Ahmed
2022-04-25 19:17   ` David Rientjes
2022-04-25 19:17     ` David Rientjes
2022-04-26  1:53   ` Roman Gushchin
2022-04-26  1:53     ` Roman Gushchin
2022-04-25 19:00 ` [PATCH v5 3/4] selftests: cgroup: fix alloc_anon_noexit() instantly freeing memory Yosry Ahmed
2022-04-25 19:18   ` David Rientjes
2022-04-25 19:00 ` [PATCH v5 4/4] selftests: cgroup: add a selftest for memory.reclaim Yosry Ahmed
2022-04-25 19:00   ` Yosry Ahmed
2022-04-25 19:21   ` David Rientjes

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.