public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tools/sched_ext: avoid redefining SCX_ENQ_IMMED
@ 2026-03-26 10:03 Zhao Mengmeng
  2026-03-26 20:13 ` [PATCH sched_ext/for-7.1] tools/sched_ext: Remove redundant SCX_ENQ_IMMED compat definition Tejun Heo
  2026-03-26 20:14 ` [PATCH] tools/sched_ext: avoid redefining SCX_ENQ_IMMED Tejun Heo
  0 siblings, 2 replies; 4+ messages in thread
From: Zhao Mengmeng @ 2026-03-26 10:03 UTC (permalink / raw)
  To: tj, void, arighi, changwoo; +Cc: sched-ext, linux-kernel, zhaomengmeng

From: Zhao Mengmeng <zhaomengmeng@kylinos.cn>

Newer kernels generate SCX_ENQ_IMMED from enums.autogen.bpf.h,
while compat.bpf.h still defines a fallback macro unconditionally.
Including both headers then triggers a macro redefinition warning
when building BPF schedulers.

warning: 'SCX_ENQ_IMMED' macro redefined [-Wmacro-redefined]

Fix it by defining the compat fallback only when HAVE_SCX_ENQ_IMMED
is absent.

Fixes: 98d709cba319 ("sched_ext: Implement SCX_ENQ_IMMED")
Signed-off-by: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
---
 tools/sched_ext/include/scx/compat.bpf.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/sched_ext/include/scx/compat.bpf.h b/tools/sched_ext/include/scx/compat.bpf.h
index 654b566bd94a..52e6fb9ea211 100644
--- a/tools/sched_ext/include/scx/compat.bpf.h
+++ b/tools/sched_ext/include/scx/compat.bpf.h
@@ -425,7 +425,9 @@ static inline void scx_bpf_dsq_reenq(u64 dsq_id, u64 reenq_flags)
 /*
  * v7.1: %SCX_ENQ_IMMED.
  */
+#ifndef HAVE_SCX_ENQ_IMMED
 #define SCX_ENQ_IMMED	__COMPAT_ENUM_OR_ZERO(enum scx_enq_flags, SCX_ENQ_IMMED)
+#endif
 
 /*
  * Define sched_ext_ops. This may be expanded to define multiple variants for
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH sched_ext/for-7.1] tools/sched_ext: Remove redundant SCX_ENQ_IMMED compat definition
  2026-03-26 10:03 [PATCH] tools/sched_ext: avoid redefining SCX_ENQ_IMMED Zhao Mengmeng
@ 2026-03-26 20:13 ` Tejun Heo
  2026-03-26 20:16   ` Tejun Heo
  2026-03-26 20:14 ` [PATCH] tools/sched_ext: avoid redefining SCX_ENQ_IMMED Tejun Heo
  1 sibling, 1 reply; 4+ messages in thread
From: Tejun Heo @ 2026-03-26 20:13 UTC (permalink / raw)
  To: Zhao Mengmeng, sched-ext, linux-kernel
  Cc: void, arighi, changwoo, zhaomengmeng, emil, Tejun Heo

compat.bpf.h defined a fallback SCX_ENQ_IMMED macro using
__COMPAT_ENUM_OR_ZERO(). After 6bf36c68b0a2 ("tools/sched_ext:
Regenerate autogen enum headers") added SCX_ENQ_IMMED to the autogen
headers, including both triggers -Wmacro-redefined warnings.

The autogen definition through const volatile __weak already resolves to
0 on older kernels, providing the same backward compatibility. Remove
the now-redundant compat fallback.

Fixes: 6bf36c68b0a2 ("tools/sched_ext: Regenerate autogen enum headers")
Link: https://lore.kernel.org/r/20260326100313.338388-1-zhaomzhao@126.com
Reported-by: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
Signed-off-by: Tejun Heo <tj@kernel.org>
---
 tools/sched_ext/include/scx/compat.bpf.h | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/tools/sched_ext/include/scx/compat.bpf.h b/tools/sched_ext/include/scx/compat.bpf.h
index 654b566bd94a..8977b5a2caa1 100644
--- a/tools/sched_ext/include/scx/compat.bpf.h
+++ b/tools/sched_ext/include/scx/compat.bpf.h
@@ -422,11 +422,6 @@ static inline void scx_bpf_dsq_reenq(u64 dsq_id, u64 reenq_flags)
 		scx_bpf_error("kernel too old to reenqueue foreign local or user DSQs");
 }
 
-/*
- * v7.1: %SCX_ENQ_IMMED.
- */
-#define SCX_ENQ_IMMED	__COMPAT_ENUM_OR_ZERO(enum scx_enq_flags, SCX_ENQ_IMMED)
-
 /*
  * Define sched_ext_ops. This may be expanded to define multiple variants for
  * backward compatibility. See compat.h::SCX_OPS_LOAD/ATTACH().
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] tools/sched_ext: avoid redefining SCX_ENQ_IMMED
  2026-03-26 10:03 [PATCH] tools/sched_ext: avoid redefining SCX_ENQ_IMMED Zhao Mengmeng
  2026-03-26 20:13 ` [PATCH sched_ext/for-7.1] tools/sched_ext: Remove redundant SCX_ENQ_IMMED compat definition Tejun Heo
@ 2026-03-26 20:14 ` Tejun Heo
  1 sibling, 0 replies; 4+ messages in thread
From: Tejun Heo @ 2026-03-26 20:14 UTC (permalink / raw)
  To: Zhao Mengmeng
  Cc: void, arighi, changwoo, sched-ext, linux-kernel, zhaomengmeng,
	emil

Hello,

The compat fallback isn't necessary anymore as the autogen definition
through const volatile __weak already resolves to 0 on older kernels.
I just removed it instead.

Thanks.

--
tejun

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH sched_ext/for-7.1] tools/sched_ext: Remove redundant SCX_ENQ_IMMED compat definition
  2026-03-26 20:13 ` [PATCH sched_ext/for-7.1] tools/sched_ext: Remove redundant SCX_ENQ_IMMED compat definition Tejun Heo
@ 2026-03-26 20:16   ` Tejun Heo
  0 siblings, 0 replies; 4+ messages in thread
From: Tejun Heo @ 2026-03-26 20:16 UTC (permalink / raw)
  To: Zhao Mengmeng
  Cc: void, arighi, changwoo, sched-ext, linux-kernel, zhaomengmeng,
	emil

Applied to sched_ext/for-7.1.

Thanks.

--
tejun

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-03-26 20:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-26 10:03 [PATCH] tools/sched_ext: avoid redefining SCX_ENQ_IMMED Zhao Mengmeng
2026-03-26 20:13 ` [PATCH sched_ext/for-7.1] tools/sched_ext: Remove redundant SCX_ENQ_IMMED compat definition Tejun Heo
2026-03-26 20:16   ` Tejun Heo
2026-03-26 20:14 ` [PATCH] tools/sched_ext: avoid redefining SCX_ENQ_IMMED Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox