On Fri, 2024-02-16 at 22:50 +0100, Kumar Kartikeya Dwivedi wrote: [...] > > Also, did you consider global subprograms that always throw? > > E.g. do some logging and unconditionally call bpf_throw(). > > > > I have an example for that in the exception test suite, but I will add > a test for that with lingering references around. I meant that for some global subprograms it is not necessary to explore both throwing and non-throwing branches, e.g.: void my_throw(void) { bpf_printk("oh no, oh no, oh no-no-no-..."); bpf_throw(0); } SEC("tp") int foo(...) { ... if (a > 10) my_throw(); ... here 'a' is always <= 10 ... } [...] > > Nit: Maybe move this log entry to do_check? > > It would be printed right before returning to do_check() anyways. > > Maybe add a log level check? > > > > Hmm, true. I was actually even considering whether all frame_desc logs > should also be LOG_LEVEL2? Right, makes sense.