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
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.