mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
sched_ext: Shift scx_kick_cpu() validity check to scx_bpf_kick_cpu()
Callers that already know the cpu is valid shouldn't have to pay for a redundant check. scx_kick_cpu() is called from the in-kernel balance loop break-out path with the current cpu (trivially valid) and from scx_bpf_kick_cpu() with a BPF-supplied cpu that does need validation. Move the check out of scx_kick_cpu() into scx_bpf_kick_cpu() so the backend is reusable by callers that have already validated. Signed-off-by: Tejun Heo <tj@kernel.org> Reviewed-by: Cheng-Yang Chou <yphbchou0911@gmail.com> Reviewed-by: Changwoo Min <changwoo@igalia.com> Reviewed-by: Andrea Righi <arighi@nvidia.com>
This commit is contained in:
parent
7f19c089cc
commit
017ec7d5fe
|
|
@ -8812,9 +8812,6 @@ static void scx_kick_cpu(struct scx_sched *sch, s32 cpu, u64 flags)
|
|||
struct rq *this_rq;
|
||||
unsigned long irq_flags;
|
||||
|
||||
if (!scx_cpu_valid(sch, cpu, NULL))
|
||||
return;
|
||||
|
||||
local_irq_save(irq_flags);
|
||||
|
||||
this_rq = this_rq();
|
||||
|
|
@ -8877,7 +8874,7 @@ __bpf_kfunc void scx_bpf_kick_cpu(s32 cpu, u64 flags, const struct bpf_prog_aux
|
|||
|
||||
guard(rcu)();
|
||||
sch = scx_prog_sched(aux);
|
||||
if (likely(sch))
|
||||
if (likely(sch) && scx_cpu_valid(sch, cpu, NULL))
|
||||
scx_kick_cpu(sch, cpu, flags);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user