public inbox for bpf@vger.kernel.org
 help / color / mirror / Atom feed
* [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