Re: [PATCH bpf-next] selftests/bpf: Move ARRAY_SIZE to bpf_misc.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>

good idea ; one very optional nit/suggestion below but

Reviewed-by: Alan Maguire <alan.maguire@xxxxxxxxxx>

> ---
>  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




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux