Commit 10ebe835 authored by Alexei Starovoitov's avatar Alexei Starovoitov Committed by Andrii Nakryiko

libbpf, selftests/bpf: Adjust libbpf, bpftool, selftests to match LLVM

The selftests use
to tell LLVM about special pointers. For LLVM there is nothing "arena"
about them. They are simply pointers in a different address space.
Hence LLVM diff https://github.com/llvm/llvm-project/pull/85161 renamed:
. macro __BPF_FEATURE_ARENA_CAST -> __BPF_FEATURE_ADDR_SPACE_CAST
. global variables in __attribute__((address_space(N))) are now
  placed in section named ".addr_space.N" instead of ".arena.N".

Adjust libbpf, bpftool, and selftests to match LLVM.
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Acked-by: default avatarStanislav Fomichev <sdf@google.com>
Link: https://lore.kernel.org/bpf/20240315021834.62988-3-alexei.starovoitov@gmail.com
parent ee498a38
...@@ -121,7 +121,7 @@ static bool get_datasec_ident(const char *sec_name, char *buf, size_t buf_sz) ...@@ -121,7 +121,7 @@ static bool get_datasec_ident(const char *sec_name, char *buf, size_t buf_sz)
int i, n; int i, n;
/* recognize hard coded LLVM section name */ /* recognize hard coded LLVM section name */
if (strcmp(sec_name, ".arena.1") == 0) { if (strcmp(sec_name, ".addr_space.1") == 0) {
/* this is the name to use in skeleton */ /* this is the name to use in skeleton */
snprintf(buf, buf_sz, "arena"); snprintf(buf, buf_sz, "arena");
return true; return true;
......
...@@ -498,7 +498,7 @@ struct bpf_struct_ops { ...@@ -498,7 +498,7 @@ struct bpf_struct_ops {
#define KSYMS_SEC ".ksyms" #define KSYMS_SEC ".ksyms"
#define STRUCT_OPS_SEC ".struct_ops" #define STRUCT_OPS_SEC ".struct_ops"
#define STRUCT_OPS_LINK_SEC ".struct_ops.link" #define STRUCT_OPS_LINK_SEC ".struct_ops.link"
#define ARENA_SEC ".arena.1" #define ARENA_SEC ".addr_space.1"
enum libbpf_map_type { enum libbpf_map_type {
LIBBPF_MAP_UNSPEC, LIBBPF_MAP_UNSPEC,
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
*/ */
#endif #endif
#if defined(__BPF_FEATURE_ARENA_CAST) && !defined(BPF_ARENA_FORCE_ASM) #if defined(__BPF_FEATURE_ADDR_SPACE_CAST) && !defined(BPF_ARENA_FORCE_ASM)
#define __arena __attribute__((address_space(1))) #define __arena __attribute__((address_space(1)))
#define cast_kern(ptr) /* nop for bpf prog. emitted by LLVM */ #define cast_kern(ptr) /* nop for bpf prog. emitted by LLVM */
#define cast_user(ptr) /* nop for bpf prog. emitted by LLVM */ #define cast_user(ptr) /* nop for bpf prog. emitted by LLVM */
......
...@@ -22,7 +22,7 @@ int zero = 0; ...@@ -22,7 +22,7 @@ int zero = 0;
SEC("syscall") SEC("syscall")
int arena_htab_llvm(void *ctx) int arena_htab_llvm(void *ctx)
{ {
#if defined(__BPF_FEATURE_ARENA_CAST) || defined(BPF_ARENA_FORCE_ASM) #if defined(__BPF_FEATURE_ADDR_SPACE_CAST) || defined(BPF_ARENA_FORCE_ASM)
struct htab __arena *htab; struct htab __arena *htab;
__u64 i; __u64 i;
......
...@@ -30,13 +30,13 @@ int list_sum; ...@@ -30,13 +30,13 @@ int list_sum;
int cnt; int cnt;
bool skip = false; bool skip = false;
#ifdef __BPF_FEATURE_ARENA_CAST #ifdef __BPF_FEATURE_ADDR_SPACE_CAST
long __arena arena_sum; long __arena arena_sum;
int __arena test_val = 1; int __arena test_val = 1;
struct arena_list_head __arena global_head; struct arena_list_head __arena global_head;
#else #else
long arena_sum SEC(".arena.1"); long arena_sum SEC(".addr_space.1");
int test_val SEC(".arena.1"); int test_val SEC(".addr_space.1");
#endif #endif
int zero; int zero;
...@@ -44,7 +44,7 @@ int zero; ...@@ -44,7 +44,7 @@ int zero;
SEC("syscall") SEC("syscall")
int arena_list_add(void *ctx) int arena_list_add(void *ctx)
{ {
#ifdef __BPF_FEATURE_ARENA_CAST #ifdef __BPF_FEATURE_ADDR_SPACE_CAST
__u64 i; __u64 i;
list_head = &global_head; list_head = &global_head;
...@@ -66,7 +66,7 @@ int arena_list_add(void *ctx) ...@@ -66,7 +66,7 @@ int arena_list_add(void *ctx)
SEC("syscall") SEC("syscall")
int arena_list_del(void *ctx) int arena_list_del(void *ctx)
{ {
#ifdef __BPF_FEATURE_ARENA_CAST #ifdef __BPF_FEATURE_ADDR_SPACE_CAST
struct elem __arena *n; struct elem __arena *n;
int sum = 0; int sum = 0;
......
...@@ -19,7 +19,7 @@ SEC("syscall") ...@@ -19,7 +19,7 @@ SEC("syscall")
__success __retval(0) __success __retval(0)
int basic_alloc1(void *ctx) int basic_alloc1(void *ctx)
{ {
#if defined(__BPF_FEATURE_ARENA_CAST) #if defined(__BPF_FEATURE_ADDR_SPACE_CAST)
volatile int __arena *page1, *page2, *no_page, *page3; volatile int __arena *page1, *page2, *no_page, *page3;
page1 = bpf_arena_alloc_pages(&arena, NULL, 1, NUMA_NO_NODE, 0); page1 = bpf_arena_alloc_pages(&arena, NULL, 1, NUMA_NO_NODE, 0);
...@@ -58,7 +58,7 @@ SEC("syscall") ...@@ -58,7 +58,7 @@ SEC("syscall")
__success __retval(0) __success __retval(0)
int basic_alloc2(void *ctx) int basic_alloc2(void *ctx)
{ {
#if defined(__BPF_FEATURE_ARENA_CAST) #if defined(__BPF_FEATURE_ADDR_SPACE_CAST)
volatile char __arena *page1, *page2, *page3, *page4; volatile char __arena *page1, *page2, *page3, *page4;
page1 = bpf_arena_alloc_pages(&arena, NULL, 2, NUMA_NO_NODE, 0); page1 = bpf_arena_alloc_pages(&arena, NULL, 2, NUMA_NO_NODE, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment