On Fri, 2023-11-17 at 15:27 -0500, Andrii Nakryiko wrote: [...] > > > you are right that r0 returned from bpf_loop is not r0 returned from > > > bpf_loop's callback, but we still have to go through callback > > > instructions, right? > > > > Should we? We are looking to make r0 precise, but what are the rules > > for propagating that across callback boundary? > > rules are that r0 in parent frame stays marked as precise, then when > we go into child (subprog) frame, we clear r0 *for that frame*, [...] > So I assume this is the case where bpf_loop callback is not executed > at all, right? What I'm asking is to keep log expectation where > callback *is* executed once, so that we can validate that r0 in the > caller is not propagated to callback through callback_calling helpers > (like bpf_loop). I see, I'll extend the __msg matching sequence. I'll also extend matching in the following two tests: - parent_callee_saved_reg_precise_with_callback - parent_stack_slot_precise_with_callback To check that r6-r9 and fp[*] precision is propagated through callback body.