[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20191227180817.30438-1-daniel@iogearbox.net>
Date: Fri, 27 Dec 2019 19:08:17 +0100
From: Daniel Borkmann <daniel@...earbox.net>
To: davem@...emloft.net
Cc: jakub.kicinski@...ronome.com, bjorn.topel@...il.com,
daniel@...earbox.net, ast@...nel.org, netdev@...r.kernel.org,
bpf@...r.kernel.org
Subject: pull-request: bpf-next 2019-12-27
Hi David,
The following pull-request contains BPF updates for your *net-next* tree.
We've added 127 non-merge commits during the last 17 day(s) which contain
a total of 110 files changed, 6901 insertions(+), 2721 deletions(-).
There are three merge conflicts. Conflicts and resolution looks as follows:
1) Merge conflict in net/bpf/test_run.c:
There was a tree-wide cleanup c593642c8be0 ("treewide: Use sizeof_field() macro")
which gets in the way with b590cb5f802d ("bpf: Switch to offsetofend in
BPF_PROG_TEST_RUN"):
<<<<<<< HEAD
if (!range_is_zero(__skb, offsetof(struct __sk_buff, priority) +
sizeof_field(struct __sk_buff, priority),
=======
if (!range_is_zero(__skb, offsetofend(struct __sk_buff, priority),
>>>>>>> 7c8dce4b166113743adad131b5a24c4acc12f92c
There are a few occasions that look similar to this. Always take the chunk with
offsetofend(). Note that there is one where the fields differ in here:
<<<<<<< HEAD
if (!range_is_zero(__skb, offsetof(struct __sk_buff, tstamp) +
sizeof_field(struct __sk_buff, tstamp),
=======
if (!range_is_zero(__skb, offsetofend(struct __sk_buff, gso_segs),
>>>>>>> 7c8dce4b166113743adad131b5a24c4acc12f92c
Just take the one with offsetofend() /and/ gso_segs. Latter is correct due to
850a88cc4096 ("bpf: Expose __sk_buff wire_len/gso_segs to BPF_PROG_TEST_RUN").
2) Merge conflict in arch/riscv/net/bpf_jit_comp.c:
(I'm keeping Bjorn in Cc here for a double-check in case I got it wrong.)
<<<<<<< HEAD
if (is_13b_check(off, insn))
return -1;
emit(rv_blt(tcc, RV_REG_ZERO, off >> 1), ctx);
=======
emit_branch(BPF_JSLT, RV_REG_T1, RV_REG_ZERO, off, ctx);
>>>>>>> 7c8dce4b166113743adad131b5a24c4acc12f92c
Result should look like:
emit_branch(BPF_JSLT, tcc, RV_REG_ZERO, off, ctx);
3) Merge conflict in arch/riscv/include/asm/pgtable.h:
<<<<<<< HEAD
=======
#define VMALLOC_SIZE (KERN_VIRT_SIZE >> 1)
#define VMALLOC_END (PAGE_OFFSET - 1)
#define VMALLOC_START (PAGE_OFFSET - VMALLOC_SIZE)
#define BPF_JIT_REGION_SIZE (SZ_128M)
#define BPF_JIT_REGION_START (PAGE_OFFSET - BPF_JIT_REGION_SIZE)
#define BPF_JIT_REGION_END (VMALLOC_END)
/*
* Roughly size the vmemmap space to be large enough to fit enough
* struct pages to map half the virtual address space. Then
* position vmemmap directly below the VMALLOC region.
*/
#define VMEMMAP_SHIFT \
(CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
#define VMEMMAP_SIZE BIT(VMEMMAP_SHIFT)
#define VMEMMAP_END (VMALLOC_START - 1)
#define VMEMMAP_START (VMALLOC_START - VMEMMAP_SIZE)
#define vmemmap ((struct page *)VMEMMAP_START)
>>>>>>> 7c8dce4b166113743adad131b5a24c4acc12f92c
Only take the BPF_* defines from there and move them higher up in the
same file. Remove the rest from the chunk. The VMALLOC_* etc defines
got moved via 01f52e16b868 ("riscv: define vmemmap before pfn_to_page
calls"). Result:
[...]
#define __S101 PAGE_READ_EXEC
#define __S110 PAGE_SHARED_EXEC
#define __S111 PAGE_SHARED_EXEC
#define VMALLOC_SIZE (KERN_VIRT_SIZE >> 1)
#define VMALLOC_END (PAGE_OFFSET - 1)
#define VMALLOC_START (PAGE_OFFSET - VMALLOC_SIZE)
#define BPF_JIT_REGION_SIZE (SZ_128M)
#define BPF_JIT_REGION_START (PAGE_OFFSET - BPF_JIT_REGION_SIZE)
#define BPF_JIT_REGION_END (VMALLOC_END)
/*
* Roughly size the vmemmap space to be large enough to fit enough
* struct pages to map half the virtual address space. Then
* position vmemmap directly below the VMALLOC region.
*/
#define VMEMMAP_SHIFT \
(CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
#define VMEMMAP_SIZE BIT(VMEMMAP_SHIFT)
#define VMEMMAP_END (VMALLOC_START - 1)
#define VMEMMAP_START (VMALLOC_START - VMEMMAP_SIZE)
[...]
Let me know if there are any other issues.
Anyway, the main changes are:
1) Extend bpftool to produce a struct (aka "skeleton") tailored and specific
to a provided BPF object file. This provides an alternative, simplified API
compared to standard libbpf interaction. Also, add libbpf extern variable
resolution for .kconfig section to import Kconfig data, from Andrii Nakryiko.
2) Add BPF dispatcher for XDP which is a mechanism to avoid indirect calls by
generating a branch funnel as discussed back in bpfconf'19 at LSF/MM. Also,
add various BPF riscv JIT improvements, from Björn Töpel.
3) Extend bpftool to allow matching BPF programs and maps by name,
from Paul Chaignon.
4) Support for replacing cgroup BPF programs attached with BPF_F_ALLOW_MULTI
flag for allowing updates without service interruption, from Andrey Ignatov.
5) Cleanup and simplification of ring access functions for AF_XDP with a
bonus of 0-5% performance improvement, from Magnus Karlsson.
6) Enable BPF JITs for x86-64 and arm64 by default. Also, final version of
audit support for BPF, from Daniel Borkmann and latter with Jiri Olsa.
7) Move and extend test_select_reuseport into BPF program tests under
BPF selftests, from Jakub Sitnicki.
8) Various BPF sample improvements for xdpsock for customizing parameters
to set up and benchmark AF_XDP, from Jay Jayatheerthan.
9) Improve libbpf to provide a ulimit hint on permission denied errors.
Also change XDP sample programs to attach in driver mode by default,
from Toke Høiland-Jørgensen.
10) Extend BPF test infrastructure to allow changing skb mark from tc BPF
programs, from Nikita V. Shirokov.
11) Optimize prologue code sequence in BPF arm32 JIT, from Russell King.
12) Fix xdp_redirect_cpu BPF sample to manually attach to tracepoints after
libbpf conversion, from Jesper Dangaard Brouer.
13) Minor misc improvements from various others.
Please consider pulling these changes from:
git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
Thanks a lot!
Also thanks to reporters, reviewers and testers of commits in this pull-request:
Alexei Starovoitov, Andrii Nakryiko, Andrii Narkyiko, Björn Töpel, David
Ahern, Jesper Dangaard Brouer, Justin Forbes, Luke Nelson, Martin KaFai
Lau, Naresh Kamboju, Nikita Shirokov, Paul Moore, Quentin Monnet, Toke
Høiland-Jørgensen, Will Deacon, Yonghong Song
----------------------------------------------------------------
The following changes since commit c21939998802b48e7afd0c0568193f6e4e4954f8:
cxgb4: add support for high priority filters (2019-12-10 17:52:41 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
for you to fetch changes up to 7c8dce4b166113743adad131b5a24c4acc12f92c:
bpftool: Make skeleton C code compilable with C++ compiler (2019-12-27 10:11:05 +0100)
----------------------------------------------------------------
Aditya Pakki (1):
bpf: Remove unnecessary assertion on fp_old
Alexei Starovoitov (13):
Merge branch 'reuseport_to_test_progs'
Merge branch 'bpf-dispatcher'
Merge branch 'bpftool-match-by-name'
Merge branch 'bpf-obj-skel'
Merge branch 'extern-var-support'
Merge branch 'support-flex-arrays'
Merge branch 'skel-fixes'
Merge branch 'libbpf-extern-followups'
selftests/bpf: Fix test_attach_probe
Merge branch 'simplify-do_redirect'
Merge branch 'replace-cg_bpf-prog'
Merge branch 'xsk-cleanup'
Merge branch 'xdpsock'
Andrey Ignatov (7):
bpf: Simplify __cgroup_bpf_attach
bpf: Remove unused new_flags in hierarchy_allows_attach()
bpf: Support replacing cgroup-bpf program in MULTI mode
libbpf: Introduce bpf_prog_attach_xattr
selftests/bpf: Convert test_cgroup_attach to prog_tests
selftests/bpf: Test BPF_F_REPLACE in cgroup_attach_multi
selftests/bpf: Preserve errno in test_progs CHECK macros
Andrii Nakryiko (44):
libbpf: Bump libpf current version to v0.0.7
libbpf: Fix printf compilation warnings on ppc64le arch
libbpf: Extract and generalize CPU mask parsing logic
selftests/bpf: Add CPU mask parsing tests
libbpf: Don't attach perf_buffer to offline/missing CPUs
selftests/bpf: Fix perf_buffer test on systems w/ offline CPUs
libbpf: Don't require root for bpf_object__open()
libbpf: Add generic bpf_program__attach()
libbpf: Move non-public APIs from libbpf.h to libbpf_internal.h
libbpf: Add BPF_EMBED_OBJ macro for embedding BPF .o files
libbpf: Extract common user-facing helpers
libbpf: Expose btf__align_of() API
libbpf: Expose BTF-to-C type declaration emitting API
libbpf: Expose BPF program's function name
libbpf: Refactor global data map initialization
libbpf: Postpone BTF ID finding for TRACING programs to load phase
libbpf: Reduce log level of supported section names dump
libbpf: Add BPF object skeleton support
bpftool: Add skeleton codegen command
selftests/bpf: Add BPF skeletons selftests and convert attach_probe.c
selftests/bpf: Convert few more selftest to skeletons
selftests/bpf: Add test validating data section to struct convertion layout
bpftool: Add `gen skeleton` BASH completions
libbpf: Extract internal map names into constants
libbpf: Support libbpf-provided extern variables
bpftool: Generate externs datasec in BPF skeleton
selftests/bpf: Add tests for libbpf-provided externs
libbpf: Support flexible arrays in CO-RE
selftests/bpf: Add flexible array relocation tests
libbpf: Add zlib as a dependency in pkg-config template
selftests/bpf: More succinct Makefile output
libbpf: Reduce log level for custom section names
bpftool, selftests/bpf: Embed object file inside skeleton
libbpf: Remove BPF_EMBED_OBJ macro from libbpf.h
bpftool: Add gen subcommand manpage
bpftool: Simplify format string to not use positional args
bpftool: Work-around rst2man conversion bug
libbpf: Add bpf_link__disconnect() API to preserve underlying BPF resource
libbpf: Put Kconfig externs into .kconfig section
libbpf: Allow to augment system Kconfig through extra optional config
libbpf: BTF is required when externs are present
libbpf: Fix another __u64 printf warning
libbpf: Support CO-RE relocations for LDX/ST/STX instructions
bpftool: Make skeleton C code compilable with C++ compiler
Björn Töpel (23):
bpf: Move trampoline JIT image allocation to a function
bpf: Introduce BPF dispatcher
bpf, xdp: Start using the BPF dispatcher for XDP
bpf: Start using the BPF dispatcher in BPF_TEST_RUN
selftests: bpf: Add xdp_perf test
bpf, x86: Align dispatcher branch targets to 16B
riscv, bpf: Fix broken BPF tail calls
riscv, bpf: Add support for far branching
riscv, bpf: Add support for far branching when emitting tail call
riscv, bpf: Add support for far jumps and exits
riscv, bpf: Optimize BPF tail calls
riscv, bpf: Provide RISC-V specific JIT image alloc/free
riscv, bpf: Optimize calls
riscv, bpf: Add missing uapi header for BPF_PROG_TYPE_PERF_EVENT programs
riscv, perf: Add arch specific perf_arch_bpf_user_pt_regs
xdp: Simplify devmap cleanup
xdp: Simplify cpumap cleanup
xdp: Fix graze->grace type-o in cpumap comments
xsk: Make xskmap flush_list common for all map instances
xdp: Make devmap flush_list common for all map instances
xdp: Make cpumap flush_list common for all map instances
xdp: Remove map_to_flush and map swap detection
xdp: Simplify __bpf_tx_xdp_map()
Daniel Borkmann (3):
bpf: Emit audit messages upon successful prog load and unload
bpf, x86, arm64: Enable jit by default when not built as always-on
Merge branch 'bpf-riscv-jit-improvements'
Hechao Li (1):
bpf: Print error message for bpftool cgroup show
Jakub Sitnicki (10):
libbpf: Recognize SK_REUSEPORT programs from section name
selftests/bpf: Let libbpf determine program type from section name
selftests/bpf: Use sa_family_t everywhere in reuseport tests
selftests/bpf: Add helpers for getting socket family & type name
selftests/bpf: Unroll the main loop in reuseport test
selftests/bpf: Run reuseport tests in a loop
selftests/bpf: Propagate errors during setup for reuseport tests
selftests/bpf: Pull up printing the test name into test runner
selftests/bpf: Move reuseport tests under prog_tests/
selftests/bpf: Switch reuseport tests for test_progs framework
Jay Jayatheerthan (6):
samples/bpf: xdpsock: Add duration option to specify how long to run
samples/bpf: xdpsock: Use common code to handle signal and main exit
samples/bpf: xdpsock: Add option to specify batch size
samples/bpf: xdpsock: Add option to specify number of packets to send
samples/bpf: xdpsock: Add option to specify tx packet size
samples/bpf: xdpsock: Add option to specify transmit fill pattern
Jesper Dangaard Brouer (1):
samples/bpf: Xdp_redirect_cpu fix missing tracepoint attach
Magnus Karlsson (12):
xsk: Eliminate the lazy update threshold
xsk: Simplify detection of empty and full rings
xsk: Consolidate to one single cached producer pointer
xsk: Standardize naming of producer ring access functions
xsk: Eliminate the RX batch size
xsk: Simplify xskq_nb_avail and xskq_nb_free
xsk: Simplify the consumer ring access functions
xsk: Change names of validation functions
xsk: ixgbe: i40e: ice: mlx5: Xsk_umem_discard_addr to xsk_umem_release_addr
xsk: Remove unnecessary READ_ONCE of data
xsk: Add function naming comments and reorder functions
xsk: Use struct_size() helper
Nikita V. Shirokov (1):
bpf: Allow to change skb mark in test_run
Paul Chaignon (4):
bpftool: Match several programs with same tag
bpftool: Match programs by name
bpftool: Match maps by name
bpftool: Fix compilation warning on shadowed variable
Prashant Bhole (2):
libbpf: Fix build by renaming variables
samples/bpf: Reintroduce missed build targets
Russell King (1):
ARM: net: bpf: Improve prologue code sequence
Stanislav Fomichev (3):
bpf: Switch to offsetofend in BPF_PROG_TEST_RUN
bpf: Expose __sk_buff wire_len/gso_segs to BPF_PROG_TEST_RUN
selftests/bpf: Test wire_len/gso_segs in BPF_PROG_TEST_RUN
Thadeu Lima de Souza Cascardo (1):
libbpf: Fix readelf output parsing for Fedora
Toke Høiland-Jørgensen (7):
samples/bpf: Add missing -lz to TPROGS_LDLIBS
samples/bpf: Set -fno-stack-protector when building BPF programs
samples/bpf: Attach XDP programs in driver mode by default
libbpf: Print hint about ulimit when getting permission denied error
libbpf: Fix libbpf_common.h when installing libbpf through 'make install'
libbpf: Add missing newline in opts validation macro
libbpf: Fix printing of ulimit value
arch/arm/net/bpf_jit_32.c | 30 +-
arch/arm64/Kconfig | 1 +
arch/riscv/include/asm/perf_event.h | 4 +
arch/riscv/include/asm/pgtable.h | 4 +
arch/riscv/include/uapi/asm/bpf_perf_event.h | 9 +
arch/riscv/net/bpf_jit_comp.c | 531 +++---
arch/x86/Kconfig | 1 +
arch/x86/net/bpf_jit_comp.c | 150 ++
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 4 +-
drivers/net/ethernet/intel/ice/ice_xsk.c | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 4 +-
.../net/ethernet/mellanox/mlx5/core/en/xsk/rx.c | 2 +-
include/linux/bpf-cgroup.h | 4 +-
include/linux/bpf.h | 80 +-
include/linux/filter.h | 41 +-
include/net/xdp_sock.h | 25 +-
include/uapi/linux/audit.h | 1 +
include/uapi/linux/bpf.h | 10 +
include/uapi/linux/btf.h | 3 +-
init/Kconfig | 7 +
kernel/bpf/Makefile | 1 +
kernel/bpf/cgroup.c | 97 +-
kernel/bpf/core.c | 6 +-
kernel/bpf/cpumap.c | 76 +-
kernel/bpf/devmap.c | 78 +-
kernel/bpf/dispatcher.c | 158 ++
kernel/bpf/syscall.c | 63 +-
kernel/bpf/trampoline.c | 24 +-
kernel/bpf/xskmap.c | 18 +-
kernel/cgroup/cgroup.c | 5 +-
net/bpf/test_run.c | 54 +-
net/core/dev.c | 19 +-
net/core/filter.c | 71 +-
net/xdp/xsk.c | 79 +-
net/xdp/xsk_queue.c | 15 +-
net/xdp/xsk_queue.h | 371 +++--
samples/bpf/Makefile | 5 +-
samples/bpf/xdp1_user.c | 5 +-
samples/bpf/xdp_adjust_tail_user.c | 5 +-
samples/bpf/xdp_fwd_user.c | 17 +-
samples/bpf/xdp_redirect_cpu_user.c | 63 +-
samples/bpf/xdp_redirect_map_user.c | 5 +-
samples/bpf/xdp_redirect_user.c | 5 +-
samples/bpf/xdp_router_ipv4_user.c | 3 +
samples/bpf/xdp_rxq_info_user.c | 4 +
samples/bpf/xdp_sample_pkts_user.c | 12 +-
samples/bpf/xdp_tx_iptunnel_user.c | 5 +-
samples/bpf/xdpsock_user.c | 431 ++++-
tools/bpf/bpftool/Documentation/bpftool-gen.rst | 305 ++++
tools/bpf/bpftool/Documentation/bpftool-map.rst | 12 +-
tools/bpf/bpftool/Documentation/bpftool-prog.rst | 18 +-
tools/bpf/bpftool/Documentation/bpftool.rst | 3 +-
tools/bpf/bpftool/bash-completion/bpftool | 156 +-
tools/bpf/bpftool/cgroup.c | 56 +-
tools/bpf/bpftool/gen.c | 609 +++++++
tools/bpf/bpftool/main.c | 3 +-
tools/bpf/bpftool/main.h | 5 +-
tools/bpf/bpftool/map.c | 384 ++++-
tools/bpf/bpftool/net.c | 1 +
tools/bpf/bpftool/prog.c | 388 +++--
tools/include/uapi/asm/bpf_perf_event.h | 2 +
tools/include/uapi/linux/bpf.h | 10 +
tools/include/uapi/linux/btf.h | 7 +-
tools/lib/bpf/Makefile | 18 +-
tools/lib/bpf/bpf.c | 17 +-
tools/lib/bpf/bpf.h | 17 +-
tools/lib/bpf/bpf_helpers.h | 11 +
tools/lib/bpf/btf.c | 48 +-
tools/lib/bpf/btf.h | 29 +-
tools/lib/bpf/btf_dump.c | 115 +-
tools/lib/bpf/libbpf.c | 1741 ++++++++++++++++----
tools/lib/bpf/libbpf.h | 107 +-
tools/lib/bpf/libbpf.map | 16 +
tools/lib/bpf/libbpf.pc.template | 2 +-
tools/lib/bpf/libbpf_common.h | 40 +
tools/lib/bpf/libbpf_internal.h | 21 +-
tools/testing/selftests/bpf/.gitignore | 3 +-
tools/testing/selftests/bpf/Makefile | 81 +-
.../selftests/bpf/prog_tests/attach_probe.c | 161 +-
.../bpf/prog_tests/cgroup_attach_autodetach.c | 111 ++
.../selftests/bpf/prog_tests/cgroup_attach_multi.c | 285 ++++
.../bpf/prog_tests/cgroup_attach_override.c | 148 ++
.../testing/selftests/bpf/prog_tests/core_extern.c | 169 ++
.../testing/selftests/bpf/prog_tests/core_reloc.c | 4 +
tools/testing/selftests/bpf/prog_tests/cpu_mask.c | 78 +
.../selftests/bpf/prog_tests/fentry_fexit.c | 101 +-
.../testing/selftests/bpf/prog_tests/fentry_test.c | 69 +-
tools/testing/selftests/bpf/prog_tests/mmap.c | 56 +-
.../testing/selftests/bpf/prog_tests/perf_buffer.c | 29 +-
.../testing/selftests/bpf/prog_tests/probe_user.c | 6 +-
.../testing/selftests/bpf/prog_tests/rdonly_maps.c | 11 +-
.../select_reuseport.c} | 514 +++---
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 7 +
tools/testing/selftests/bpf/prog_tests/skeleton.c | 63 +
.../selftests/bpf/prog_tests/stacktrace_build_id.c | 77 +-
.../bpf/prog_tests/stacktrace_build_id_nmi.c | 82 +-
tools/testing/selftests/bpf/prog_tests/xdp_perf.c | 25 +
.../btf__core_reloc_arrays___equiv_zero_sz_arr.c | 3 +
.../btf__core_reloc_arrays___err_bad_zero_sz_arr.c | 3 +
.../bpf/progs/btf__core_reloc_arrays___fixed_arr.c | 3 +
.../testing/selftests/bpf/progs/core_reloc_types.h | 39 +
.../selftests/bpf/progs/test_attach_probe.c | 34 +-
.../testing/selftests/bpf/progs/test_core_extern.c | 62 +
.../selftests/bpf/progs/test_core_reloc_arrays.c | 8 +-
.../bpf/progs/test_select_reuseport_kern.c | 2 +-
tools/testing/selftests/bpf/progs/test_skb_ctx.c | 6 +
tools/testing/selftests/bpf/progs/test_skeleton.c | 46 +
tools/testing/selftests/bpf/test_cgroup_attach.c | 571 -------
tools/testing/selftests/bpf/test_cpp.cpp | 10 +
tools/testing/selftests/bpf/test_progs.h | 4 +
110 files changed, 6901 insertions(+), 2721 deletions(-)
create mode 100644 arch/riscv/include/uapi/asm/bpf_perf_event.h
create mode 100644 kernel/bpf/dispatcher.c
create mode 100644 tools/bpf/bpftool/Documentation/bpftool-gen.rst
create mode 100644 tools/bpf/bpftool/gen.c
create mode 100644 tools/lib/bpf/libbpf_common.h
create mode 100644 tools/testing/selftests/bpf/prog_tests/cgroup_attach_autodetach.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/cgroup_attach_multi.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/cgroup_attach_override.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/core_extern.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/cpu_mask.c
rename tools/testing/selftests/bpf/{test_select_reuseport.c => prog_tests/select_reuseport.c} (54%)
create mode 100644 tools/testing/selftests/bpf/prog_tests/skeleton.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_perf.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_arrays___equiv_zero_sz_arr.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_arrays___err_bad_zero_sz_arr.c
create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_arrays___fixed_arr.c
create mode 100644 tools/testing/selftests/bpf/progs/test_core_extern.c
create mode 100644 tools/testing/selftests/bpf/progs/test_skeleton.c
delete mode 100644 tools/testing/selftests/bpf/test_cgroup_attach.c
Powered by blists - more mailing lists