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 > > >