All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hui Zhu <hui.zhu@linux.dev>
To: Kumar Kartikeya Dwivedi <memxor@gmail.com>,
	Roman Gushchin <roman.gushchin@linux.dev>,
	JP Kobryn <inwardvessel@gmail.com>,
	Shakeel Butt <shakeel.butt@linux.dev>,
	Andrew Morton <akpm@linux-foundation.org>,
	Andrii Nakryiko <andrii@kernel.org>,
	Eduard Zingerman <eddyz87@gmail.com>,
	Ihor Solodrai <ihor.solodrai@linux.dev>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Martin KaFai Lau <martin.lau@linux.dev>,
	Song Liu <song@kernel.org>,
	Yonghong Song <yonghong.song@linux.dev>,
	Jiri Olsa <jolsa@kernel.org>,
	Emil Tsalapatis <emil@etsalapatis.com>,
	Shuah Khan <shuah@kernel.org>, Barry Song <baohua@kernel.org>,
	Geliang Tang <geliang@kernel.org>,
	linux-kernel@vger.kernel.org, bpf@vger.kernel.org,
	linux-mm@kvack.org, linux-kselftest@vger.kernel.org
Cc: Hui Zhu <zhuhui@kylinos.cn>
Subject: Re: [PATCH bpf-next v7 0/2] bpf: BPF-driven proactive memcg reclaim
Date: Mon, 7 Sep 2026 11:31:46 +0800	[thread overview]
Message-ID: <13813a74-1f1b-4fb5-a589-6eda1e99bd19@linux.dev> (raw)
In-Reply-To: <DL7CFVDSDV92.1VPGNHDCKVVIV@gmail.com>


> On Fri Sep 4, 2026 at 12:20 PM CEST, Hui Zhu wrote:
>> From: Hui Zhu <zhuhui@kylinos.cn>
>>
>> BPF programs can observe memory pressure on a cgroup (e.g. refault
>> stats via bpf_mem_cgroup_page_state()), but cannot act on it:
>> triggering reclaim on a chosen cgroup requires writing to
>> memory.reclaim, which BPF cannot do. This series adds
>> bpf_proactive_reclaim(), a sleepable kfunc performing one proactive
>> reclaim pass on a target memcg, so when and how hard to reclaim is
>> BPF policy rather than hard-coded thresholds.
>>
>> The kfunc is restricted to BPF_PROG_TYPE_SYSCALL so that reclaim
>> always runs in a clean process context: generic sleepable programs
>> may execute with filesystem locks held or in NOFS/NOIO contexts,
>> where the reclaim path could deadlock in filesystem shrinkers. The
>> bpf_wq and task_work callbacks of a SYSCALL program keep its program
>> type and run in process context, so reclaim work can still be queued
>> asynchronously through them, as the selftest does with bpf_wq.
>>
>> The use case we are looking at is protecting high-priority workloads:
>> a BPF program monitors the state of a high-priority cgroup and, when
>> it degrades (e.g. PSI rises or refaults increase, as in the
>> selftest), asynchronously reclaims memory from low-priority cgroups
>> via bpf_wq and bpf_proactive_reclaim(), giving the pressured cgroup
>> more free pages.
>>
>> Another use case: several vendor-maintained kernels carry private
>> implementations that trigger asynchronous reclaim when a memcg enters
>> a certain state. These exist for historical and partly psychological
>> reasons, but the underlying demand is real. We expect BPF-driven
>> proactive reclaim, combined with the BPF hooks for the memory
>> controller currently under discussion and development, to serve these
>> needs in mainline, reducing kernel fragmentation and improving kernel
>> maintainability.
>  From BPF perspective this looks ok to me. I saw you dropped the swappiness
> argument, what happened there? I thought we agreed to just include it in the
> kfunc now. Did something change?

Nothing changed. I misunderstood the earlier discussion and dropped the
swappiness argument by mistake. The plan to include it in the kfunc
still stands, and I will add it back in the next version.

Best,
Hui



      reply	other threads:[~2026-09-07  3:31 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-04 10:20 [PATCH bpf-next v7 0/2] bpf: BPF-driven proactive memcg reclaim Hui Zhu
2026-09-04 10:20 ` [PATCH bpf-next v7 1/2] mm/bpf: Add bpf_proactive_reclaim kfunc Hui Zhu
2026-09-04 10:36   ` sashiko-bot
2026-09-04 11:25   ` bot+bpf-ci
2026-09-04 18:03   ` Andrew Morton
2026-09-05 11:23     ` Kumar Kartikeya Dwivedi
2026-09-05 16:28       ` Shakeel Butt
2026-09-07  3:17         ` Hui Zhu
2026-09-04 10:20 ` [PATCH bpf-next v7 2/2] selftests/bpf: Add memcg async reclaim test Hui Zhu
2026-09-04 11:25   ` bot+bpf-ci
2026-09-05 11:24 ` [PATCH bpf-next v7 0/2] bpf: BPF-driven proactive memcg reclaim Kumar Kartikeya Dwivedi
2026-09-07  3:31   ` Hui Zhu [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=13813a74-1f1b-4fb5-a589-6eda1e99bd19@linux.dev \
    --to=hui.zhu@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=baohua@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=eddyz87@gmail.com \
    --cc=emil@etsalapatis.com \
    --cc=geliang@kernel.org \
    --cc=ihor.solodrai@linux.dev \
    --cc=inwardvessel@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=martin.lau@linux.dev \
    --cc=memxor@gmail.com \
    --cc=roman.gushchin@linux.dev \
    --cc=shakeel.butt@linux.dev \
    --cc=shuah@kernel.org \
    --cc=song@kernel.org \
    --cc=yonghong.song@linux.dev \
    --cc=zhuhui@kylinos.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.