Message ID | 20220425190040.2475377-4-yosryahmed@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | memcg: introduce per-memcg proactive reclaim | expand |
On Mon, 25 Apr 2022, Yosry Ahmed wrote: > Currently, alloc_anon_noexit() calls alloc_anon() which instantly frees > the allocated memory. alloc_anon_noexit() is usually used with > cg_run_nowait() to run a process in the background that allocates > memory. It makes sense for the background process to keep the memory > allocated and not instantly free it (otherwise there is no point of > running it in the background). > > Signed-off-by: Yosry Ahmed <yosryahmed@google.com> > Acked-by: Roman Gushchin <roman.gushchin@linux.dev> > Acked-by: Shakeel Butt <shakeelb@google.com> Acked-by: David Rientjes <rientjes@google.com>
diff --git a/tools/testing/selftests/cgroup/test_memcontrol.c b/tools/testing/selftests/cgroup/test_memcontrol.c index 36ccf2322e21..f2ffb3a30194 100644 --- a/tools/testing/selftests/cgroup/test_memcontrol.c +++ b/tools/testing/selftests/cgroup/test_memcontrol.c @@ -211,13 +211,17 @@ static int alloc_pagecache_50M_noexit(const char *cgroup, void *arg) static int alloc_anon_noexit(const char *cgroup, void *arg) { int ppid = getppid(); + size_t size = (unsigned long)arg; + char *buf, *ptr; - if (alloc_anon(cgroup, arg)) - return -1; + buf = malloc(size); + for (ptr = buf; ptr < buf + size; ptr += PAGE_SIZE) + *ptr = 0; while (getppid() == ppid) sleep(1); + free(buf); return 0; }