Re: [PATCH v4 sched_ext/for-7.3 09/40] sched_ext: Make scx_bpf_kick_cid() return void
Andrea Righi <[email protected]>
| Newsgroups | dev.linux.lists.sched-ext,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <alALVwUhMvxFJsqi@gpd4> |
On Wed, Jul 08, 2026 at 11:23:58AM -1000, Tejun Heo wrote: > scx_bpf_kick_cid() returned an error code, but the value conveys nothing > actionable and no caller consumes it. The kick is asynchronous, so a > successful return only means it was queued. An invalid @cid is already > reported through scx_error() by scx_cid_to_cpu(), and a missing scheduler > leaves nothing to kick. > > Make scx_bpf_kick_cid() return void to match scx_bpf_kick_cpu(). The > cid-form kfuncs are not in practical use yet, so the ABI change is safe. > > Signed-off-by: Tejun Heo <[email protected]> Reviewed-by: Andrea Righi <[email protected]> Thanks, -Andrea > --- > kernel/sched/ext/ext.c | 11 +++++------ > tools/sched_ext/include/scx/common.bpf.h | 2 +- > 2 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/kernel/sched/ext/ext.c b/kernel/sched/ext/ext.c > index bd3cb59b1dbf..187754d0c3c8 100644 > --- a/kernel/sched/ext/ext.c > +++ b/kernel/sched/ext/ext.c > @@ -8533,10 +8533,10 @@ __bpf_kfunc void scx_bpf_kick_cpu(s32 cpu, u64 flags, const struct bpf_prog_aux > * @flags: %SCX_KICK_* flags > * @aux: implicit BPF argument to access bpf_prog_aux hidden from BPF progs > * > - * cid-addressed equivalent of scx_bpf_kick_cpu(). Return 0 on success, > - * -errno otherwise. > + * cid-addressed equivalent of scx_bpf_kick_cpu(). An invalid @cid aborts the > + * scheduler via scx_cid_to_cpu(). > */ > -__bpf_kfunc s32 scx_bpf_kick_cid(s32 cid, u64 flags, const struct bpf_prog_aux *aux) > +__bpf_kfunc void scx_bpf_kick_cid(s32 cid, u64 flags, const struct bpf_prog_aux *aux) > { > struct scx_sched *sch; > s32 cpu; > @@ -8544,12 +8544,11 @@ __bpf_kfunc s32 scx_bpf_kick_cid(s32 cid, u64 flags, const struct bpf_prog_aux * > guard(rcu)(); > sch = scx_prog_sched(aux); > if (unlikely(!sch)) > - return -ENODEV; > + return; > cpu = scx_cid_to_cpu(sch, cid); > if (cpu < 0) > - return cpu; > + return; > scx_kick_cpu(sch, cpu, flags); > - return 0; > } > > /** > diff --git a/tools/sched_ext/include/scx/common.bpf.h b/tools/sched_ext/include/scx/common.bpf.h > index bd51986c4c42..e7b3ba491c5e 100644 > --- a/tools/sched_ext/include/scx/common.bpf.h > +++ b/tools/sched_ext/include/scx/common.bpf.h > @@ -104,7 +104,7 @@ void scx_bpf_events(struct scx_event_stats *events, size_t events__sz) __ksym __ > s32 scx_bpf_cpu_to_cid(s32 cpu) __ksym __weak; > s32 scx_bpf_cid_to_cpu(s32 cid) __ksym __weak; > void scx_bpf_cid_topo(s32 cid, struct scx_cid_topo *out) __ksym __weak; > -s32 scx_bpf_kick_cid(s32 cid, u64 flags) __ksym __weak; > +void scx_bpf_kick_cid(s32 cid, u64 flags) __ksym __weak; > s32 scx_bpf_task_cid(const struct task_struct *p) __ksym __weak; > s32 scx_bpf_this_cid(void) __ksym __weak; > struct task_struct *scx_bpf_cid_curr(s32 cid) __ksym __weak; > -- > 2.54.0 >