On Fri, Jul 5, 2019 at 2:15 PM Daniel Borkmann <daniel@xxxxxxxxxxxxx> wrote: > > On 07/05/2019 05:50 PM, Andrii Nakryiko wrote: > > This patch set implements an update to how BTF-defined maps are specified. The > > change is in how integer attributes, e.g., type, max_entries, map_flags, are > > specified: now they are captured as part of map definition struct's BTF type > > information (using array dimension), eliminating the need for compile-time > > data initialization and keeping all the metadata in one place. > > > > All existing selftests that were using BTF-defined maps are updated, along > > with some other selftests, that were switched to new syntax. > > > > v4->v5: > > - revert sample_map_ret0.c, which is loaded with iproute2 (kernel test robot); > > v3->v4: > > - add acks; > > - fix int -> uint type in commit message; > > v2->v3: > > - rename __int into __uint (Yonghong); > > v1->v2: > > - split bpf_helpers.h change from libbpf change (Song). > > > > Andrii Nakryiko (4): > > libbpf: capture value in BTF type info for BTF-defined map defs > > selftests/bpf: add __uint and __type macro for BTF-defined maps > > selftests/bpf: convert selftests using BTF-defined maps to new syntax > > selftests/bpf: convert legacy BPF maps to BTF-defined ones > > > > tools/lib/bpf/libbpf.c | 58 +++++---- > > tools/testing/selftests/bpf/bpf_helpers.h | 3 + > > tools/testing/selftests/bpf/progs/bpf_flow.c | 28 ++--- > > .../selftests/bpf/progs/get_cgroup_id_kern.c | 26 ++--- > > .../testing/selftests/bpf/progs/netcnt_prog.c | 20 ++-- > > tools/testing/selftests/bpf/progs/pyperf.h | 90 +++++++------- > > .../selftests/bpf/progs/socket_cookie_prog.c | 13 +-- > > .../bpf/progs/sockmap_verdict_prog.c | 48 ++++---- > > .../testing/selftests/bpf/progs/strobemeta.h | 68 +++++------ > > .../selftests/bpf/progs/test_btf_newkv.c | 13 +-- > > .../bpf/progs/test_get_stack_rawtp.c | 39 +++---- > > .../selftests/bpf/progs/test_global_data.c | 37 +++--- > > tools/testing/selftests/bpf/progs/test_l4lb.c | 65 ++++------- > > .../selftests/bpf/progs/test_l4lb_noinline.c | 65 ++++------- > > .../selftests/bpf/progs/test_map_in_map.c | 30 ++--- > > .../selftests/bpf/progs/test_map_lock.c | 26 ++--- > > .../testing/selftests/bpf/progs/test_obj_id.c | 12 +- > > .../bpf/progs/test_select_reuseport_kern.c | 67 ++++------- > > .../bpf/progs/test_send_signal_kern.c | 26 ++--- > > .../bpf/progs/test_sock_fields_kern.c | 78 +++++-------- > > .../selftests/bpf/progs/test_spin_lock.c | 36 +++--- > > .../bpf/progs/test_stacktrace_build_id.c | 55 ++++----- > > .../selftests/bpf/progs/test_stacktrace_map.c | 52 +++------ > > .../selftests/bpf/progs/test_tcp_estats.c | 13 +-- > > .../selftests/bpf/progs/test_tcpbpf_kern.c | 26 ++--- > > .../selftests/bpf/progs/test_tcpnotify_kern.c | 28 ++--- > > tools/testing/selftests/bpf/progs/test_xdp.c | 26 ++--- > > .../selftests/bpf/progs/test_xdp_loop.c | 26 ++--- > > .../selftests/bpf/progs/test_xdp_noinline.c | 81 +++++-------- > > .../selftests/bpf/progs/xdp_redirect_map.c | 12 +- > > .../testing/selftests/bpf/progs/xdping_kern.c | 12 +- > > .../selftests/bpf/test_queue_stack_map.h | 30 ++--- > > .../testing/selftests/bpf/test_sockmap_kern.h | 110 +++++++++--------- > > 33 files changed, 559 insertions(+), 760 deletions(-) > > LGTM, applied, thanks! Shouldn't we also move __uint and __type macros > into libbpf as otherwise people tend to redefine this over and over? Yes, we need something like bpf_helpers.h as part of libbpf for inclusion into BPF programs. It's on my todo list as part of BPF CO-RE project as well.