On Sun, Sep 22, 2024 at 02:41:08AM GMT, Shung-Hsi Yu wrote: > A topic that came up several times off-list at LPC was how to start > contributing to the BPF subsystem. One of the thing that would probably help > is to have a list of todos that are nice to have and can be implemented in a > relatively self-contained set of patches. Here's things that I've gathered. > > On the more concrete task sides (easy to hard): > > - Check return value of btf__align_of() in btf_dump_emit_struct_def() > - Replace open-coded & PTR_MAYBE_NULL checks with type_may_be_null() > - Implement tnum_scast(), and use that to simply var_off induction in > coerce_reg_to_size_sx() This one is being worked on as well. Unrelate to above, but on the verifier side I also vaguely recall there was some discussion where Alexei suggests getting rid of insn_idx as a function parameter (when 'struct bpf_insn *' was already passed perhaps?). But I can't seem to find the exact discussion on that. ... > - Better error message when BTF generation failed, or at least fail earlier > - Refactor to use list_head to create a linked-list of bpf_verifier_state > instead of using bpf_verifier_state_list > > On the more general side of things: > > - Improve the documentation > - add the missing pieces (e.g. document all BPF_PROG_TYPE_*) > - update the out-date part (admittedly quite hard) > - Improve the BPF selftests coverage > - add test for fixes that have been merged but does not come with a > corresponding test case to prevent regression ...