[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aLeLzWygjrTsgBo8@slm.duckdns.org>
Date: Tue, 2 Sep 2025 14:29:01 -1000
From: Tejun Heo <tj@...nel.org>
To: Roman Gushchin <roman.gushchin@...ux.dev>
Cc: Alexei Starovoitov <alexei.starovoitov@...il.com>,
Martin KaFai Lau <martin.lau@...ux.dev>,
Kumar Kartikeya Dwivedi <memxor@...il.com>,
linux-mm <linux-mm@...ck.org>, bpf <bpf@...r.kernel.org>,
Suren Baghdasaryan <surenb@...gle.com>,
Johannes Weiner <hannes@...xchg.org>,
Michal Hocko <mhocko@...e.com>,
David Rientjes <rientjes@...gle.com>,
Matt Bobrowski <mattbobrowski@...gle.com>,
Song Liu <song@...nel.org>, Alexei Starovoitov <ast@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v1 01/14] mm: introduce bpf struct ops for OOM handling
Hello, Roman. How are you?
On Tue, Sep 02, 2025 at 10:31:33AM -0700, Roman Gushchin wrote:
...
> Btw, what's the right way to attach struct ops to a cgroup, if there is
> one? Add a cgroup_id field to the struct and use it in the .reg()
> callback? Or there is something better?
So, I'm trying to do something similar with sched_ext. Right now, I only
have a very rough prototype (I can attach multiple schedulers with warnings
and they even can schedule for several seconds before melting down).
However, the basic pieces should may still be useful. The branch is:
git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git scx-hier-prototype
There are several pieces:
- cgroup recently grew lifetime notifiers that you can hook in there to
receive on/offline events. This is useful for initializing per-cgroup
fields and cleaning up when cgroup dies:
https://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git/tree/kernel/sched/ext.c?h=scx-hier-prototype#n5469
- I'm passing in cgroup_id as an optional field in struct_ops and then in
enable path, look up the matching cgroup, verify it can attach there and
insert and update data structures accordingly:
https://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git/tree/kernel/sched/ext.c?h=scx-hier-prototype#n5280
- I wanted to be able to group BPF programs together so that the related BPF
timers, tracing progs and so on can call sched_ext kfuncs to operate on
the associated scheduler instance. This currently isn't possible, so I'm
using a really silly hack. I'm hoping we'd be able to get something better
in the future:
https://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git/commit/?h=scx-hier-prototype&id=b459b1f967fe1767783360761042cd36a1a5f2d6
Thanks.
--
tejun
Powered by blists - more mailing lists