Re: [PATCH v1 01/14] mm: introduce bpf struct ops for OOM handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 4, 2025 at 7:32 AM Roman Gushchin <roman.gushchin@xxxxxxxxx> wrote:
>
> Tejun Heo <tj@xxxxxxxxxx> writes:
>
> > Hello,
> >
> > On Wed, Sep 03, 2025 at 04:30:16PM -0700, Roman Gushchin wrote:
> > ...
> >> > - 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
> >>
> >> Yeah, we discussed this option with Martin up in this thread. It doesn't
> >> look as the best possible solution, but maybe the best we have at the moment.
> >>
> >> Ideally, I want something like this:
> >>
> >> void test_oom(void)
> >> {
> >>      struct test_oom *skel;
> >>      int err, cgroup_fd;
> >>
> >>         cgroup_fd = open(...);
> >>         if (cgroup_fd < 0)
> >>              goto cleanup;
> >>
> >>      skel = test_oom__open_and_load();
> >>         if (!skel)
> >>              goto cleanup;
> >>
> >>      err = test_oom__attach_cgroup(skel, cgroup_fd);
> >>      if (CHECK_FAIL(err))
> >>              goto cleanup;
> >
> > Yeah, that'd look better but are there practical differences? The only one I
> > can think of is fs based permission check but that can be done separately
> > too.
>
> The practical difference is that a single struct ops can be attached
> to multiple cgroups.

+1
Attaching the same scheduler to multiple cgroups also sounds useful.
I feel sched-ext should use cgroup_fd too and do scx_sub_enable() at
attach time instead of load time.
Then scx_sub_disable() can happen at link detach.
Looks more flexible from user pov.





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux