On Thu, Apr 18, 2024 at 5:25 AM Song Liu song@kernel.org wrote:
On Tue, Apr 16, 2024 at 7:11 AM Benjamin Tissoires bentiss@kernel.org 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