Re: [PATCH bpf-next 16/18] selftests/bpf: add checks for bpf_wq_set_callback()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 18, 2024 at 5:25 AM Song Liu <song@xxxxxxxxxx> wrote:
>
> On Tue, Apr 16, 2024 at 7:11 AM Benjamin Tissoires <bentiss@xxxxxxxxxx> wrote:
> [...]
>
> > +SEC("?tc")
> > +__log_level(2)
> > +__failure
> > +/* check that the first argument of bpf_wq_set_callback()
> > + * is a correct bpf_wq pointer.
> > + */
> > +__msg("mark_precise: frame0: regs=r1 stack= before")
>
> This line and some other "mark_precise" lines are causing issues for
> test_progs-no_alu32 in the CI. I can reproduce it in my local tests.
>

Indeed. I can also reproduce locally. Here, it only happens for
test_wq_init_nomap() and test_wq_init_wrong_map().
TBH, I'm not sure what "precise" means, I just copied the checks from
timer_failures.c.

>
> I am not quite sure what is the best fix. Maybe we can just
> remove it.

Given that most of the code is shared with timer, but given that we
are working with kfuncs, we are not using the same r0 registers.
So yeah, I would think we could rely on the timer tests for precise,
and drop them here...

Cheers,
Benjamin

>
>
> Thanks,
> Song
>
> > +__msg(": (85) call bpf_wq_set_callback_impl#") /* anchor message */
> > +__msg("off 1 doesn't point to 'struct bpf_wq' that is at 0")
> > +long test_wrong_wq_pointer_offset(void *ctx)
> > +{
> > +       int key = 0;
> > +       struct bpf_wq *wq;
> > +
> > +       wq = bpf_map_lookup_elem(&array, &key);
> > +       if (!wq)
> > +               return 1;
> > +
> > +       if (bpf_wq_init(wq, &array, 0))
> > +               return 2;
> > +
> > +       if (bpf_wq_set_callback((void *)wq + 1, wq_cb_sleepable, 0))
> > +               return 3;
> > +
> > +       return -22;
> > +}
> >
> > --
> > 2.44.0
> >
>






[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux