[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aLbb9ljZvAvghZa8@gpd4>
Date: Tue, 2 Sep 2025 13:58:46 +0200
From: Andrea Righi <arighi@...dia.com>
To: Christian Loehle <christian.loehle@....com>
Cc: tj@...nel.org, void@...ifault.com, linux-kernel@...r.kernel.org,
sched-ext@...ts.linux.dev, changwoo@...lia.com, hodgesd@...a.com,
mingo@...hat.com, peterz@...radead.org, jake@...lion.co.uk
Subject: Re: [PATCH v6 0/3] sched_ext: Harden scx_bpf_cpu_rq()
On Tue, Sep 02, 2025 at 12:11:40PM +0100, Christian Loehle wrote:
> scx_bpf_cpu_rq() currently allows accessing struct rq fields without
> holding the associated rq.
> It is being used by scx_cosmos, scx_flash, scx_lavd, scx_layered, and
> scx_tickless. Fortunately it is only ever used to fetch rq->curr.
> So provide an alternative scx_bpf_remote_curr() that doesn't expose struct rq
> and provide a hardened scx_bpf_cpu_rq_locked() by ensuring we hold the rq lock.
> Add a deprecation warning to scx_bpf_cpu_rq() that mentions the two alternatives.
>
> This also simplifies scx code from:
>
> rq = scx_bpf_cpu_rq(cpu);
> if (!rq)
> return;
> p = rq->curr
> /* ... Do something with p */
>
> into:
>
> p = scx_bpf_remote_curr(cpu);
> /* ... Do something with p */
This looks good to me.
We should probably add a __COMPAT_scx_bpf_remote_curr() macro, so that the
BPF schedulers can be updated to use this new kfunc without breaking the
compatibility with older kernels, but we can do this later, I'll send a
follow-up patch. For now:
Acked-by: Andrea Righi <arighi@...dia.com>
Thanks,
-Andrea
Powered by blists - more mailing lists