Re: [PATCH v2 3/5] selftests/bpf: Use the new NMI_BITS definition
From: Boqun Feng
Date: Thu Oct 01 2026 - 09:53:27 EST
On Thu, Oct 01, 2026 at 10:25:17AM +0200, Boqun Feng wrote:
> The definition of NMI_BITS was out of sync after the introduction of
> HAS_SEPARATE_PREEMPT_RESCHED_BITS, hence adjust it.
>
> Reported-by: Shrikanth Hegde <sshegde@xxxxxxxxxxxxx>
> Reviewed-by: Shrikanth Hegde <sshegde@xxxxxxxxxxxxx>
> Signed-off-by: Boqun Feng <boqun@xxxxxxxxxx>
> ---
> tools/testing/selftests/bpf/bpf_experimental.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/bpf/bpf_experimental.h b/tools/testing/selftests/bpf/bpf_experimental.h
> index 2893bf06ff25..4bf7390994bf 100644
> --- a/tools/testing/selftests/bpf/bpf_experimental.h
> +++ b/tools/testing/selftests/bpf/bpf_experimental.h
Per sashiko's report, seems I need the following to make it work:
diff --git a/tools/testing/selftests/bpf/bpf_experimental.h b/tools/testing/selftests/bpf/bpf_experimental.h
index 4bf7390994bf..94143cf0ab0d 100644
--- a/tools/testing/selftests/bpf/bpf_experimental.h
+++ b/tools/testing/selftests/bpf/bpf_experimental.h
@@ -367,6 +367,9 @@ extern int bpf_cgroup_read_xattr(struct cgroup *cgroup, const char *name__str,
extern int bpf_sock_read_xattr(struct socket *sock, const char *name__str,
struct bpf_dynptr *value_p) __weak __ksym;
+extern bool CONFIG_HAS_SEPARATE_PREEMPT_RESCHED_BITS __kconfig __weak;
+#define IS_ENABLED(cfg) (cfg)
+
#define PREEMPT_BITS 8
#define SOFTIRQ_BITS 8
#define HARDIRQ_DISABLE_BITS 8
?
[Cc Leon and Alexi]
Regards,
Boqun
> @@ -371,7 +371,7 @@ extern int bpf_sock_read_xattr(struct socket *sock, const char *name__str,
> #define SOFTIRQ_BITS 8
> #define HARDIRQ_DISABLE_BITS 8
> #define HARDIRQ_BITS 4
> -#define NMI_BITS 1
> +#define NMI_BITS (1 + 3*IS_ENABLED(CONFIG_HAS_SEPARATE_PREEMPT_RESCHED_BITS))
>
> #define PREEMPT_SHIFT 0
> #define SOFTIRQ_SHIFT (PREEMPT_SHIFT + PREEMPT_BITS)
> --
> 2.51.0
>