On Thu, Oct 21, 2021 at 2:48 PM Stanislav Fomichev <sdf@xxxxxxxxxx> wrote: > > Commit 15669e1dcd75 ("selftests/bpf: Normalize all the rest SEC() uses") > broke flow dissector tests. With the strict section names, bpftool isn't > able to pin all programs of the objects (all section names are the > same now). To bring it back to life let's do the following: > > - teach libbpf to pin by func name with LIBBPF_STRICT_SEC_NAME > - enable strict mode in bpftool (breaking cli change) > - fix custom flow_dissector loader to use strict mode > - fix flow_dissector tests to use new pin names (func vs sec) > > v5: > - get rid of error when retrying with '/' (Quentin Monnet) > > v4: > - fix comment spelling (Quentin Monnet) > - retry progtype without / (Quentin Monnet) > > v3: > - clarify program pinning in LIBBPF_STRICT_SEC_NAME, > for real this time (Andrii Nakryiko) > - fix possible segfault in __bpf_program__pin_name (Andrii Nakryiko) > > v2: > - add github issue (Andrii Nakryiko) > - remove sec_name from bpf_program.pin_name comment (Andrii Nakryiko) > - add cover letter (Andrii Nakryiko) > > Stanislav Fomichev (3): > libbpf: use func name when pinning programs with > LIBBPF_STRICT_SEC_NAME > bpftool: conditionally append / to the progtype > selftests/bpf: fix flow dissector tests I've applied patches #1 and #3, as they have to happen regardless of how bpftool incompatibility is going to be handled. Please see comments from John about bpftool. I think we should try to preserve bpftool's backwards compatibility, or at the very least give users some way to fall back to non-strict mode during the transition period. I trust you, John and Quentin will figure out the best way forward there. Also, please move this flow_dissector_load selftest into test_progs, so that we exercise it regularly. > > tools/bpf/bpftool/main.c | 4 +++ > tools/bpf/bpftool/prog.c | 35 ++++++++++--------- > tools/lib/bpf/libbpf.c | 13 +++++-- > tools/lib/bpf/libbpf_legacy.h | 3 ++ > .../selftests/bpf/flow_dissector_load.c | 18 ++++++---- > .../selftests/bpf/flow_dissector_load.h | 10 ++---- > .../selftests/bpf/test_flow_dissector.sh | 10 +++--- > 7 files changed, 55 insertions(+), 38 deletions(-) > > -- > 2.33.0.1079.g6e70778dc9-goog >