All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH sched_ext/for-7.2] sched_ext: Move sources under kernel/sched/ext/
@ 2026-06-21 16:30 Tejun Heo
  2026-06-21 16:39 ` sashiko-bot
  2026-06-21 18:34 ` [PATCH v2 " Tejun Heo
  0 siblings, 2 replies; 4+ messages in thread
From: Tejun Heo @ 2026-06-21 16:30 UTC (permalink / raw)
  To: linux-kernel
  Cc: Peter Zijlstra, Ingo Molnar, Juri Lelli, Vincent Guittot,
	David Vernet, Andrea Righi, Changwoo Min, Emil Tsalapatis,
	Linus Torvalds, sched-ext

The sched_ext sources had grown to ten ext* files directly under
kernel/sched/. Move them into a new kernel/sched/ext/ subdirectory and drop
the now-redundant ext_ prefix. ext.c/h keep their names.

  kernel/sched/ext.{c,h}       -> kernel/sched/ext/ext.{c,h}
  kernel/sched/ext_internal.h  -> kernel/sched/ext/internal.h
  kernel/sched/ext_types.h     -> kernel/sched/ext/types.h
  kernel/sched/ext_idle.{c,h}  -> kernel/sched/ext/idle.{c,h}
  kernel/sched/ext_cid.{c,h}   -> kernel/sched/ext/cid.{c,h}
  kernel/sched/ext_arena.{c,h} -> kernel/sched/ext/arena.{c,h}

The include paths in build_policy.c and sched.h, the MAINTAINERS glob, and a
few documentation and comment references are updated to match. No code or
symbol changes.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
---
I'm applying this to sched_ext/for-7.2 and sending it to Linus before the
merge window closes so that for-7.2-fixes and for-7.3 don't diverge
unnecessarily.

Thanks.

 Documentation/scheduler/sched-ext.rst          |  8 ++++----
 MAINTAINERS                                    |  2 +-
 kernel/sched/build_policy.c                    | 18 +++++++++---------
 kernel/sched/{ext_arena.c => ext/arena.c}      |  0
 kernel/sched/{ext_arena.h => ext/arena.h}      |  0
 kernel/sched/{ext_cid.c => ext/cid.c}          |  2 +-
 kernel/sched/{ext_cid.h => ext/cid.h}          |  0
 kernel/sched/{ => ext}/ext.c                   |  2 +-
 kernel/sched/{ => ext}/ext.h                   |  0
 kernel/sched/{ext_idle.c => ext/idle.c}        |  0
 kernel/sched/{ext_idle.h => ext/idle.h}        |  0
 .../sched/{ext_internal.h => ext/internal.h}   |  0
 kernel/sched/{ext_types.h => ext/types.h}      |  0
 kernel/sched/sched.h                           |  2 +-
 tools/sched_ext/include/scx/cid.bpf.h          |  6 +++---
 15 files changed, 20 insertions(+), 20 deletions(-)
 rename kernel/sched/{ext_arena.c => ext/arena.c} (100%)
 rename kernel/sched/{ext_arena.h => ext/arena.h} (100%)
 rename kernel/sched/{ext_cid.c => ext/cid.c} (99%)
 rename kernel/sched/{ext_cid.h => ext/cid.h} (100%)
 rename kernel/sched/{ => ext}/ext.c (99%)
 rename kernel/sched/{ => ext}/ext.h (100%)
 rename kernel/sched/{ext_idle.c => ext/idle.c} (100%)
 rename kernel/sched/{ext_idle.h => ext/idle.h} (100%)
 rename kernel/sched/{ext_internal.h => ext/internal.h} (100%)
 rename kernel/sched/{ext_types.h => ext/types.h} (100%)

diff --git a/Documentation/scheduler/sched-ext.rst b/Documentation/scheduler/sched-ext.rst
index c4f59c08d8a4..4b1ffd03f516 100644
--- a/Documentation/scheduler/sched-ext.rst
+++ b/Documentation/scheduler/sched-ext.rst
@@ -114,7 +114,7 @@ Each running scheduler also exposes a per-scheduler ``events`` file under
     SCX_EV_INSERT_NOT_OWNED 0
     SCX_EV_SUB_BYPASS_DISPATCH 0
 
-The counters are described in ``kernel/sched/ext_internal.h``; briefly:
+The counters are described in ``kernel/sched/ext/internal.h``; briefly:
 
 * ``SCX_EV_SELECT_CPU_FALLBACK``: ops.select_cpu() returned a CPU unusable by
   the task and the core scheduler silently picked a fallback CPU.
@@ -496,11 +496,11 @@ Where to Look
 * ``include/linux/sched/ext.h`` defines the core data structures, ops table
   and constants.
 
-* ``kernel/sched/ext.c`` contains sched_ext core implementation and helpers.
+* ``kernel/sched/ext/ext.c`` contains sched_ext core implementation and helpers.
   The functions prefixed with ``scx_bpf_`` can be called from the BPF
   scheduler.
 
-* ``kernel/sched/ext_idle.c`` contains the built-in idle CPU selection policy.
+* ``kernel/sched/ext/idle.c`` contains the built-in idle CPU selection policy.
 
 * ``tools/sched_ext/`` hosts example BPF scheduler implementations.
 
@@ -557,7 +557,7 @@ ABI Instability
 The APIs provided by sched_ext to BPF schedulers programs have no stability
 guarantees. This includes the ops table callbacks and constants defined in
 ``include/linux/sched/ext.h``, as well as the ``scx_bpf_`` kfuncs defined in
-``kernel/sched/ext.c`` and ``kernel/sched/ext_idle.c``.
+``kernel/sched/ext/ext.c`` and ``kernel/sched/ext/idle.c``.
 
 While we will attempt to provide a relatively stable API surface when
 possible, they are subject to change without warning between kernel
diff --git a/MAINTAINERS b/MAINTAINERS
index d95d3ef77773..ebd76d0367ef 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -24164,7 +24164,7 @@ S:	Maintained
 W:	https://github.com/sched-ext/scx
 T:	git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git
 F:	include/linux/sched/ext.h
-F:	kernel/sched/ext*
+F:	kernel/sched/ext/
 F:	tools/sched_ext/
 F:	tools/testing/selftests/sched_ext
 
diff --git a/kernel/sched/build_policy.c b/kernel/sched/build_policy.c
index 067979a7b69e..d74b54f81992 100644
--- a/kernel/sched/build_policy.c
+++ b/kernel/sched/build_policy.c
@@ -61,15 +61,15 @@
 # include <linux/btf_ids.h>
 # include <linux/find.h>
 # include <linux/genalloc.h>
-# include "ext_types.h"
-# include "ext_internal.h"
-# include "ext_cid.h"
-# include "ext_arena.h"
-# include "ext_idle.h"
-# include "ext.c"
-# include "ext_cid.c"
-# include "ext_arena.c"
-# include "ext_idle.c"
+# include "ext/types.h"
+# include "ext/internal.h"
+# include "ext/cid.h"
+# include "ext/arena.h"
+# include "ext/idle.h"
+# include "ext/ext.c"
+# include "ext/cid.c"
+# include "ext/arena.c"
+# include "ext/idle.c"
 #endif
 
 #include "syscalls.c"
diff --git a/kernel/sched/ext_arena.c b/kernel/sched/ext/arena.c
similarity index 100%
rename from kernel/sched/ext_arena.c
rename to kernel/sched/ext/arena.c
diff --git a/kernel/sched/ext_arena.h b/kernel/sched/ext/arena.h
similarity index 100%
rename from kernel/sched/ext_arena.h
rename to kernel/sched/ext/arena.h
diff --git a/kernel/sched/ext_cid.c b/kernel/sched/ext/cid.c
similarity index 99%
rename from kernel/sched/ext_cid.c
rename to kernel/sched/ext/cid.c
index 66944a7ef79d..aeaea88f34c5 100644
--- a/kernel/sched/ext_cid.c
+++ b/kernel/sched/ext/cid.c
@@ -71,7 +71,7 @@ static s32 scx_cid_arrays_alloc(void)
  * scx_cid_init - build the cid mapping
  * @sch: the scx_sched being initialized; used as the scx_error() target
  *
- * See "Topological CPU IDs" in ext_cid.h for the model. Walk online cpus by
+ * See "Topological CPU IDs" in cid.h for the model. Walk online cpus by
  * intersection at each level (parent_scratch & this_level_mask), which keeps
  * containment correct by construction and naturally splits a physical LLC
  * straddling two NUMA nodes into two LLC units. The caller must hold
diff --git a/kernel/sched/ext_cid.h b/kernel/sched/ext/cid.h
similarity index 100%
rename from kernel/sched/ext_cid.h
rename to kernel/sched/ext/cid.h
diff --git a/kernel/sched/ext.c b/kernel/sched/ext/ext.c
similarity index 99%
rename from kernel/sched/ext.c
rename to kernel/sched/ext/ext.c
index 0db6fa2daea3..f229690a7898 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext/ext.c
@@ -513,7 +513,7 @@ do {										\
 } while (0)
 
 /*
- * Flipped on enable per sch->is_cid_type. Declared in ext_internal.h so
+ * Flipped on enable per sch->is_cid_type. Declared in internal.h so
  * subsystem inlines can read it.
  */
 DEFINE_STATIC_KEY_FALSE(__scx_is_cid_type);
diff --git a/kernel/sched/ext.h b/kernel/sched/ext/ext.h
similarity index 100%
rename from kernel/sched/ext.h
rename to kernel/sched/ext/ext.h
diff --git a/kernel/sched/ext_idle.c b/kernel/sched/ext/idle.c
similarity index 100%
rename from kernel/sched/ext_idle.c
rename to kernel/sched/ext/idle.c
diff --git a/kernel/sched/ext_idle.h b/kernel/sched/ext/idle.h
similarity index 100%
rename from kernel/sched/ext_idle.h
rename to kernel/sched/ext/idle.h
diff --git a/kernel/sched/ext_internal.h b/kernel/sched/ext/internal.h
similarity index 100%
rename from kernel/sched/ext_internal.h
rename to kernel/sched/ext/internal.h
diff --git a/kernel/sched/ext_types.h b/kernel/sched/ext/types.h
similarity index 100%
rename from kernel/sched/ext_types.h
rename to kernel/sched/ext/types.h
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index c7c2dea65edd..56acf502ba26 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -4211,6 +4211,6 @@ DEFINE_CLASS(sched_change, struct sched_change_ctx *,
 
 DEFINE_CLASS_IS_UNCONDITIONAL(sched_change)
 
-#include "ext.h"
+#include "ext/ext.h"
 
 #endif /* _KERNEL_SCHED_SCHED_H */
diff --git a/tools/sched_ext/include/scx/cid.bpf.h b/tools/sched_ext/include/scx/cid.bpf.h
index 9d89bb57e201..db247e42fb45 100644
--- a/tools/sched_ext/include/scx/cid.bpf.h
+++ b/tools/sched_ext/include/scx/cid.bpf.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * BPF-side helpers for cids and cmasks. See kernel/sched/ext_cid.h for the
+ * BPF-side helpers for cids and cmasks. See kernel/sched/ext/cid.h for the
  * authoritative layout and semantics. The BPF-side helpers use the cmask_*
  * naming (no scx_ prefix); cmask is the SCX bitmap type so the prefix is
  * redundant in BPF code. Atomics use __sync_val_compare_and_swap and every
@@ -33,7 +33,7 @@
 #endif
 
 /*
- * Mirrors SCX_CMASK_NR_WORDS in kernel/sched/ext_types.h. The u64 cast keeps
+ * Mirrors SCX_CMASK_NR_WORDS in kernel/sched/ext/types.h. The u64 cast keeps
  * the +63 from wrapping when @nr_cids is near U32_MAX, so cmask_reframe()
  * bounds-checking the result against alloc_words catches the overflow instead
  * of seeing a small value.
@@ -281,7 +281,7 @@ static __always_inline void cmask_zero(struct scx_cmask __arena *m)
 
 /*
  * BPF_-prefixed to avoid colliding with the kernel's anonymous CMASK_OP_*
- * enum in ext_cid.c, which is exported via BTF and reachable through
+ * enum in ext/cid.c, which is exported via BTF and reachable through
  * vmlinux.h.
  */
 enum {
-- 
2.54.0


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

* Re: [PATCH sched_ext/for-7.2] sched_ext: Move sources under kernel/sched/ext/
  2026-06-21 16:30 [PATCH sched_ext/for-7.2] sched_ext: Move sources under kernel/sched/ext/ Tejun Heo
@ 2026-06-21 16:39 ` sashiko-bot
  2026-06-21 18:34 ` [PATCH v2 " Tejun Heo
  1 sibling, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-06-21 16:39 UTC (permalink / raw)
  To: Tejun Heo; +Cc: sched-ext

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Stale file name references to the renamed file `ext_cid.c` were left in comments.
--

commit 14b1d7b00c99cf24d69bf37c03dd5f2f1c7a83d3
Author: Tejun Heo <tj@kernel.org>

sched_ext: Move sources under kernel/sched/ext/

The sched_ext sources had grown to ten ext* files directly under
kernel/sched/. Move them into a new kernel/sched/ext/ subdirectory and drop
the now-redundant ext_ prefix. ext.c/h keep their names.

> diff --git a/kernel/sched/ext_cid.c b/kernel/sched/ext/cid.c
> similarity index 99%
> rename from kernel/sched/ext_cid.c
> rename to kernel/sched/ext/cid.c
> index 66944a7ef79d1..aeaea88f34c55 100644
> --- a/kernel/sched/ext_cid.c
> +++ b/kernel/sched/ext/cid.c
> @@ -71,7 +71,7 @@ static s32 scx_cid_arrays_alloc(void)
>   * scx_cid_init - build the cid mapping
>   * @sch: the scx_sched being initialized; used as the scx_error() target
>   *
> - * See "Topological CPU IDs" in ext_cid.h for the model. Walk online cpus by
> + * See "Topological CPU IDs" in cid.h for the model. Walk online cpus by
>   * intersection at each level (parent_scratch & this_level_mask), which keeps

[Severity: Low]
Were some stale file name references to ext_cid.c missed in the comments?

While this hunk updates the reference from ext_cid.h to cid.h, the block
comment in kernel/sched/ext/cid.h still references ext_cid.c:

kernel/sched/ext/cid.h:
 * possible-but-not-online cpus and carries all-(-1) topo info (see
 * scx_cid_topo); callers detect it via the -1 sentinels.
 *
 * See the comment above the table definitions in ext_cid.c for the
 * memory-ordering and visibility contract.

And the kernel-doc comment for scx_call_op_set_cpumask() also still
references it:

kernel/sched/ext/ext.c:scx_call_op_set_cpumask() {
 * @cpumask: new cpumask
 *
 * For cid-form schedulers, translate @cpumask to a cmask via the per-cpu
 * scratch in ext_cid.c and dispatch through the ops_cid union view. Caller
 * must hold @rq's rq lock so this_cpu_ptr is stable across the call.
 */

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260621163026.434856-1-tj@kernel.org?part=1

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

* [PATCH v2 sched_ext/for-7.2] sched_ext: Move sources under kernel/sched/ext/
  2026-06-21 16:30 [PATCH sched_ext/for-7.2] sched_ext: Move sources under kernel/sched/ext/ Tejun Heo
  2026-06-21 16:39 ` sashiko-bot
@ 2026-06-21 18:34 ` Tejun Heo
  2026-06-21 19:09   ` Andrea Righi
  1 sibling, 1 reply; 4+ messages in thread
From: Tejun Heo @ 2026-06-21 18:34 UTC (permalink / raw)
  To: linux-kernel
  Cc: Peter Zijlstra, Ingo Molnar, Juri Lelli, Vincent Guittot,
	David Vernet, Andrea Righi, Changwoo Min, Emil Tsalapatis,
	Linus Torvalds, sched-ext

The sched_ext sources had grown to ten ext* files directly under
kernel/sched/. Move them into a new kernel/sched/ext/ subdirectory and drop
the now-redundant ext_ prefix. ext.c/h keep their names.

  kernel/sched/ext.{c,h}       -> kernel/sched/ext/ext.{c,h}
  kernel/sched/ext_internal.h  -> kernel/sched/ext/internal.h
  kernel/sched/ext_types.h     -> kernel/sched/ext/types.h
  kernel/sched/ext_idle.{c,h}  -> kernel/sched/ext/idle.{c,h}
  kernel/sched/ext_cid.{c,h}   -> kernel/sched/ext/cid.{c,h}
  kernel/sched/ext_arena.{c,h} -> kernel/sched/ext/arena.{c,h}

The include paths in build_policy.c and sched.h, the MAINTAINERS glob, and a
few documentation and comment references are updated to match. No code or
symbol changes.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
---
v2: Update two ext_cid.c comment references the rename missed in cid.h and
    ext.c (sashiko AI).

I'm applying this to sched_ext/for-7.2 and sending it to Linus before the
merge window closes so that for-7.2-fixes and for-7.3 don't diverge
unnecessarily.

Thanks.

 Documentation/scheduler/sched-ext.rst          |  8 ++++----
 MAINTAINERS                                    |  2 +-
 kernel/sched/build_policy.c                    | 18 +++++++++---------
 kernel/sched/{ext_arena.c => ext/arena.c}      |  0
 kernel/sched/{ext_arena.h => ext/arena.h}      |  0
 kernel/sched/{ext_cid.c => ext/cid.c}          |  2 +-
 kernel/sched/{ext_cid.h => ext/cid.h}          |  2 +-
 kernel/sched/{ => ext}/ext.c                   |  4 ++--
 kernel/sched/{ => ext}/ext.h                   |  0
 kernel/sched/{ext_idle.c => ext/idle.c}        |  0
 kernel/sched/{ext_idle.h => ext/idle.h}        |  0
 .../sched/{ext_internal.h => ext/internal.h}   |  0
 kernel/sched/{ext_types.h => ext/types.h}      |  0
 kernel/sched/sched.h                           |  2 +-
 tools/sched_ext/include/scx/cid.bpf.h          |  6 +++---
 15 files changed, 22 insertions(+), 22 deletions(-)
 rename kernel/sched/{ext_arena.c => ext/arena.c} (100%)
 rename kernel/sched/{ext_arena.h => ext/arena.h} (100%)
 rename kernel/sched/{ext_cid.c => ext/cid.c} (99%)
 rename kernel/sched/{ext_cid.h => ext/cid.h} (99%)
 rename kernel/sched/{ => ext}/ext.c (99%)
 rename kernel/sched/{ => ext}/ext.h (100%)
 rename kernel/sched/{ext_idle.c => ext/idle.c} (100%)
 rename kernel/sched/{ext_idle.h => ext/idle.h} (100%)
 rename kernel/sched/{ext_internal.h => ext/internal.h} (100%)
 rename kernel/sched/{ext_types.h => ext/types.h} (100%)

diff --git a/Documentation/scheduler/sched-ext.rst b/Documentation/scheduler/sched-ext.rst
index c4f59c08d8a4..4b1ffd03f516 100644
--- a/Documentation/scheduler/sched-ext.rst
+++ b/Documentation/scheduler/sched-ext.rst
@@ -114,7 +114,7 @@ Each running scheduler also exposes a per-scheduler ``events`` file under
     SCX_EV_INSERT_NOT_OWNED 0
     SCX_EV_SUB_BYPASS_DISPATCH 0
 
-The counters are described in ``kernel/sched/ext_internal.h``; briefly:
+The counters are described in ``kernel/sched/ext/internal.h``; briefly:
 
 * ``SCX_EV_SELECT_CPU_FALLBACK``: ops.select_cpu() returned a CPU unusable by
   the task and the core scheduler silently picked a fallback CPU.
@@ -496,11 +496,11 @@ Where to Look
 * ``include/linux/sched/ext.h`` defines the core data structures, ops table
   and constants.
 
-* ``kernel/sched/ext.c`` contains sched_ext core implementation and helpers.
+* ``kernel/sched/ext/ext.c`` contains sched_ext core implementation and helpers.
   The functions prefixed with ``scx_bpf_`` can be called from the BPF
   scheduler.
 
-* ``kernel/sched/ext_idle.c`` contains the built-in idle CPU selection policy.
+* ``kernel/sched/ext/idle.c`` contains the built-in idle CPU selection policy.
 
 * ``tools/sched_ext/`` hosts example BPF scheduler implementations.
 
@@ -557,7 +557,7 @@ ABI Instability
 The APIs provided by sched_ext to BPF schedulers programs have no stability
 guarantees. This includes the ops table callbacks and constants defined in
 ``include/linux/sched/ext.h``, as well as the ``scx_bpf_`` kfuncs defined in
-``kernel/sched/ext.c`` and ``kernel/sched/ext_idle.c``.
+``kernel/sched/ext/ext.c`` and ``kernel/sched/ext/idle.c``.
 
 While we will attempt to provide a relatively stable API surface when
 possible, they are subject to change without warning between kernel
diff --git a/MAINTAINERS b/MAINTAINERS
index d95d3ef77773..ebd76d0367ef 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -24164,7 +24164,7 @@ S:	Maintained
 W:	https://github.com/sched-ext/scx
 T:	git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git
 F:	include/linux/sched/ext.h
-F:	kernel/sched/ext*
+F:	kernel/sched/ext/
 F:	tools/sched_ext/
 F:	tools/testing/selftests/sched_ext
 
diff --git a/kernel/sched/build_policy.c b/kernel/sched/build_policy.c
index 067979a7b69e..d74b54f81992 100644
--- a/kernel/sched/build_policy.c
+++ b/kernel/sched/build_policy.c
@@ -61,15 +61,15 @@
 # include <linux/btf_ids.h>
 # include <linux/find.h>
 # include <linux/genalloc.h>
-# include "ext_types.h"
-# include "ext_internal.h"
-# include "ext_cid.h"
-# include "ext_arena.h"
-# include "ext_idle.h"
-# include "ext.c"
-# include "ext_cid.c"
-# include "ext_arena.c"
-# include "ext_idle.c"
+# include "ext/types.h"
+# include "ext/internal.h"
+# include "ext/cid.h"
+# include "ext/arena.h"
+# include "ext/idle.h"
+# include "ext/ext.c"
+# include "ext/cid.c"
+# include "ext/arena.c"
+# include "ext/idle.c"
 #endif
 
 #include "syscalls.c"
diff --git a/kernel/sched/ext_arena.c b/kernel/sched/ext/arena.c
similarity index 100%
rename from kernel/sched/ext_arena.c
rename to kernel/sched/ext/arena.c
diff --git a/kernel/sched/ext_arena.h b/kernel/sched/ext/arena.h
similarity index 100%
rename from kernel/sched/ext_arena.h
rename to kernel/sched/ext/arena.h
diff --git a/kernel/sched/ext_cid.c b/kernel/sched/ext/cid.c
similarity index 99%
rename from kernel/sched/ext_cid.c
rename to kernel/sched/ext/cid.c
index 66944a7ef79d..aeaea88f34c5 100644
--- a/kernel/sched/ext_cid.c
+++ b/kernel/sched/ext/cid.c
@@ -71,7 +71,7 @@ static s32 scx_cid_arrays_alloc(void)
  * scx_cid_init - build the cid mapping
  * @sch: the scx_sched being initialized; used as the scx_error() target
  *
- * See "Topological CPU IDs" in ext_cid.h for the model. Walk online cpus by
+ * See "Topological CPU IDs" in cid.h for the model. Walk online cpus by
  * intersection at each level (parent_scratch & this_level_mask), which keeps
  * containment correct by construction and naturally splits a physical LLC
  * straddling two NUMA nodes into two LLC units. The caller must hold
diff --git a/kernel/sched/ext_cid.h b/kernel/sched/ext/cid.h
similarity index 99%
rename from kernel/sched/ext_cid.h
rename to kernel/sched/ext/cid.h
index 5745e5785e89..6e657fd147b0 100644
--- a/kernel/sched/ext_cid.h
+++ b/kernel/sched/ext/cid.h
@@ -43,7 +43,7 @@ struct scx_sched;
  * possible-but-not-online cpus and carries all-(-1) topo info (see
  * scx_cid_topo); callers detect it via the -1 sentinels.
  *
- * See the comment above the table definitions in ext_cid.c for the
+ * See the comment above the table definitions in cid.c for the
  * memory-ordering and visibility contract.
  */
 extern s16 *scx_cid_to_cpu_tbl;
diff --git a/kernel/sched/ext.c b/kernel/sched/ext/ext.c
similarity index 99%
rename from kernel/sched/ext.c
rename to kernel/sched/ext/ext.c
index 0db6fa2daea3..00fe6cc6d7e2 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext/ext.c
@@ -513,7 +513,7 @@ do {										\
 } while (0)
 
 /*
- * Flipped on enable per sch->is_cid_type. Declared in ext_internal.h so
+ * Flipped on enable per sch->is_cid_type. Declared in internal.h so
  * subsystem inlines can read it.
  */
 DEFINE_STATIC_KEY_FALSE(__scx_is_cid_type);
@@ -608,7 +608,7 @@ do {										\
  * @cpumask: new cpumask
  *
  * For cid-form schedulers, translate @cpumask to a cmask via the per-cpu
- * scratch in ext_cid.c and dispatch through the ops_cid union view. Caller
+ * scratch in cid.c and dispatch through the ops_cid union view. Caller
  * must hold @rq's rq lock so this_cpu_ptr is stable across the call.
  */
 static inline void scx_call_op_set_cpumask(struct scx_sched *sch, struct rq *rq,
diff --git a/kernel/sched/ext.h b/kernel/sched/ext/ext.h
similarity index 100%
rename from kernel/sched/ext.h
rename to kernel/sched/ext/ext.h
diff --git a/kernel/sched/ext_idle.c b/kernel/sched/ext/idle.c
similarity index 100%
rename from kernel/sched/ext_idle.c
rename to kernel/sched/ext/idle.c
diff --git a/kernel/sched/ext_idle.h b/kernel/sched/ext/idle.h
similarity index 100%
rename from kernel/sched/ext_idle.h
rename to kernel/sched/ext/idle.h
diff --git a/kernel/sched/ext_internal.h b/kernel/sched/ext/internal.h
similarity index 100%
rename from kernel/sched/ext_internal.h
rename to kernel/sched/ext/internal.h
diff --git a/kernel/sched/ext_types.h b/kernel/sched/ext/types.h
similarity index 100%
rename from kernel/sched/ext_types.h
rename to kernel/sched/ext/types.h
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index c7c2dea65edd..56acf502ba26 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -4211,6 +4211,6 @@ DEFINE_CLASS(sched_change, struct sched_change_ctx *,
 
 DEFINE_CLASS_IS_UNCONDITIONAL(sched_change)
 
-#include "ext.h"
+#include "ext/ext.h"
 
 #endif /* _KERNEL_SCHED_SCHED_H */
diff --git a/tools/sched_ext/include/scx/cid.bpf.h b/tools/sched_ext/include/scx/cid.bpf.h
index 9d89bb57e201..db247e42fb45 100644
--- a/tools/sched_ext/include/scx/cid.bpf.h
+++ b/tools/sched_ext/include/scx/cid.bpf.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * BPF-side helpers for cids and cmasks. See kernel/sched/ext_cid.h for the
+ * BPF-side helpers for cids and cmasks. See kernel/sched/ext/cid.h for the
  * authoritative layout and semantics. The BPF-side helpers use the cmask_*
  * naming (no scx_ prefix); cmask is the SCX bitmap type so the prefix is
  * redundant in BPF code. Atomics use __sync_val_compare_and_swap and every
@@ -33,7 +33,7 @@
 #endif
 
 /*
- * Mirrors SCX_CMASK_NR_WORDS in kernel/sched/ext_types.h. The u64 cast keeps
+ * Mirrors SCX_CMASK_NR_WORDS in kernel/sched/ext/types.h. The u64 cast keeps
  * the +63 from wrapping when @nr_cids is near U32_MAX, so cmask_reframe()
  * bounds-checking the result against alloc_words catches the overflow instead
  * of seeing a small value.
@@ -281,7 +281,7 @@ static __always_inline void cmask_zero(struct scx_cmask __arena *m)
 
 /*
  * BPF_-prefixed to avoid colliding with the kernel's anonymous CMASK_OP_*
- * enum in ext_cid.c, which is exported via BTF and reachable through
+ * enum in ext/cid.c, which is exported via BTF and reachable through
  * vmlinux.h.
  */
 enum {
-- 
2.54.0


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

* Re: [PATCH v2 sched_ext/for-7.2] sched_ext: Move sources under kernel/sched/ext/
  2026-06-21 18:34 ` [PATCH v2 " Tejun Heo
@ 2026-06-21 19:09   ` Andrea Righi
  0 siblings, 0 replies; 4+ messages in thread
From: Andrea Righi @ 2026-06-21 19:09 UTC (permalink / raw)
  To: Tejun Heo
  Cc: linux-kernel, Peter Zijlstra, Ingo Molnar, Juri Lelli,
	Vincent Guittot, David Vernet, Changwoo Min, Emil Tsalapatis,
	Linus Torvalds, sched-ext

Hi Tejun,

On Sun, Jun 21, 2026 at 08:34:44AM -1000, Tejun Heo wrote:
> The sched_ext sources had grown to ten ext* files directly under
> kernel/sched/. Move them into a new kernel/sched/ext/ subdirectory and drop
> the now-redundant ext_ prefix. ext.c/h keep their names.
> 
>   kernel/sched/ext.{c,h}       -> kernel/sched/ext/ext.{c,h}
>   kernel/sched/ext_internal.h  -> kernel/sched/ext/internal.h
>   kernel/sched/ext_types.h     -> kernel/sched/ext/types.h
>   kernel/sched/ext_idle.{c,h}  -> kernel/sched/ext/idle.{c,h}
>   kernel/sched/ext_cid.{c,h}   -> kernel/sched/ext/cid.{c,h}
>   kernel/sched/ext_arena.{c,h} -> kernel/sched/ext/arena.{c,h}
> 
> The include paths in build_policy.c and sched.h, the MAINTAINERS glob, and a
> few documentation and comment references are updated to match. No code or
> symbol changes.
> 
> Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
> Signed-off-by: Tejun Heo <tj@kernel.org>

Looks good to me. I also double checked for any potential stale references after
the rename, but couldn't find any.

Reviewed-by: Andrea Righi <arighi@nvidia.com>

Thanks,
-Andrea

> ---
> v2: Update two ext_cid.c comment references the rename missed in cid.h and
>     ext.c (sashiko AI).
> 
> I'm applying this to sched_ext/for-7.2 and sending it to Linus before the
> merge window closes so that for-7.2-fixes and for-7.3 don't diverge
> unnecessarily.
> 
> Thanks.
> 
>  Documentation/scheduler/sched-ext.rst          |  8 ++++----
>  MAINTAINERS                                    |  2 +-
>  kernel/sched/build_policy.c                    | 18 +++++++++---------
>  kernel/sched/{ext_arena.c => ext/arena.c}      |  0
>  kernel/sched/{ext_arena.h => ext/arena.h}      |  0
>  kernel/sched/{ext_cid.c => ext/cid.c}          |  2 +-
>  kernel/sched/{ext_cid.h => ext/cid.h}          |  2 +-
>  kernel/sched/{ => ext}/ext.c                   |  4 ++--
>  kernel/sched/{ => ext}/ext.h                   |  0
>  kernel/sched/{ext_idle.c => ext/idle.c}        |  0
>  kernel/sched/{ext_idle.h => ext/idle.h}        |  0
>  .../sched/{ext_internal.h => ext/internal.h}   |  0
>  kernel/sched/{ext_types.h => ext/types.h}      |  0
>  kernel/sched/sched.h                           |  2 +-
>  tools/sched_ext/include/scx/cid.bpf.h          |  6 +++---
>  15 files changed, 22 insertions(+), 22 deletions(-)
>  rename kernel/sched/{ext_arena.c => ext/arena.c} (100%)
>  rename kernel/sched/{ext_arena.h => ext/arena.h} (100%)
>  rename kernel/sched/{ext_cid.c => ext/cid.c} (99%)
>  rename kernel/sched/{ext_cid.h => ext/cid.h} (99%)
>  rename kernel/sched/{ => ext}/ext.c (99%)
>  rename kernel/sched/{ => ext}/ext.h (100%)
>  rename kernel/sched/{ext_idle.c => ext/idle.c} (100%)
>  rename kernel/sched/{ext_idle.h => ext/idle.h} (100%)
>  rename kernel/sched/{ext_internal.h => ext/internal.h} (100%)
>  rename kernel/sched/{ext_types.h => ext/types.h} (100%)
> 
> diff --git a/Documentation/scheduler/sched-ext.rst b/Documentation/scheduler/sched-ext.rst
> index c4f59c08d8a4..4b1ffd03f516 100644
> --- a/Documentation/scheduler/sched-ext.rst
> +++ b/Documentation/scheduler/sched-ext.rst
> @@ -114,7 +114,7 @@ Each running scheduler also exposes a per-scheduler ``events`` file under
>      SCX_EV_INSERT_NOT_OWNED 0
>      SCX_EV_SUB_BYPASS_DISPATCH 0
>  
> -The counters are described in ``kernel/sched/ext_internal.h``; briefly:
> +The counters are described in ``kernel/sched/ext/internal.h``; briefly:
>  
>  * ``SCX_EV_SELECT_CPU_FALLBACK``: ops.select_cpu() returned a CPU unusable by
>    the task and the core scheduler silently picked a fallback CPU.
> @@ -496,11 +496,11 @@ Where to Look
>  * ``include/linux/sched/ext.h`` defines the core data structures, ops table
>    and constants.
>  
> -* ``kernel/sched/ext.c`` contains sched_ext core implementation and helpers.
> +* ``kernel/sched/ext/ext.c`` contains sched_ext core implementation and helpers.
>    The functions prefixed with ``scx_bpf_`` can be called from the BPF
>    scheduler.
>  
> -* ``kernel/sched/ext_idle.c`` contains the built-in idle CPU selection policy.
> +* ``kernel/sched/ext/idle.c`` contains the built-in idle CPU selection policy.
>  
>  * ``tools/sched_ext/`` hosts example BPF scheduler implementations.
>  
> @@ -557,7 +557,7 @@ ABI Instability
>  The APIs provided by sched_ext to BPF schedulers programs have no stability
>  guarantees. This includes the ops table callbacks and constants defined in
>  ``include/linux/sched/ext.h``, as well as the ``scx_bpf_`` kfuncs defined in
> -``kernel/sched/ext.c`` and ``kernel/sched/ext_idle.c``.
> +``kernel/sched/ext/ext.c`` and ``kernel/sched/ext/idle.c``.
>  
>  While we will attempt to provide a relatively stable API surface when
>  possible, they are subject to change without warning between kernel
> diff --git a/MAINTAINERS b/MAINTAINERS
> index d95d3ef77773..ebd76d0367ef 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -24164,7 +24164,7 @@ S:	Maintained
>  W:	https://github.com/sched-ext/scx
>  T:	git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git
>  F:	include/linux/sched/ext.h
> -F:	kernel/sched/ext*
> +F:	kernel/sched/ext/
>  F:	tools/sched_ext/
>  F:	tools/testing/selftests/sched_ext
>  
> diff --git a/kernel/sched/build_policy.c b/kernel/sched/build_policy.c
> index 067979a7b69e..d74b54f81992 100644
> --- a/kernel/sched/build_policy.c
> +++ b/kernel/sched/build_policy.c
> @@ -61,15 +61,15 @@
>  # include <linux/btf_ids.h>
>  # include <linux/find.h>
>  # include <linux/genalloc.h>
> -# include "ext_types.h"
> -# include "ext_internal.h"
> -# include "ext_cid.h"
> -# include "ext_arena.h"
> -# include "ext_idle.h"
> -# include "ext.c"
> -# include "ext_cid.c"
> -# include "ext_arena.c"
> -# include "ext_idle.c"
> +# include "ext/types.h"
> +# include "ext/internal.h"
> +# include "ext/cid.h"
> +# include "ext/arena.h"
> +# include "ext/idle.h"
> +# include "ext/ext.c"
> +# include "ext/cid.c"
> +# include "ext/arena.c"
> +# include "ext/idle.c"
>  #endif
>  
>  #include "syscalls.c"
> diff --git a/kernel/sched/ext_arena.c b/kernel/sched/ext/arena.c
> similarity index 100%
> rename from kernel/sched/ext_arena.c
> rename to kernel/sched/ext/arena.c
> diff --git a/kernel/sched/ext_arena.h b/kernel/sched/ext/arena.h
> similarity index 100%
> rename from kernel/sched/ext_arena.h
> rename to kernel/sched/ext/arena.h
> diff --git a/kernel/sched/ext_cid.c b/kernel/sched/ext/cid.c
> similarity index 99%
> rename from kernel/sched/ext_cid.c
> rename to kernel/sched/ext/cid.c
> index 66944a7ef79d..aeaea88f34c5 100644
> --- a/kernel/sched/ext_cid.c
> +++ b/kernel/sched/ext/cid.c
> @@ -71,7 +71,7 @@ static s32 scx_cid_arrays_alloc(void)
>   * scx_cid_init - build the cid mapping
>   * @sch: the scx_sched being initialized; used as the scx_error() target
>   *
> - * See "Topological CPU IDs" in ext_cid.h for the model. Walk online cpus by
> + * See "Topological CPU IDs" in cid.h for the model. Walk online cpus by
>   * intersection at each level (parent_scratch & this_level_mask), which keeps
>   * containment correct by construction and naturally splits a physical LLC
>   * straddling two NUMA nodes into two LLC units. The caller must hold
> diff --git a/kernel/sched/ext_cid.h b/kernel/sched/ext/cid.h
> similarity index 99%
> rename from kernel/sched/ext_cid.h
> rename to kernel/sched/ext/cid.h
> index 5745e5785e89..6e657fd147b0 100644
> --- a/kernel/sched/ext_cid.h
> +++ b/kernel/sched/ext/cid.h
> @@ -43,7 +43,7 @@ struct scx_sched;
>   * possible-but-not-online cpus and carries all-(-1) topo info (see
>   * scx_cid_topo); callers detect it via the -1 sentinels.
>   *
> - * See the comment above the table definitions in ext_cid.c for the
> + * See the comment above the table definitions in cid.c for the
>   * memory-ordering and visibility contract.
>   */
>  extern s16 *scx_cid_to_cpu_tbl;
> diff --git a/kernel/sched/ext.c b/kernel/sched/ext/ext.c
> similarity index 99%
> rename from kernel/sched/ext.c
> rename to kernel/sched/ext/ext.c
> index 0db6fa2daea3..00fe6cc6d7e2 100644
> --- a/kernel/sched/ext.c
> +++ b/kernel/sched/ext/ext.c
> @@ -513,7 +513,7 @@ do {										\
>  } while (0)
>  
>  /*
> - * Flipped on enable per sch->is_cid_type. Declared in ext_internal.h so
> + * Flipped on enable per sch->is_cid_type. Declared in internal.h so
>   * subsystem inlines can read it.
>   */
>  DEFINE_STATIC_KEY_FALSE(__scx_is_cid_type);
> @@ -608,7 +608,7 @@ do {										\
>   * @cpumask: new cpumask
>   *
>   * For cid-form schedulers, translate @cpumask to a cmask via the per-cpu
> - * scratch in ext_cid.c and dispatch through the ops_cid union view. Caller
> + * scratch in cid.c and dispatch through the ops_cid union view. Caller
>   * must hold @rq's rq lock so this_cpu_ptr is stable across the call.
>   */
>  static inline void scx_call_op_set_cpumask(struct scx_sched *sch, struct rq *rq,
> diff --git a/kernel/sched/ext.h b/kernel/sched/ext/ext.h
> similarity index 100%
> rename from kernel/sched/ext.h
> rename to kernel/sched/ext/ext.h
> diff --git a/kernel/sched/ext_idle.c b/kernel/sched/ext/idle.c
> similarity index 100%
> rename from kernel/sched/ext_idle.c
> rename to kernel/sched/ext/idle.c
> diff --git a/kernel/sched/ext_idle.h b/kernel/sched/ext/idle.h
> similarity index 100%
> rename from kernel/sched/ext_idle.h
> rename to kernel/sched/ext/idle.h
> diff --git a/kernel/sched/ext_internal.h b/kernel/sched/ext/internal.h
> similarity index 100%
> rename from kernel/sched/ext_internal.h
> rename to kernel/sched/ext/internal.h
> diff --git a/kernel/sched/ext_types.h b/kernel/sched/ext/types.h
> similarity index 100%
> rename from kernel/sched/ext_types.h
> rename to kernel/sched/ext/types.h
> diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
> index c7c2dea65edd..56acf502ba26 100644
> --- a/kernel/sched/sched.h
> +++ b/kernel/sched/sched.h
> @@ -4211,6 +4211,6 @@ DEFINE_CLASS(sched_change, struct sched_change_ctx *,
>  
>  DEFINE_CLASS_IS_UNCONDITIONAL(sched_change)
>  
> -#include "ext.h"
> +#include "ext/ext.h"
>  
>  #endif /* _KERNEL_SCHED_SCHED_H */
> diff --git a/tools/sched_ext/include/scx/cid.bpf.h b/tools/sched_ext/include/scx/cid.bpf.h
> index 9d89bb57e201..db247e42fb45 100644
> --- a/tools/sched_ext/include/scx/cid.bpf.h
> +++ b/tools/sched_ext/include/scx/cid.bpf.h
> @@ -1,6 +1,6 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
>  /*
> - * BPF-side helpers for cids and cmasks. See kernel/sched/ext_cid.h for the
> + * BPF-side helpers for cids and cmasks. See kernel/sched/ext/cid.h for the
>   * authoritative layout and semantics. The BPF-side helpers use the cmask_*
>   * naming (no scx_ prefix); cmask is the SCX bitmap type so the prefix is
>   * redundant in BPF code. Atomics use __sync_val_compare_and_swap and every
> @@ -33,7 +33,7 @@
>  #endif
>  
>  /*
> - * Mirrors SCX_CMASK_NR_WORDS in kernel/sched/ext_types.h. The u64 cast keeps
> + * Mirrors SCX_CMASK_NR_WORDS in kernel/sched/ext/types.h. The u64 cast keeps
>   * the +63 from wrapping when @nr_cids is near U32_MAX, so cmask_reframe()
>   * bounds-checking the result against alloc_words catches the overflow instead
>   * of seeing a small value.
> @@ -281,7 +281,7 @@ static __always_inline void cmask_zero(struct scx_cmask __arena *m)
>  
>  /*
>   * BPF_-prefixed to avoid colliding with the kernel's anonymous CMASK_OP_*
> - * enum in ext_cid.c, which is exported via BTF and reachable through
> + * enum in ext/cid.c, which is exported via BTF and reachable through
>   * vmlinux.h.
>   */
>  enum {
> -- 
> 2.54.0
> 

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

end of thread, other threads:[~2026-06-21 19:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-21 16:30 [PATCH sched_ext/for-7.2] sched_ext: Move sources under kernel/sched/ext/ Tejun Heo
2026-06-21 16:39 ` sashiko-bot
2026-06-21 18:34 ` [PATCH v2 " Tejun Heo
2026-06-21 19:09   ` Andrea Righi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.