* [PATCH bpf-next] selftests/bpf: Move ARRAY_SIZE to bpf_misc.h
@ 2024-06-25 5:27 Jiri Olsa
2024-06-25 8:46 ` Alan Maguire
0 siblings, 1 reply; 3+ messages in thread
From: Jiri Olsa @ 2024-06-25 5:27 UTC (permalink / raw)
To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko
Cc: bpf, Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
KP Singh, Stanislav Fomichev, Hao Luo
ARRAY_SIZE is used on multiple places, move its definition in
bpf_misc.h header.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
tools/testing/selftests/bpf/progs/bpf_misc.h | 2 ++
tools/testing/selftests/bpf/progs/iters.c | 2 --
tools/testing/selftests/bpf/progs/kprobe_multi_session.c | 3 +--
tools/testing/selftests/bpf/progs/linked_list.c | 5 +----
tools/testing/selftests/bpf/progs/netif_receive_skb.c | 5 +----
tools/testing/selftests/bpf/progs/profiler.inc.h | 5 +----
tools/testing/selftests/bpf/progs/setget_sockopt.c | 5 +----
tools/testing/selftests/bpf/progs/test_bpf_ma.c | 4 ----
tools/testing/selftests/bpf/progs/test_sysctl_loop1.c | 5 +----
tools/testing/selftests/bpf/progs/test_sysctl_loop2.c | 5 +----
tools/testing/selftests/bpf/progs/test_sysctl_prog.c | 5 +----
.../testing/selftests/bpf/progs/test_tcp_custom_syncookie.c | 1 +
.../testing/selftests/bpf/progs/test_tcp_custom_syncookie.h | 2 --
.../testing/selftests/bpf/progs/verifier_subprog_precision.c | 2 --
14 files changed, 11 insertions(+), 40 deletions(-)
diff --git a/tools/testing/selftests/bpf/progs/bpf_misc.h b/tools/testing/selftests/bpf/progs/bpf_misc.h
index c0280bd2f340..ac6ab1b977a1 100644
--- a/tools/testing/selftests/bpf/progs/bpf_misc.h
+++ b/tools/testing/selftests/bpf/progs/bpf_misc.h
@@ -140,4 +140,6 @@
/* make it look to compiler like value is read and written */
#define __sink(expr) asm volatile("" : "+g"(expr))
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+
#endif
diff --git a/tools/testing/selftests/bpf/progs/iters.c b/tools/testing/selftests/bpf/progs/iters.c
index fe65e0952a1e..16bdc3e25591 100644
--- a/tools/testing/selftests/bpf/progs/iters.c
+++ b/tools/testing/selftests/bpf/progs/iters.c
@@ -7,8 +7,6 @@
#include "bpf_misc.h"
#include "bpf_compiler.h"
-#define ARRAY_SIZE(x) (int)(sizeof(x) / sizeof((x)[0]))
-
static volatile int zero = 0;
int my_pid;
diff --git a/tools/testing/selftests/bpf/progs/kprobe_multi_session.c b/tools/testing/selftests/bpf/progs/kprobe_multi_session.c
index bbba9eb46551..bd8b7fb7061e 100644
--- a/tools/testing/selftests/bpf/progs/kprobe_multi_session.c
+++ b/tools/testing/selftests/bpf/progs/kprobe_multi_session.c
@@ -4,8 +4,7 @@
#include <bpf/bpf_tracing.h>
#include <stdbool.h>
#include "bpf_kfuncs.h"
-
-#define ARRAY_SIZE(x) (int)(sizeof(x) / sizeof((x)[0]))
+#include "bpf_misc.h"
char _license[] SEC("license") = "GPL";
diff --git a/tools/testing/selftests/bpf/progs/linked_list.c b/tools/testing/selftests/bpf/progs/linked_list.c
index f69bf3e30321..421f40835acd 100644
--- a/tools/testing/selftests/bpf/progs/linked_list.c
+++ b/tools/testing/selftests/bpf/progs/linked_list.c
@@ -4,10 +4,7 @@
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_core_read.h>
#include "bpf_experimental.h"
-
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(x) (int)(sizeof(x) / sizeof((x)[0]))
-#endif
+#include "bpf_misc.h"
#include "linked_list.h"
diff --git a/tools/testing/selftests/bpf/progs/netif_receive_skb.c b/tools/testing/selftests/bpf/progs/netif_receive_skb.c
index c0062645fc68..9e067dcbf607 100644
--- a/tools/testing/selftests/bpf/progs/netif_receive_skb.c
+++ b/tools/testing/selftests/bpf/progs/netif_receive_skb.c
@@ -5,6 +5,7 @@
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_tracing.h>
#include <bpf/bpf_core_read.h>
+#include "bpf_misc.h"
#include <errno.h>
@@ -23,10 +24,6 @@ bool skip = false;
#define BADPTR 0
#endif
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
-
struct {
__uint(type, BPF_MAP_TYPE_PERCPU_ARRAY);
__uint(max_entries, 1);
diff --git a/tools/testing/selftests/bpf/progs/profiler.inc.h b/tools/testing/selftests/bpf/progs/profiler.inc.h
index 6957d9f2805e..8bd1ebd7d6af 100644
--- a/tools/testing/selftests/bpf/progs/profiler.inc.h
+++ b/tools/testing/selftests/bpf/progs/profiler.inc.h
@@ -9,6 +9,7 @@
#include "err.h"
#include "bpf_experimental.h"
#include "bpf_compiler.h"
+#include "bpf_misc.h"
#ifndef NULL
#define NULL 0
@@ -133,10 +134,6 @@ struct {
__uint(max_entries, 16);
} disallowed_exec_inodes SEC(".maps");
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(arr) (int)(sizeof(arr) / sizeof(arr[0]))
-#endif
-
static INLINE bool IS_ERR(const void* ptr)
{
return IS_ERR_VALUE((unsigned long)ptr);
diff --git a/tools/testing/selftests/bpf/progs/setget_sockopt.c b/tools/testing/selftests/bpf/progs/setget_sockopt.c
index 7a438600ae98..60518aed1ffc 100644
--- a/tools/testing/selftests/bpf/progs/setget_sockopt.c
+++ b/tools/testing/selftests/bpf/progs/setget_sockopt.c
@@ -6,10 +6,7 @@
#include <bpf/bpf_core_read.h>
#include <bpf/bpf_helpers.h>
#include <bpf/bpf_tracing.h>
-
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
+#include "bpf_misc.h"
extern unsigned long CONFIG_HZ __kconfig;
diff --git a/tools/testing/selftests/bpf/progs/test_bpf_ma.c b/tools/testing/selftests/bpf/progs/test_bpf_ma.c
index 3494ca30fa7f..4a4e0b8d9b72 100644
--- a/tools/testing/selftests/bpf/progs/test_bpf_ma.c
+++ b/tools/testing/selftests/bpf/progs/test_bpf_ma.c
@@ -7,10 +7,6 @@
#include "bpf_experimental.h"
#include "bpf_misc.h"
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
-
struct generic_map_value {
void *data;
};
diff --git a/tools/testing/selftests/bpf/progs/test_sysctl_loop1.c b/tools/testing/selftests/bpf/progs/test_sysctl_loop1.c
index 7f74077d6622..548660e299a5 100644
--- a/tools/testing/selftests/bpf/progs/test_sysctl_loop1.c
+++ b/tools/testing/selftests/bpf/progs/test_sysctl_loop1.c
@@ -10,10 +10,7 @@
#include <bpf/bpf_helpers.h>
#include "bpf_compiler.h"
-
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
+#include "bpf_misc.h"
/* tcp_mem sysctl has only 3 ints, but this test is doing TCP_MEM_LOOPS */
#define TCP_MEM_LOOPS 28 /* because 30 doesn't fit into 512 bytes of stack */
diff --git a/tools/testing/selftests/bpf/progs/test_sysctl_loop2.c b/tools/testing/selftests/bpf/progs/test_sysctl_loop2.c
index 68a75436e8af..81249d119a8b 100644
--- a/tools/testing/selftests/bpf/progs/test_sysctl_loop2.c
+++ b/tools/testing/selftests/bpf/progs/test_sysctl_loop2.c
@@ -10,10 +10,7 @@
#include <bpf/bpf_helpers.h>
#include "bpf_compiler.h"
-
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
+#include "bpf_misc.h"
/* tcp_mem sysctl has only 3 ints, but this test is doing TCP_MEM_LOOPS */
#define TCP_MEM_LOOPS 20 /* because 30 doesn't fit into 512 bytes of stack */
diff --git a/tools/testing/selftests/bpf/progs/test_sysctl_prog.c b/tools/testing/selftests/bpf/progs/test_sysctl_prog.c
index efc3c61f7852..bbdd08764789 100644
--- a/tools/testing/selftests/bpf/progs/test_sysctl_prog.c
+++ b/tools/testing/selftests/bpf/progs/test_sysctl_prog.c
@@ -10,6 +10,7 @@
#include <bpf/bpf_helpers.h>
#include "bpf_compiler.h"
+#include "bpf_misc.h"
/* Max supported length of a string with unsigned long in base 10 (pow2 - 1). */
#define MAX_ULONG_STR_LEN 0xF
@@ -17,10 +18,6 @@
/* Max supported length of sysctl value string (pow2). */
#define MAX_VALUE_STR_LEN 0x40
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-#endif
-
const char tcp_mem_name[] = "net/ipv4/tcp_mem";
static __always_inline int is_tcp_mem(struct bpf_sysctl *ctx)
{
diff --git a/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.c b/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.c
index c8e4553648bf..44ee0d037f95 100644
--- a/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.c
+++ b/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.c
@@ -9,6 +9,7 @@
#include "bpf_kfuncs.h"
#include "test_siphash.h"
#include "test_tcp_custom_syncookie.h"
+#include "bpf_misc.h"
#define MAX_PACKET_OFF 0xffff
diff --git a/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.h b/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.h
index 29a6a53cf229..f8b1b7e68d2e 100644
--- a/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.h
+++ b/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.h
@@ -7,8 +7,6 @@
#define __packed __attribute__((__packed__))
#define __force
-#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
-
#define swap(a, b) \
do { \
typeof(a) __tmp = (a); \
diff --git a/tools/testing/selftests/bpf/progs/verifier_subprog_precision.c b/tools/testing/selftests/bpf/progs/verifier_subprog_precision.c
index 4a58e0398e72..6a6fad625f7e 100644
--- a/tools/testing/selftests/bpf/progs/verifier_subprog_precision.c
+++ b/tools/testing/selftests/bpf/progs/verifier_subprog_precision.c
@@ -8,8 +8,6 @@
#include "bpf_misc.h"
#include <../../../tools/include/linux/filter.h>
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
-
int vals[] SEC(".data.vals") = {1, 2, 3, 4};
__naked __noinline __used
--
2.45.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH bpf-next] selftests/bpf: Move ARRAY_SIZE to bpf_misc.h
2024-06-25 5:27 [PATCH bpf-next] selftests/bpf: Move ARRAY_SIZE to bpf_misc.h Jiri Olsa
@ 2024-06-25 8:46 ` Alan Maguire
2024-06-25 16:26 ` Jiri Olsa
0 siblings, 1 reply; 3+ messages in thread
From: Alan Maguire @ 2024-06-25 8:46 UTC (permalink / raw)
To: Jiri Olsa, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko
Cc: bpf, Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
KP Singh, Stanislav Fomichev, Hao Luo
On 25/06/2024 06:27, Jiri Olsa wrote:
> ARRAY_SIZE is used on multiple places, move its definition in
> bpf_misc.h header.
>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
good idea ; one very optional nit/suggestion below but
Reviewed-by: Alan Maguire <alan.maguire@oracle.com>
> ---
> tools/testing/selftests/bpf/progs/bpf_misc.h | 2 ++
> tools/testing/selftests/bpf/progs/iters.c | 2 --
> tools/testing/selftests/bpf/progs/kprobe_multi_session.c | 3 +--
> tools/testing/selftests/bpf/progs/linked_list.c | 5 +----
> tools/testing/selftests/bpf/progs/netif_receive_skb.c | 5 +----
> tools/testing/selftests/bpf/progs/profiler.inc.h | 5 +----
> tools/testing/selftests/bpf/progs/setget_sockopt.c | 5 +----
> tools/testing/selftests/bpf/progs/test_bpf_ma.c | 4 ----
> tools/testing/selftests/bpf/progs/test_sysctl_loop1.c | 5 +----
> tools/testing/selftests/bpf/progs/test_sysctl_loop2.c | 5 +----
> tools/testing/selftests/bpf/progs/test_sysctl_prog.c | 5 +----
> .../testing/selftests/bpf/progs/test_tcp_custom_syncookie.c | 1 +
> .../testing/selftests/bpf/progs/test_tcp_custom_syncookie.h | 2 --
> .../testing/selftests/bpf/progs/verifier_subprog_precision.c | 2 --
> 14 files changed, 11 insertions(+), 40 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/progs/bpf_misc.h b/tools/testing/selftests/bpf/progs/bpf_misc.h
> index c0280bd2f340..ac6ab1b977a1 100644
> --- a/tools/testing/selftests/bpf/progs/bpf_misc.h
> +++ b/tools/testing/selftests/bpf/progs/bpf_misc.h
> @@ -140,4 +140,6 @@
> /* make it look to compiler like value is read and written */
> #define __sink(expr) asm volatile("" : "+g"(expr))
>
> +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
nit: would it be worth bracketing the #define in an #ifndef
ARRAY_SIZE/#endif? A few cases you're replacing (like
progs/linked_list.c) have the #ifndef/#endif protection.
> +
> #endif
> diff --git a/tools/testing/selftests/bpf/progs/iters.c b/tools/testing/selftests/bpf/progs/iters.c
> index fe65e0952a1e..16bdc3e25591 100644
> --- a/tools/testing/selftests/bpf/progs/iters.c
> +++ b/tools/testing/selftests/bpf/progs/iters.c
> @@ -7,8 +7,6 @@
> #include "bpf_misc.h"
> #include "bpf_compiler.h"
>
> -#define ARRAY_SIZE(x) (int)(sizeof(x) / sizeof((x)[0]))
> -
> static volatile int zero = 0;
>
> int my_pid;
> diff --git a/tools/testing/selftests/bpf/progs/kprobe_multi_session.c b/tools/testing/selftests/bpf/progs/kprobe_multi_session.c
> index bbba9eb46551..bd8b7fb7061e 100644
> --- a/tools/testing/selftests/bpf/progs/kprobe_multi_session.c
> +++ b/tools/testing/selftests/bpf/progs/kprobe_multi_session.c
> @@ -4,8 +4,7 @@
> #include <bpf/bpf_tracing.h>
> #include <stdbool.h>
> #include "bpf_kfuncs.h"
> -
> -#define ARRAY_SIZE(x) (int)(sizeof(x) / sizeof((x)[0]))
> +#include "bpf_misc.h"
>
> char _license[] SEC("license") = "GPL";
>
> diff --git a/tools/testing/selftests/bpf/progs/linked_list.c b/tools/testing/selftests/bpf/progs/linked_list.c
> index f69bf3e30321..421f40835acd 100644
> --- a/tools/testing/selftests/bpf/progs/linked_list.c
> +++ b/tools/testing/selftests/bpf/progs/linked_list.c
> @@ -4,10 +4,7 @@
> #include <bpf/bpf_helpers.h>
> #include <bpf/bpf_core_read.h>
> #include "bpf_experimental.h"
> -
> -#ifndef ARRAY_SIZE
> -#define ARRAY_SIZE(x) (int)(sizeof(x) / sizeof((x)[0]))
> -#endif
> +#include "bpf_misc.h"
>
> #include "linked_list.h"
>
> diff --git a/tools/testing/selftests/bpf/progs/netif_receive_skb.c b/tools/testing/selftests/bpf/progs/netif_receive_skb.c
> index c0062645fc68..9e067dcbf607 100644
> --- a/tools/testing/selftests/bpf/progs/netif_receive_skb.c
> +++ b/tools/testing/selftests/bpf/progs/netif_receive_skb.c
> @@ -5,6 +5,7 @@
> #include <bpf/bpf_helpers.h>
> #include <bpf/bpf_tracing.h>
> #include <bpf/bpf_core_read.h>
> +#include "bpf_misc.h"
>
> #include <errno.h>
>
> @@ -23,10 +24,6 @@ bool skip = false;
> #define BADPTR 0
> #endif
>
> -#ifndef ARRAY_SIZE
> -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
> -#endif
> -
> struct {
> __uint(type, BPF_MAP_TYPE_PERCPU_ARRAY);
> __uint(max_entries, 1);
> diff --git a/tools/testing/selftests/bpf/progs/profiler.inc.h b/tools/testing/selftests/bpf/progs/profiler.inc.h
> index 6957d9f2805e..8bd1ebd7d6af 100644
> --- a/tools/testing/selftests/bpf/progs/profiler.inc.h
> +++ b/tools/testing/selftests/bpf/progs/profiler.inc.h
> @@ -9,6 +9,7 @@
> #include "err.h"
> #include "bpf_experimental.h"
> #include "bpf_compiler.h"
> +#include "bpf_misc.h"
>
> #ifndef NULL
> #define NULL 0
> @@ -133,10 +134,6 @@ struct {
> __uint(max_entries, 16);
> } disallowed_exec_inodes SEC(".maps");
>
> -#ifndef ARRAY_SIZE
> -#define ARRAY_SIZE(arr) (int)(sizeof(arr) / sizeof(arr[0]))
> -#endif
> -
> static INLINE bool IS_ERR(const void* ptr)
> {
> return IS_ERR_VALUE((unsigned long)ptr);
> diff --git a/tools/testing/selftests/bpf/progs/setget_sockopt.c b/tools/testing/selftests/bpf/progs/setget_sockopt.c
> index 7a438600ae98..60518aed1ffc 100644
> --- a/tools/testing/selftests/bpf/progs/setget_sockopt.c
> +++ b/tools/testing/selftests/bpf/progs/setget_sockopt.c
> @@ -6,10 +6,7 @@
> #include <bpf/bpf_core_read.h>
> #include <bpf/bpf_helpers.h>
> #include <bpf/bpf_tracing.h>
> -
> -#ifndef ARRAY_SIZE
> -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
> -#endif
> +#include "bpf_misc.h"
>
> extern unsigned long CONFIG_HZ __kconfig;
>
> diff --git a/tools/testing/selftests/bpf/progs/test_bpf_ma.c b/tools/testing/selftests/bpf/progs/test_bpf_ma.c
> index 3494ca30fa7f..4a4e0b8d9b72 100644
> --- a/tools/testing/selftests/bpf/progs/test_bpf_ma.c
> +++ b/tools/testing/selftests/bpf/progs/test_bpf_ma.c
> @@ -7,10 +7,6 @@
> #include "bpf_experimental.h"
> #include "bpf_misc.h"
>
> -#ifndef ARRAY_SIZE
> -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
> -#endif
> -
> struct generic_map_value {
> void *data;
> };
> diff --git a/tools/testing/selftests/bpf/progs/test_sysctl_loop1.c b/tools/testing/selftests/bpf/progs/test_sysctl_loop1.c
> index 7f74077d6622..548660e299a5 100644
> --- a/tools/testing/selftests/bpf/progs/test_sysctl_loop1.c
> +++ b/tools/testing/selftests/bpf/progs/test_sysctl_loop1.c
> @@ -10,10 +10,7 @@
> #include <bpf/bpf_helpers.h>
>
> #include "bpf_compiler.h"
> -
> -#ifndef ARRAY_SIZE
> -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
> -#endif
> +#include "bpf_misc.h"
>
> /* tcp_mem sysctl has only 3 ints, but this test is doing TCP_MEM_LOOPS */
> #define TCP_MEM_LOOPS 28 /* because 30 doesn't fit into 512 bytes of stack */
> diff --git a/tools/testing/selftests/bpf/progs/test_sysctl_loop2.c b/tools/testing/selftests/bpf/progs/test_sysctl_loop2.c
> index 68a75436e8af..81249d119a8b 100644
> --- a/tools/testing/selftests/bpf/progs/test_sysctl_loop2.c
> +++ b/tools/testing/selftests/bpf/progs/test_sysctl_loop2.c
> @@ -10,10 +10,7 @@
> #include <bpf/bpf_helpers.h>
>
> #include "bpf_compiler.h"
> -
> -#ifndef ARRAY_SIZE
> -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
> -#endif
> +#include "bpf_misc.h"
>
> /* tcp_mem sysctl has only 3 ints, but this test is doing TCP_MEM_LOOPS */
> #define TCP_MEM_LOOPS 20 /* because 30 doesn't fit into 512 bytes of stack */
> diff --git a/tools/testing/selftests/bpf/progs/test_sysctl_prog.c b/tools/testing/selftests/bpf/progs/test_sysctl_prog.c
> index efc3c61f7852..bbdd08764789 100644
> --- a/tools/testing/selftests/bpf/progs/test_sysctl_prog.c
> +++ b/tools/testing/selftests/bpf/progs/test_sysctl_prog.c
> @@ -10,6 +10,7 @@
> #include <bpf/bpf_helpers.h>
>
> #include "bpf_compiler.h"
> +#include "bpf_misc.h"
>
> /* Max supported length of a string with unsigned long in base 10 (pow2 - 1). */
> #define MAX_ULONG_STR_LEN 0xF
> @@ -17,10 +18,6 @@
> /* Max supported length of sysctl value string (pow2). */
> #define MAX_VALUE_STR_LEN 0x40
>
> -#ifndef ARRAY_SIZE
> -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
> -#endif
> -
> const char tcp_mem_name[] = "net/ipv4/tcp_mem";
> static __always_inline int is_tcp_mem(struct bpf_sysctl *ctx)
> {
> diff --git a/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.c b/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.c
> index c8e4553648bf..44ee0d037f95 100644
> --- a/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.c
> +++ b/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.c
> @@ -9,6 +9,7 @@
> #include "bpf_kfuncs.h"
> #include "test_siphash.h"
> #include "test_tcp_custom_syncookie.h"
> +#include "bpf_misc.h"
>
> #define MAX_PACKET_OFF 0xffff
>
> diff --git a/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.h b/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.h
> index 29a6a53cf229..f8b1b7e68d2e 100644
> --- a/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.h
> +++ b/tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.h
> @@ -7,8 +7,6 @@
> #define __packed __attribute__((__packed__))
> #define __force
>
> -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
> -
> #define swap(a, b) \
> do { \
> typeof(a) __tmp = (a); \
> diff --git a/tools/testing/selftests/bpf/progs/verifier_subprog_precision.c b/tools/testing/selftests/bpf/progs/verifier_subprog_precision.c
> index 4a58e0398e72..6a6fad625f7e 100644
> --- a/tools/testing/selftests/bpf/progs/verifier_subprog_precision.c
> +++ b/tools/testing/selftests/bpf/progs/verifier_subprog_precision.c
> @@ -8,8 +8,6 @@
> #include "bpf_misc.h"
> #include <../../../tools/include/linux/filter.h>
>
> -#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
> -
> int vals[] SEC(".data.vals") = {1, 2, 3, 4};
>
> __naked __noinline __used
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH bpf-next] selftests/bpf: Move ARRAY_SIZE to bpf_misc.h
2024-06-25 8:46 ` Alan Maguire
@ 2024-06-25 16:26 ` Jiri Olsa
0 siblings, 0 replies; 3+ messages in thread
From: Jiri Olsa @ 2024-06-25 16:26 UTC (permalink / raw)
To: Alan Maguire
Cc: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko, bpf,
Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
KP Singh, Stanislav Fomichev, Hao Luo
On Tue, Jun 25, 2024 at 09:46:55AM +0100, Alan Maguire wrote:
> On 25/06/2024 06:27, Jiri Olsa wrote:
> > ARRAY_SIZE is used on multiple places, move its definition in
> > bpf_misc.h header.
> >
> > Signed-off-by: Jiri Olsa <jolsa@kernel.org>
>
> good idea ; one very optional nit/suggestion below but
>
> Reviewed-by: Alan Maguire <alan.maguire@oracle.com>
>
> > ---
> > tools/testing/selftests/bpf/progs/bpf_misc.h | 2 ++
> > tools/testing/selftests/bpf/progs/iters.c | 2 --
> > tools/testing/selftests/bpf/progs/kprobe_multi_session.c | 3 +--
> > tools/testing/selftests/bpf/progs/linked_list.c | 5 +----
> > tools/testing/selftests/bpf/progs/netif_receive_skb.c | 5 +----
> > tools/testing/selftests/bpf/progs/profiler.inc.h | 5 +----
> > tools/testing/selftests/bpf/progs/setget_sockopt.c | 5 +----
> > tools/testing/selftests/bpf/progs/test_bpf_ma.c | 4 ----
> > tools/testing/selftests/bpf/progs/test_sysctl_loop1.c | 5 +----
> > tools/testing/selftests/bpf/progs/test_sysctl_loop2.c | 5 +----
> > tools/testing/selftests/bpf/progs/test_sysctl_prog.c | 5 +----
> > .../testing/selftests/bpf/progs/test_tcp_custom_syncookie.c | 1 +
> > .../testing/selftests/bpf/progs/test_tcp_custom_syncookie.h | 2 --
> > .../testing/selftests/bpf/progs/verifier_subprog_precision.c | 2 --
> > 14 files changed, 11 insertions(+), 40 deletions(-)
> >
> > diff --git a/tools/testing/selftests/bpf/progs/bpf_misc.h b/tools/testing/selftests/bpf/progs/bpf_misc.h
> > index c0280bd2f340..ac6ab1b977a1 100644
> > --- a/tools/testing/selftests/bpf/progs/bpf_misc.h
> > +++ b/tools/testing/selftests/bpf/progs/bpf_misc.h
> > @@ -140,4 +140,6 @@
> > /* make it look to compiler like value is read and written */
> > #define __sink(expr) asm volatile("" : "+g"(expr))
> >
> > +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
>
> nit: would it be worth bracketing the #define in an #ifndef
> ARRAY_SIZE/#endif? A few cases you're replacing (like
> progs/linked_list.c) have the #ifndef/#endif protection.
sure, makes sense, will send v2
thanks,
jirka
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-06-25 16:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-25 5:27 [PATCH bpf-next] selftests/bpf: Move ARRAY_SIZE to bpf_misc.h Jiri Olsa
2024-06-25 8:46 ` Alan Maguire
2024-06-25 16:26 ` Jiri Olsa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox