selftests/bpf: Use BTF-defined key/value for map definitions
authorHengqi Chen <hengqi.chen@gmail.com>
Thu, 30 Sep 2021 16:14:56 +0000 (00:14 +0800)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 1 Oct 2021 22:31:51 +0000 (15:31 -0700)
Change map definitions in BPF selftests to use BTF-defined
key/value types. This unifies the map definitions and ensures
libbpf won't emit warning about retrying map creation.

Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210930161456.3444544-3-hengqi.chen@gmail.com
13 files changed:
tools/testing/selftests/bpf/progs/kfree_skb.c
tools/testing/selftests/bpf/progs/perf_event_stackmap.c
tools/testing/selftests/bpf/progs/sockmap_verdict_prog.c
tools/testing/selftests/bpf/progs/test_btf_map_in_map.c
tools/testing/selftests/bpf/progs/test_map_in_map.c
tools/testing/selftests/bpf/progs/test_map_in_map_invalid.c
tools/testing/selftests/bpf/progs/test_pe_preserve_elems.c
tools/testing/selftests/bpf/progs/test_perf_buffer.c
tools/testing/selftests/bpf/progs/test_select_reuseport_kern.c
tools/testing/selftests/bpf/progs/test_stacktrace_build_id.c
tools/testing/selftests/bpf/progs/test_stacktrace_map.c
tools/testing/selftests/bpf/progs/test_tcpnotify_kern.c
tools/testing/selftests/bpf/progs/test_xdp_bpf2bpf.c

index 55e283050cab429521027949b5969e5263f00cd8..7236da72ce8055f9a0165d3b4334a04d17d110b8 100644 (file)
@@ -9,8 +9,8 @@
 char _license[] SEC("license") = "GPL";
 struct {
        __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
 } perf_buf_map SEC(".maps");
 
 #define _(P) (__builtin_preserve_access_index(P))
index 25467d13c356a610b26cb694f9a96f8cc43ee637..b3fcb5274ee090eebae4e8b7292480106c69bb09 100644 (file)
@@ -11,8 +11,8 @@ typedef __u64 stack_trace_t[PERF_MAX_STACK_DEPTH];
 struct {
        __uint(type, BPF_MAP_TYPE_STACK_TRACE);
        __uint(max_entries, 16384);
-       __uint(key_size, sizeof(__u32));
-       __uint(value_size, sizeof(stack_trace_t));
+       __type(key, __u32);
+       __type(value, stack_trace_t);
 } stackmap SEC(".maps");
 
 struct {
index 4797dc9850645f5b01895f82cc184b99c30a6c20..73872c535cbb0c850c9563c34d6b2297b497262b 100644 (file)
@@ -7,22 +7,22 @@ int _version SEC("version") = 1;
 struct {
        __uint(type, BPF_MAP_TYPE_SOCKMAP);
        __uint(max_entries, 20);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
 } sock_map_rx SEC(".maps");
 
 struct {
        __uint(type, BPF_MAP_TYPE_SOCKMAP);
        __uint(max_entries, 20);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
 } sock_map_tx SEC(".maps");
 
 struct {
        __uint(type, BPF_MAP_TYPE_SOCKMAP);
        __uint(max_entries, 20);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
 } sock_map_msg SEC(".maps");
 
 struct {
index c1e0c8c7c55ff4b46a307aef4f893f308c66747a..c218cf8989a9e406a62a2ab6a4bdb9791e97034d 100644 (file)
@@ -21,8 +21,8 @@ struct inner_map_sz2 {
 struct outer_arr {
        __uint(type, BPF_MAP_TYPE_ARRAY_OF_MAPS);
        __uint(max_entries, 3);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
        /* it's possible to use anonymous struct as inner map definition here */
        __array(values, struct {
                __uint(type, BPF_MAP_TYPE_ARRAY);
@@ -61,8 +61,8 @@ struct inner_map_sz4 {
 struct outer_arr_dyn {
        __uint(type, BPF_MAP_TYPE_ARRAY_OF_MAPS);
        __uint(max_entries, 3);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
        __array(values, struct {
                __uint(type, BPF_MAP_TYPE_ARRAY);
                __uint(map_flags, BPF_F_INNER_MAP);
@@ -81,7 +81,7 @@ struct outer_arr_dyn {
 struct outer_hash {
        __uint(type, BPF_MAP_TYPE_HASH_OF_MAPS);
        __uint(max_entries, 5);
-       __uint(key_size, sizeof(int));
+       __type(key, int);
        /* Here everything works flawlessly due to reuse of struct inner_map
         * and compiler will complain at the attempt to use non-inner_map
         * references below. This is great experience.
@@ -111,8 +111,8 @@ struct sockarr_sz2 {
 struct outer_sockarr_sz1 {
        __uint(type, BPF_MAP_TYPE_ARRAY_OF_MAPS);
        __uint(max_entries, 1);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
        __array(values, struct sockarr_sz1);
 } outer_sockarr SEC(".maps") = {
        .values = { (void *)&sockarr_sz1 },
index 5f0e0bfc151e52841f2a3126885292817c2d7559..a6d91932dcd51aa50eb58acf73d933be86b729d3 100644 (file)
@@ -9,18 +9,16 @@ struct {
        __uint(type, BPF_MAP_TYPE_ARRAY_OF_MAPS);
        __uint(max_entries, 1);
        __uint(map_flags, 0);
-       __uint(key_size, sizeof(__u32));
-       /* must be sizeof(__u32) for map in map */
-       __uint(value_size, sizeof(__u32));
+       __type(key, __u32);
+       __type(value, __u32);
 } mim_array SEC(".maps");
 
 struct {
        __uint(type, BPF_MAP_TYPE_HASH_OF_MAPS);
        __uint(max_entries, 1);
        __uint(map_flags, 0);
-       __uint(key_size, sizeof(int));
-       /* must be sizeof(__u32) for map in map */
-       __uint(value_size, sizeof(__u32));
+       __type(key, int);
+       __type(value, __u32);
 } mim_hash SEC(".maps");
 
 SEC("xdp")
index 703c08e064423a1e6c015841e83ab84b214b06d6..9c7d75cf0bd6b710eed5d2b774d5adbe583607ef 100644 (file)
@@ -13,7 +13,7 @@ struct inner {
 struct {
        __uint(type, BPF_MAP_TYPE_ARRAY_OF_MAPS);
        __uint(max_entries, 0); /* This will make map creation to fail */
-       __uint(key_size, sizeof(__u32));
+       __type(key, __u32);
        __array(values, struct inner);
 } mim SEC(".maps");
 
index fb22de7c365d4c1fea8ae9cc58e2d740a7d02eaf..1249a945699fdbeb9221eae62b4a43ff2e0a4c6d 100644 (file)
@@ -7,15 +7,15 @@
 struct {
        __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
        __uint(max_entries, 1);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
 } array_1 SEC(".maps");
 
 struct {
        __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
        __uint(max_entries, 1);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
        __uint(map_flags, BPF_F_PRESERVE_ELEMS);
 } array_2 SEC(".maps");
 
index 8207a2dc2f9da03858ad8929097e0d6d9b0c478a..d37ce29fd393fc0e9854d1fb4f925fef6ac3cbcc 100644 (file)
@@ -8,8 +8,8 @@
 
 struct {
        __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
 } perf_buf_map SEC(".maps");
 
 SEC("tp/raw_syscalls/sys_enter")
index 26e77dcc7e91da2127b67f56c36fdf612ac9c924..0f9bc258225eced3b2fdc88334cec8bca482a735 100644 (file)
@@ -24,8 +24,8 @@ int _version SEC("version") = 1;
 struct {
        __uint(type, BPF_MAP_TYPE_ARRAY_OF_MAPS);
        __uint(max_entries, 1);
-       __uint(key_size, sizeof(__u32));
-       __uint(value_size, sizeof(__u32));
+       __type(key, __u32);
+       __type(value, __u32);
 } outer_map SEC(".maps");
 
 struct {
index 0cf0134631b4ba6ed2a1a475f9d97b817616a24b..7449fdb1763b14bb89e26acb168c128c1745abd2 100644 (file)
@@ -28,8 +28,8 @@ struct {
        __uint(type, BPF_MAP_TYPE_STACK_TRACE);
        __uint(max_entries, 128);
        __uint(map_flags, BPF_F_STACK_BUILD_ID);
-       __uint(key_size, sizeof(__u32));
-       __uint(value_size, sizeof(stack_trace_t));
+       __type(key, __u32);
+       __type(value, stack_trace_t);
 } stackmap SEC(".maps");
 
 struct {
index 00ed486726204b8d45bb1d0bc4d8a1d7eab4649f..a8233e7f173bccbe1278c1711a4e21370af46d29 100644 (file)
@@ -27,8 +27,8 @@ typedef __u64 stack_trace_t[PERF_MAX_STACK_DEPTH];
 struct {
        __uint(type, BPF_MAP_TYPE_STACK_TRACE);
        __uint(max_entries, 16384);
-       __uint(key_size, sizeof(__u32));
-       __uint(value_size, sizeof(stack_trace_t));
+       __type(key, __u32);
+       __type(value, stack_trace_t);
 } stackmap SEC(".maps");
 
 struct {
index ac63410bb541369b209921a3a50be09e5640b28b..24e9344994ef9f2dcb33086f1ad7492c59b1bb94 100644 (file)
@@ -24,8 +24,8 @@ struct {
 struct {
        __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
        __uint(max_entries, 2);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(__u32));
+       __type(key, int);
+       __type(value, __u32);
 } perf_event_map SEC(".maps");
 
 int _version SEC("version") = 1;
index a038e827f850a077cf8ab616c6496c70fe829c37..58cf4345f5cc9c34df8460ebfef07e0a2623cfc6 100644 (file)
@@ -36,8 +36,8 @@ struct meta {
 
 struct {
        __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
-       __uint(key_size, sizeof(int));
-       __uint(value_size, sizeof(int));
+       __type(key, int);
+       __type(value, int);
 } perf_buf_map SEC(".maps");
 
 __u64 test_result_fentry = 0;