All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roman Gushchin <roman.gushchin@linux.dev>
To: Song Liu <liu.song.linuxdev@gmail.com>
Cc: Song Liu <song@kernel.org>,
	 Andrii Nakryiko <andrii.nakryiko@gmail.com>,
	 Martin KaFai Lau <martin.lau@linux.dev>,
	Alexei Starovoitov <alexei.starovoitov@gmail.com>,
	 Kumar Kartikeya Dwivedi <memxor@gmail.com>,
	 linux-mm <linux-mm@kvack.org>,  bpf <bpf@vger.kernel.org>,
	 Suren Baghdasaryan <surenb@google.com>,
	 Johannes Weiner <hannes@cmpxchg.org>,
	 Michal Hocko <mhocko@suse.com>,
	 David Rientjes <rientjes@google.com>,
	 Matt Bobrowski <mattbobrowski@google.com>,
	 Alexei Starovoitov <ast@kernel.org>,
	 Andrew Morton <akpm@linux-foundation.org>,
	 LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v1 01/14] mm: introduce bpf struct ops for OOM handling
Date: Wed, 08 Oct 2025 10:02:28 -0700	[thread overview]
Message-ID: <871pnd2uor.fsf@linux.dev> (raw)
In-Reply-To: <CAHzjS_tq34QC4NDQd_L8crQii2QZCxZr28ywSw=gMnFnqD_z2A@mail.gmail.com> (Song Liu's message of "Wed, 8 Oct 2025 00:03:37 -0700")

Song Liu <liu.song.linuxdev@gmail.com> writes:

> On Tue, Oct 7, 2025 at 7:15 PM Roman Gushchin <roman.gushchin@linux.dev> wrote:
> [...]
>> >
>> > I am not sure what is the best option for cgroup oom killer. There
>> > are multiple options. Technically, it can even be a sysfs entry.
>> > We can use it as:
>> >
>> > # load and pin oom killers first
>> > $ cat /sys/fs/cgroup/user.slice/oom.killer
>> > [oom_a] oom_b oom_c
>> > $ echo oom_b > /sys/fs/cgroup/user.slice/oom.killer
>> > $ cat /sys/fs/cgroup/user.slice/oom.killer
>> > oom_a [oom_b] oom_c
>>
>> It actually looks nice!
>> But I expect that most users of bpf_oom won't use it directly,
>> but through some sort of middleware (e.g. systemd), so Idk if
>> such a user-oriented interface makes a lot of sense.
>>
>> > Note that, I am not proposing to use sysfs entries for oom killer.
>> > I just want to say it is an option.
>> >
>> > Given attach() can be implemented in different ways, we probably
>> > don't need to add it to bpf_struct_ops. But if that turns out to be
>> > the best option, I would not argue against it. OTOH, I think it is
>> > better to keep reg() and attach() separate, though sched_ext is
>> > using reg() for both options.
>>
>> I'm inclining towards a similar approach, except that I don't want
>> to embed cgroup_id into the struct_ops, but keep it in the link,
>> as Martin suggested. But I need to implement it end-to-end before I can
>> be sure that it's the best option. Working on it...
>
> If we add cgroup_id to the link, I guess this means we need the link
> (some fd in user space) to hold reference on the attachment of this
> oom struct_ops on this is cgroup. Do we also need this link to hold
> a reference on the cgroup?

Not necessarily. I agree that the struct_ops should not hold a reference
to the cgroup, it's better to do the opposite.
This is why the link can have cgroup_id, not cgroup pointer.
I think it's similar to Tejun's approach to embed cgroup_id into the
struct ops, but potentially more flexible.

Thanks!

  reply	other threads:[~2025-10-08 17:02 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-18 17:01 [PATCH v1 00/14] mm: BPF OOM Roman Gushchin
2025-08-18 17:01 ` [PATCH v1 01/14] mm: introduce bpf struct ops for OOM handling Roman Gushchin
2025-08-19  4:09   ` Suren Baghdasaryan
2025-08-19 20:06     ` Roman Gushchin
2025-08-20 19:34       ` Suren Baghdasaryan
2025-08-20 19:52         ` Roman Gushchin
2025-08-20 20:01           ` Suren Baghdasaryan
2025-08-26 16:23         ` Amery Hung
2025-08-20 11:28   ` Kumar Kartikeya Dwivedi
2025-08-21  0:24     ` Roman Gushchin
2025-08-21  0:36       ` Kumar Kartikeya Dwivedi
2025-08-21  2:22         ` Roman Gushchin
2025-08-21 15:54           ` Suren Baghdasaryan
2025-08-22 19:27       ` Martin KaFai Lau
2025-08-25 17:00         ` Roman Gushchin
2025-08-26 18:01           ` Martin KaFai Lau
2025-08-26 19:52             ` Alexei Starovoitov
2025-08-27 18:28               ` Roman Gushchin
2025-09-02 17:31               ` Roman Gushchin
2025-09-02 22:30                 ` Martin KaFai Lau
2025-09-02 23:36                   ` Roman Gushchin
2025-10-04  2:00                   ` Roman Gushchin
2025-10-06 23:21                     ` Andrii Nakryiko
2025-10-06 23:52                       ` Roman Gushchin
2025-10-06 23:57                         ` Andrii Nakryiko
2025-10-07  0:41                           ` Roman Gushchin
2025-10-08  1:07                             ` Song Liu
2025-10-08  2:15                               ` Roman Gushchin
2025-10-08  7:03                                 ` Song Liu
2025-10-08 17:02                                   ` Roman Gushchin [this message]
2025-10-07  2:25                     ` Martin KaFai Lau
2025-09-03  0:29                 ` Tejun Heo
2025-09-03 23:30                   ` Roman Gushchin
2025-09-04  6:39                     ` Tejun Heo
2025-09-04 14:32                       ` Roman Gushchin
2025-09-04 16:26                         ` Alexei Starovoitov
2025-09-04 16:58                           ` Tejun Heo
2025-08-26 16:56   ` Amery Hung
2025-08-18 17:01 ` [PATCH v1 02/14] bpf: mark struct oom_control's memcg field as TRUSTED_OR_NULL Roman Gushchin
2025-08-20  9:17   ` Kumar Kartikeya Dwivedi
2025-08-20 22:32     ` Roman Gushchin
2025-08-18 17:01 ` [PATCH v1 03/14] mm: introduce bpf_oom_kill_process() bpf kfunc Roman Gushchin
2025-08-18 17:01 ` [PATCH v1 04/14] mm: introduce bpf kfuncs to deal with memcg pointers Roman Gushchin
2025-08-20  9:21   ` Kumar Kartikeya Dwivedi
2025-08-20 22:43     ` Roman Gushchin
2025-08-20 23:33       ` Kumar Kartikeya Dwivedi
2025-08-18 17:01 ` [PATCH v1 05/14] mm: introduce bpf_get_root_mem_cgroup() bpf kfunc Roman Gushchin
2025-08-20  9:25   ` Kumar Kartikeya Dwivedi
2025-08-20 22:45     ` Roman Gushchin
2025-08-18 17:01 ` [PATCH v1 06/14] mm: introduce bpf_out_of_memory() " Roman Gushchin
2025-08-19  4:09   ` Suren Baghdasaryan
2025-08-19 20:16     ` Roman Gushchin
2025-08-20  9:34   ` Kumar Kartikeya Dwivedi
2025-08-20 22:59     ` Roman Gushchin
2025-08-18 17:01 ` [PATCH v1 07/14] mm: allow specifying custom oom constraint for bpf triggers Roman Gushchin
2025-10-02 16:37   ` ChaosEsque Team
2025-08-18 17:01 ` [PATCH v1 08/14] mm: introduce bpf_task_is_oom_victim() kfunc Roman Gushchin
2025-08-18 17:01 ` [PATCH v1 09/14] bpf: selftests: introduce read_cgroup_file() helper Roman Gushchin
2025-08-18 17:01 ` [PATCH v1 10/14] bpf: selftests: bpf OOM handler test Roman Gushchin
2025-08-20  9:33   ` Kumar Kartikeya Dwivedi
2025-08-20 22:49     ` Roman Gushchin
2025-08-20 20:23   ` Andrii Nakryiko
2025-08-21  0:10     ` Roman Gushchin
2025-08-18 17:01 ` [PATCH v1 11/14] sched: psi: refactor psi_trigger_create() Roman Gushchin
2025-08-19  4:09   ` Suren Baghdasaryan
2025-08-19 20:28     ` Roman Gushchin
2025-08-18 17:01 ` [PATCH v1 12/14] sched: psi: implement psi trigger handling using bpf Roman Gushchin
2025-08-19  4:11   ` Suren Baghdasaryan
2025-08-19 22:31     ` Roman Gushchin
2025-08-19 23:31       ` Roman Gushchin
2025-08-20 23:56         ` Suren Baghdasaryan
2025-08-26 17:03   ` Amery Hung
2025-08-18 17:01 ` [PATCH v1 13/14] sched: psi: implement bpf_psi_create_trigger() kfunc Roman Gushchin
2025-08-20 20:30   ` Andrii Nakryiko
2025-08-21  0:36     ` Roman Gushchin
2025-08-22 19:13       ` Andrii Nakryiko
2025-08-22 19:57       ` Martin KaFai Lau
2025-08-25 16:56         ` Roman Gushchin
2025-08-18 17:01 ` [PATCH v1 14/14] bpf: selftests: psi struct ops test Roman Gushchin
2025-08-19  4:08 ` [PATCH v1 00/14] mm: BPF OOM Suren Baghdasaryan
2025-08-19 19:52   ` Roman Gushchin
2025-08-20 21:06 ` Shakeel Butt
2025-08-21  0:01   ` Roman Gushchin

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=871pnd2uor.fsf@linux.dev \
    --to=roman.gushchin@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=alexei.starovoitov@gmail.com \
    --cc=andrii.nakryiko@gmail.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=liu.song.linuxdev@gmail.com \
    --cc=martin.lau@linux.dev \
    --cc=mattbobrowski@google.com \
    --cc=memxor@gmail.com \
    --cc=mhocko@suse.com \
    --cc=rientjes@google.com \
    --cc=song@kernel.org \
    --cc=surenb@google.com \
    /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.