Re: [PATCH bpf-next v1 08/10] bpf: Add bpf_task_work_schedule_* kfuncs with KF_IMPLICIT_ARGS
From: Alexei Starovoitov
Date: Fri Jan 09 2026 - 15:47:43 EST
On Fri, Jan 9, 2026 at 12:02 PM Ihor Solodrai <ihor.solodrai@xxxxxxxxx> wrote:
>
> On 1/9/26 11:58 AM, Alexei Starovoitov wrote:
> > On Fri, Jan 9, 2026 at 10:50 AM Ihor Solodrai <ihor.solodrai@xxxxxxxxx> wrote:
> >>
> >> +__bpf_kfunc int bpf_task_work_schedule_signal(struct task_struct *task, struct bpf_task_work *tw,
> >> + void *map__map, bpf_task_work_callback_t callback,
> >> + struct bpf_prog_aux *aux)
> >> +{
> >> + return bpf_task_work_schedule(task, tw, map__map, callback, aux, TWA_SIGNAL);
> >> +}
> >> +
> >> __bpf_kfunc int bpf_task_work_schedule_signal_impl(struct task_struct *task,
> >> struct bpf_task_work *tw, void *map__map,
> >> bpf_task_work_callback_t callback,
> >> void *aux__prog)
> >> {
> >> - return bpf_task_work_schedule(task, tw, map__map, callback, aux__prog, TWA_SIGNAL);
> >> + return bpf_task_work_schedule_signal(task, tw, map__map, callback, aux__prog);
> >> }
> >
> > I thought we decided that _impl() will not be marked as __bpf_kfunc
> > and will not be in BTF_ID(func, _impl).
> > We can mark it as __weak noinline and it will be in kallsyms.
> > That's all we need for the verifier and resolve_btfid, no?
> >
> > Sorry, it's been a long time. I must have forgotten something.
>
> For the *generated* _impl kfuncs there is no decl tags and the ids are
> absent from BTF_ID sets, yes.
>
> However for the "legacy" cases it must be there for backwards
> compatibility, as well as relevant verifier checks.
I see.
I feel bpf_task_work_schedule_resume() is ok to break, since it's so new.
We can remove bpf_task_work_schedule_[resume|singal]_impl()
to avoid carrying forward forever.
bpf_stream_vprintk_impl() is not that clear. I would remove it too.