* [PATCHSET sched_ext/for-7.5] sched_ext: Regenerate the enum tables and drop scx_qmap's last compat lookup
@ 2026-10-23 0:03 Tejun Heo
2026-10-23 0:03 ` [PATCH 1/2] sched_ext: Regenerate tools autogen enum headers Tejun Heo
2026-10-23 0:03 ` [PATCH 2/2] sched_ext: scx_qmap: Read SCX_RESCUE_DISABLE through the enum lookup tables Tejun Heo
0 siblings, 2 replies; 5+ messages in thread
From: Tejun Heo @ 2026-10-23 0:03 UTC (permalink / raw)
To: sched-ext
Cc: David Vernet, Andrea Righi, Changwoo Min, Emil Tsalapatis,
David Dai, linux-kernel, Tejun Heo
Hello,
This follows up on the scx_qmap compat removal [1]. Andrea pointed out that
788b494fab1c ("sched_ext: scx_qmap: Drop the compat code") left one compat
lookup behind: the -B 0 case reads SCX_RESCUE_DISABLE with
__COMPAT_ENUM_OR_ZERO(). Userspace can read the enumerator only from BTF as
it is in the kernel-internal enum scx_consts, and the enum lookup tables
don't list it.
The first patch regenerates the two generated enum tables for the enums
added since the last regeneration. The second adds SCX_RESCUE_DISABLE to the
lookup tables and drops the compat lookup.
Verified that -B 0 disables rescue and that the default stays in place
without it.
[1] https://lore.kernel.org/r/20261019213221.2919481-1-tj@kernel.org
Based on sched_ext/for-7.5 (bbd3a3288035).
This patchset contains the following 2 patches.
0001 sched_ext: Regenerate tools autogen enum headers
0002 sched_ext: scx_qmap: Read SCX_RESCUE_DISABLE through the enum lookup tables
The patchset is also available in the following git branch:
git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git qmap-enums
diffstat follows. Thanks.
tools/sched_ext/include/scx/enum_defs.autogen.h | 11 +++++++++++
tools/sched_ext/include/scx/enums.autogen.bpf.h | 3 +++
tools/sched_ext/include/scx/enums.autogen.h | 1 +
tools/sched_ext/include/scx/enums_abi.autogen.h | 21 ++++++++++++++++-----
tools/sched_ext/scx_qmap.c | 2 +-
5 files changed, 32 insertions(+), 6 deletions(-)
--
tejun
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH 1/2] sched_ext: Regenerate tools autogen enum headers 2026-10-23 0:03 [PATCHSET sched_ext/for-7.5] sched_ext: Regenerate the enum tables and drop scx_qmap's last compat lookup Tejun Heo @ 2026-10-23 0:03 ` Tejun Heo 2026-10-23 5:44 ` Andrea Righi 2026-10-23 0:03 ` [PATCH 2/2] sched_ext: scx_qmap: Read SCX_RESCUE_DISABLE through the enum lookup tables Tejun Heo 1 sibling, 1 reply; 5+ messages in thread From: Tejun Heo @ 2026-10-23 0:03 UTC (permalink / raw) To: sched-ext Cc: David Vernet, Andrea Righi, Changwoo Min, Emil Tsalapatis, David Dai, linux-kernel, Tejun Heo Regenerate enum_defs.autogen.h and enums_abi.autogen.h from the current vmlinux.h. The enums added since the last regeneration lacked presence markers and ABI values. Signed-off-by: Tejun Heo <tj@kernel.org> --- .../sched_ext/include/scx/enum_defs.autogen.h | 11 ++++++++++ .../sched_ext/include/scx/enums_abi.autogen.h | 21 ++++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/tools/sched_ext/include/scx/enum_defs.autogen.h b/tools/sched_ext/include/scx/enum_defs.autogen.h index 4fa82033b99c..27b45040c88a 100644 --- a/tools/sched_ext/include/scx/enum_defs.autogen.h +++ b/tools/sched_ext/include/scx/enum_defs.autogen.h @@ -23,6 +23,8 @@ #define HAVE_SCX_CAPS_REENQ_ON_LOSS #define HAVE_SCX_CID_SHARD_SIZE_DFL #define HAVE_SCX_CID_SHARD_MAX_CPUS +#define HAVE_SCX_CID_SCHED_NONE +#define HAVE_SCX_CID_SCHED_SELF #define HAVE_SCX_DSP_DFL_MAX_BATCH #define HAVE_SCX_DSP_MAX_LOOPS #define HAVE_SCX_WATCHDOG_MAX_TIMEOUT @@ -71,6 +73,7 @@ #define HAVE_SCX_DSQ_LOCAL_ON #define HAVE_SCX_DSQ_LOCAL_CPU_MASK #define HAVE_SCX_DSQ_ITER_REV +#define HAVE___SCX_DSQ_ITER_HAS_REENQ #define HAVE___SCX_DSQ_ITER_HAS_SLICE #define HAVE___SCX_DSQ_ITER_HAS_VTIME #define HAVE___SCX_DSQ_ITER_USER_FLAGS @@ -100,6 +103,7 @@ #define HAVE_SCX_ENQ_APPLY_SLICE #define HAVE_SCX_ENQ_SLICE_DFL #define HAVE_SCX_TASK_DSQ_ON_PRIQ +#define HAVE_SCX_TASK_DSQ_REENQ #define HAVE_SCX_TASK_QUEUED #define HAVE_SCX_TASK_IN_CUSTODY #define HAVE_SCX_TASK_RESET_RUNNABLE_AT @@ -188,6 +192,7 @@ #define HAVE_SCX_SLICE_INF #define HAVE_SCX_REENQ_ANY #define HAVE_SCX_REENQ_CAP_REVOKE +#define HAVE_SCX_REENQ_MARKED #define HAVE___SCX_REENQ_FILTER_MASK #define HAVE___SCX_REENQ_USER_MASK #define HAVE_SCX_REENQ_TSR_RQ_OPEN @@ -195,15 +200,21 @@ #define HAVE___SCX_REENQ_TSR_MASK #define HAVE_SCX_RQ_ONLINE #define HAVE_SCX_RQ_CAN_STOP_TICK +#define HAVE_SCX_RQ_OPS_ONLINE #define HAVE_SCX_RQ_CLK_VALID #define HAVE_SCX_RQ_BAL_CB_PENDING #define HAVE_SCX_RQ_SUB_IDLE_RENOTIFY #define HAVE_SCX_RQ_ROOT_IDLE_RENOTIFY #define HAVE_SCX_RQ_PROXY_RETRY #define HAVE_SCX_RQ_PROXY_TICK +#define HAVE_SCX_RQ_PROXY_PENDING +#define HAVE_SCX_RQ_PROXY_BLOCKING #define HAVE_SCX_RQ_IN_WAKEUP #define HAVE_SCX_RQ_IN_DISPATCH #define HAVE_SCX_SCHED_PCPU_BYPASSING +#define HAVE_SCX_SCHED_PCPU_ECAPS_ENABLED +#define HAVE_SCX_SCHED_PCPU_ECAPS_REPORT +#define HAVE_SCX_SCHED_PCPU_ECAPS_OFFLINE #define HAVE_SCX_SLICE_OOB_DUR_BITS #define HAVE_SCX_SLICE_OOB_ID_BITS #define HAVE_SCX_SLICE_OOB_DUR_MASK diff --git a/tools/sched_ext/include/scx/enums_abi.autogen.h b/tools/sched_ext/include/scx/enums_abi.autogen.h index 1186daa9cb14..5cf54dcf5ffe 100644 --- a/tools/sched_ext/include/scx/enums_abi.autogen.h +++ b/tools/sched_ext/include/scx/enums_abi.autogen.h @@ -35,6 +35,8 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] { "scx_cap_flags", "SCX_CAPS_REENQ_ON_LOSS", 0x3LLU }, { "scx_cid_consts", "SCX_CID_SHARD_SIZE_DFL", 0x18LLU }, { "scx_cid_consts", "SCX_CID_SHARD_MAX_CPUS", 0x200LLU }, + { "scx_cid_sched_consts", "SCX_CID_SCHED_NONE", 0xfffffffffffffffeLLU }, + { "scx_cid_sched_consts", "SCX_CID_SCHED_SELF", 0xffffffffffffffffLLU }, { "scx_consts", "SCX_DSP_DFL_MAX_BATCH", 0x20LLU }, { "scx_consts", "SCX_DSP_MAX_LOOPS", 0x20LLU }, { "scx_consts", "SCX_WATCHDOG_MAX_TIMEOUT", 0x7530LLU }, @@ -83,10 +85,11 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] { "scx_dsq_id_flags", "SCX_DSQ_LOCAL_ON", 0xc000000000000000LLU }, { "scx_dsq_id_flags", "SCX_DSQ_LOCAL_CPU_MASK", 0xffffffffLLU }, { "scx_dsq_iter_flags", "SCX_DSQ_ITER_REV", 0x10000LLU }, + { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_HAS_REENQ", 0x20000000LLU }, { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_HAS_SLICE", 0x40000000LLU }, { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_HAS_VTIME", 0x80000000LLU }, { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_USER_FLAGS", 0x10000LLU }, - { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_ALL_FLAGS", 0xc0010000LLU }, + { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_ALL_FLAGS", 0xe0010000LLU }, { "scx_dsq_lnode_flags", "SCX_DSQ_LNODE_ITER_CURSOR", 0x1LLU }, { "scx_dsq_lnode_flags", "__SCX_DSQ_LNODE_PRIV_SHIFT", 0x10LLU }, { "scx_enable_state", "SCX_ENABLING", 0x0LLU }, @@ -112,6 +115,7 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] { "scx_enq_flags", "SCX_ENQ_APPLY_SLICE", 0x2000000000000000LLU }, { "scx_enq_flags", "SCX_ENQ_SLICE_DFL", 0x4000000000000000LLU }, { "scx_ent_dsq_flags", "SCX_TASK_DSQ_ON_PRIQ", 0x1LLU }, + { "scx_ent_dsq_flags", "SCX_TASK_DSQ_REENQ", 0x2LLU }, { "scx_ent_flags", "SCX_TASK_QUEUED", 0x1LLU }, { "scx_ent_flags", "SCX_TASK_IN_CUSTODY", 0x2LLU }, { "scx_ent_flags", "SCX_TASK_RESET_RUNNABLE_AT", 0x4LLU }, @@ -169,10 +173,10 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] { "scx_kick_flags", "SCX_KICK_ALL_FLAGS", 0xfLLU }, { "scx_opi", "SCX_OPI_BEGIN", 0x0LLU }, { "scx_opi", "SCX_OPI_NORMAL_BEGIN", 0x0LLU }, - { "scx_opi", "SCX_OPI_NORMAL_END", 0x21LLU }, - { "scx_opi", "SCX_OPI_CPU_HOTPLUG_BEGIN", 0x21LLU }, - { "scx_opi", "SCX_OPI_CPU_HOTPLUG_END", 0x23LLU }, - { "scx_opi", "SCX_OPI_END", 0x23LLU }, + { "scx_opi", "SCX_OPI_NORMAL_END", 0x23LLU }, + { "scx_opi", "SCX_OPI_CPU_HOTPLUG_BEGIN", 0x23LLU }, + { "scx_opi", "SCX_OPI_CPU_HOTPLUG_END", 0x25LLU }, + { "scx_opi", "SCX_OPI_END", 0x25LLU }, { "scx_ops_flags", "SCX_OPS_KEEP_BUILTIN_IDLE", 0x1LLU }, { "scx_ops_flags", "SCX_OPS_ENQ_LAST", 0x2LLU }, { "scx_ops_flags", "SCX_OPS_ENQ_EXITING", 0x4LLU }, @@ -200,6 +204,7 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] { "scx_public_consts", "SCX_SLICE_INF", 0xffffffffffffffffLLU }, { "scx_reenq_flags", "SCX_REENQ_ANY", 0x1LLU }, { "scx_reenq_flags", "SCX_REENQ_CAP_REVOKE", 0x2LLU }, + { "scx_reenq_flags", "SCX_REENQ_MARKED", 0x4LLU }, { "scx_reenq_flags", "__SCX_REENQ_FILTER_MASK", 0xffffLLU }, { "scx_reenq_flags", "__SCX_REENQ_USER_MASK", 0x1LLU }, { "scx_reenq_flags", "SCX_REENQ_TSR_RQ_OPEN", 0x100000000LLU }, @@ -207,15 +212,21 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] { "scx_reenq_flags", "__SCX_REENQ_TSR_MASK", 0xf00000000LLU }, { "scx_rq_flags", "SCX_RQ_ONLINE", 0x1LLU }, { "scx_rq_flags", "SCX_RQ_CAN_STOP_TICK", 0x2LLU }, + { "scx_rq_flags", "SCX_RQ_OPS_ONLINE", 0x4LLU }, { "scx_rq_flags", "SCX_RQ_CLK_VALID", 0x20LLU }, { "scx_rq_flags", "SCX_RQ_BAL_CB_PENDING", 0x40LLU }, { "scx_rq_flags", "SCX_RQ_SUB_IDLE_RENOTIFY", 0x80LLU }, { "scx_rq_flags", "SCX_RQ_ROOT_IDLE_RENOTIFY", 0x100LLU }, { "scx_rq_flags", "SCX_RQ_PROXY_RETRY", 0x200LLU }, { "scx_rq_flags", "SCX_RQ_PROXY_TICK", 0x400LLU }, + { "scx_rq_flags", "SCX_RQ_PROXY_PENDING", 0x800LLU }, + { "scx_rq_flags", "SCX_RQ_PROXY_BLOCKING", 0x1000LLU }, { "scx_rq_flags", "SCX_RQ_IN_WAKEUP", 0x10000LLU }, { "scx_rq_flags", "SCX_RQ_IN_DISPATCH", 0x20000LLU }, { "scx_sched_pcpu_flags", "SCX_SCHED_PCPU_BYPASSING", 0x1LLU }, + { "scx_sched_pcpu_flags", "SCX_SCHED_PCPU_ECAPS_ENABLED", 0x2LLU }, + { "scx_sched_pcpu_flags", "SCX_SCHED_PCPU_ECAPS_REPORT", 0x4LLU }, + { "scx_sched_pcpu_flags", "SCX_SCHED_PCPU_ECAPS_OFFLINE", 0x8LLU }, { "scx_slice_oob_consts", "SCX_SLICE_OOB_DUR_BITS", 0x2bLLU }, { "scx_slice_oob_consts", "SCX_SLICE_OOB_ID_BITS", 0x14LLU }, { "scx_slice_oob_consts", "SCX_SLICE_OOB_DUR_MASK", 0x7ffffffffffLLU }, -- 2.56.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] sched_ext: Regenerate tools autogen enum headers 2026-10-23 0:03 ` [PATCH 1/2] sched_ext: Regenerate tools autogen enum headers Tejun Heo @ 2026-10-23 5:44 ` Andrea Righi 0 siblings, 0 replies; 5+ messages in thread From: Andrea Righi @ 2026-10-23 5:44 UTC (permalink / raw) To: Tejun Heo Cc: sched-ext, David Vernet, Changwoo Min, Emil Tsalapatis, David Dai, linux-kernel Hi Tejun, On Thu, Oct 22, 2026 at 02:03:47PM -1000, Tejun Heo wrote: > Regenerate enum_defs.autogen.h and enums_abi.autogen.h from the current > vmlinux.h. The enums added since the last regeneration lacked presence > markers and ABI values. > > Signed-off-by: Tejun Heo <tj@kernel.org> Not a blocker, but while looking at this I noticed that enums.autogen.h (and the .bpf.h counterpart) still carries a few entries that no longer exist in the kernel: SCX_RQ_BAL_PENDING SCX_RQ_BAL_KEEP SCX_RQ_BYPASSING SCX_RQ_IN_BALANCE SCX_TASK_NR_STATES They're harmless, but I think we can drop them, maybe as a follow-up change. Reviewed-by: Andrea Righi <arighi@nvidia.com> Thanks, -Andrea > --- > .../sched_ext/include/scx/enum_defs.autogen.h | 11 ++++++++++ > .../sched_ext/include/scx/enums_abi.autogen.h | 21 ++++++++++++++----- > 2 files changed, 27 insertions(+), 5 deletions(-) > > diff --git a/tools/sched_ext/include/scx/enum_defs.autogen.h b/tools/sched_ext/include/scx/enum_defs.autogen.h > index 4fa82033b99c..27b45040c88a 100644 > --- a/tools/sched_ext/include/scx/enum_defs.autogen.h > +++ b/tools/sched_ext/include/scx/enum_defs.autogen.h > @@ -23,6 +23,8 @@ > #define HAVE_SCX_CAPS_REENQ_ON_LOSS > #define HAVE_SCX_CID_SHARD_SIZE_DFL > #define HAVE_SCX_CID_SHARD_MAX_CPUS > +#define HAVE_SCX_CID_SCHED_NONE > +#define HAVE_SCX_CID_SCHED_SELF > #define HAVE_SCX_DSP_DFL_MAX_BATCH > #define HAVE_SCX_DSP_MAX_LOOPS > #define HAVE_SCX_WATCHDOG_MAX_TIMEOUT > @@ -71,6 +73,7 @@ > #define HAVE_SCX_DSQ_LOCAL_ON > #define HAVE_SCX_DSQ_LOCAL_CPU_MASK > #define HAVE_SCX_DSQ_ITER_REV > +#define HAVE___SCX_DSQ_ITER_HAS_REENQ > #define HAVE___SCX_DSQ_ITER_HAS_SLICE > #define HAVE___SCX_DSQ_ITER_HAS_VTIME > #define HAVE___SCX_DSQ_ITER_USER_FLAGS > @@ -100,6 +103,7 @@ > #define HAVE_SCX_ENQ_APPLY_SLICE > #define HAVE_SCX_ENQ_SLICE_DFL > #define HAVE_SCX_TASK_DSQ_ON_PRIQ > +#define HAVE_SCX_TASK_DSQ_REENQ > #define HAVE_SCX_TASK_QUEUED > #define HAVE_SCX_TASK_IN_CUSTODY > #define HAVE_SCX_TASK_RESET_RUNNABLE_AT > @@ -188,6 +192,7 @@ > #define HAVE_SCX_SLICE_INF > #define HAVE_SCX_REENQ_ANY > #define HAVE_SCX_REENQ_CAP_REVOKE > +#define HAVE_SCX_REENQ_MARKED > #define HAVE___SCX_REENQ_FILTER_MASK > #define HAVE___SCX_REENQ_USER_MASK > #define HAVE_SCX_REENQ_TSR_RQ_OPEN > @@ -195,15 +200,21 @@ > #define HAVE___SCX_REENQ_TSR_MASK > #define HAVE_SCX_RQ_ONLINE > #define HAVE_SCX_RQ_CAN_STOP_TICK > +#define HAVE_SCX_RQ_OPS_ONLINE > #define HAVE_SCX_RQ_CLK_VALID > #define HAVE_SCX_RQ_BAL_CB_PENDING > #define HAVE_SCX_RQ_SUB_IDLE_RENOTIFY > #define HAVE_SCX_RQ_ROOT_IDLE_RENOTIFY > #define HAVE_SCX_RQ_PROXY_RETRY > #define HAVE_SCX_RQ_PROXY_TICK > +#define HAVE_SCX_RQ_PROXY_PENDING > +#define HAVE_SCX_RQ_PROXY_BLOCKING > #define HAVE_SCX_RQ_IN_WAKEUP > #define HAVE_SCX_RQ_IN_DISPATCH > #define HAVE_SCX_SCHED_PCPU_BYPASSING > +#define HAVE_SCX_SCHED_PCPU_ECAPS_ENABLED > +#define HAVE_SCX_SCHED_PCPU_ECAPS_REPORT > +#define HAVE_SCX_SCHED_PCPU_ECAPS_OFFLINE > #define HAVE_SCX_SLICE_OOB_DUR_BITS > #define HAVE_SCX_SLICE_OOB_ID_BITS > #define HAVE_SCX_SLICE_OOB_DUR_MASK > diff --git a/tools/sched_ext/include/scx/enums_abi.autogen.h b/tools/sched_ext/include/scx/enums_abi.autogen.h > index 1186daa9cb14..5cf54dcf5ffe 100644 > --- a/tools/sched_ext/include/scx/enums_abi.autogen.h > +++ b/tools/sched_ext/include/scx/enums_abi.autogen.h > @@ -35,6 +35,8 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] > { "scx_cap_flags", "SCX_CAPS_REENQ_ON_LOSS", 0x3LLU }, > { "scx_cid_consts", "SCX_CID_SHARD_SIZE_DFL", 0x18LLU }, > { "scx_cid_consts", "SCX_CID_SHARD_MAX_CPUS", 0x200LLU }, > + { "scx_cid_sched_consts", "SCX_CID_SCHED_NONE", 0xfffffffffffffffeLLU }, > + { "scx_cid_sched_consts", "SCX_CID_SCHED_SELF", 0xffffffffffffffffLLU }, > { "scx_consts", "SCX_DSP_DFL_MAX_BATCH", 0x20LLU }, > { "scx_consts", "SCX_DSP_MAX_LOOPS", 0x20LLU }, > { "scx_consts", "SCX_WATCHDOG_MAX_TIMEOUT", 0x7530LLU }, > @@ -83,10 +85,11 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] > { "scx_dsq_id_flags", "SCX_DSQ_LOCAL_ON", 0xc000000000000000LLU }, > { "scx_dsq_id_flags", "SCX_DSQ_LOCAL_CPU_MASK", 0xffffffffLLU }, > { "scx_dsq_iter_flags", "SCX_DSQ_ITER_REV", 0x10000LLU }, > + { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_HAS_REENQ", 0x20000000LLU }, > { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_HAS_SLICE", 0x40000000LLU }, > { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_HAS_VTIME", 0x80000000LLU }, > { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_USER_FLAGS", 0x10000LLU }, > - { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_ALL_FLAGS", 0xc0010000LLU }, > + { "scx_dsq_iter_flags", "__SCX_DSQ_ITER_ALL_FLAGS", 0xe0010000LLU }, > { "scx_dsq_lnode_flags", "SCX_DSQ_LNODE_ITER_CURSOR", 0x1LLU }, > { "scx_dsq_lnode_flags", "__SCX_DSQ_LNODE_PRIV_SHIFT", 0x10LLU }, > { "scx_enable_state", "SCX_ENABLING", 0x0LLU }, > @@ -112,6 +115,7 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] > { "scx_enq_flags", "SCX_ENQ_APPLY_SLICE", 0x2000000000000000LLU }, > { "scx_enq_flags", "SCX_ENQ_SLICE_DFL", 0x4000000000000000LLU }, > { "scx_ent_dsq_flags", "SCX_TASK_DSQ_ON_PRIQ", 0x1LLU }, > + { "scx_ent_dsq_flags", "SCX_TASK_DSQ_REENQ", 0x2LLU }, > { "scx_ent_flags", "SCX_TASK_QUEUED", 0x1LLU }, > { "scx_ent_flags", "SCX_TASK_IN_CUSTODY", 0x2LLU }, > { "scx_ent_flags", "SCX_TASK_RESET_RUNNABLE_AT", 0x4LLU }, > @@ -169,10 +173,10 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] > { "scx_kick_flags", "SCX_KICK_ALL_FLAGS", 0xfLLU }, > { "scx_opi", "SCX_OPI_BEGIN", 0x0LLU }, > { "scx_opi", "SCX_OPI_NORMAL_BEGIN", 0x0LLU }, > - { "scx_opi", "SCX_OPI_NORMAL_END", 0x21LLU }, > - { "scx_opi", "SCX_OPI_CPU_HOTPLUG_BEGIN", 0x21LLU }, > - { "scx_opi", "SCX_OPI_CPU_HOTPLUG_END", 0x23LLU }, > - { "scx_opi", "SCX_OPI_END", 0x23LLU }, > + { "scx_opi", "SCX_OPI_NORMAL_END", 0x23LLU }, > + { "scx_opi", "SCX_OPI_CPU_HOTPLUG_BEGIN", 0x23LLU }, > + { "scx_opi", "SCX_OPI_CPU_HOTPLUG_END", 0x25LLU }, > + { "scx_opi", "SCX_OPI_END", 0x25LLU }, > { "scx_ops_flags", "SCX_OPS_KEEP_BUILTIN_IDLE", 0x1LLU }, > { "scx_ops_flags", "SCX_OPS_ENQ_LAST", 0x2LLU }, > { "scx_ops_flags", "SCX_OPS_ENQ_EXITING", 0x4LLU }, > @@ -200,6 +204,7 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] > { "scx_public_consts", "SCX_SLICE_INF", 0xffffffffffffffffLLU }, > { "scx_reenq_flags", "SCX_REENQ_ANY", 0x1LLU }, > { "scx_reenq_flags", "SCX_REENQ_CAP_REVOKE", 0x2LLU }, > + { "scx_reenq_flags", "SCX_REENQ_MARKED", 0x4LLU }, > { "scx_reenq_flags", "__SCX_REENQ_FILTER_MASK", 0xffffLLU }, > { "scx_reenq_flags", "__SCX_REENQ_USER_MASK", 0x1LLU }, > { "scx_reenq_flags", "SCX_REENQ_TSR_RQ_OPEN", 0x100000000LLU }, > @@ -207,15 +212,21 @@ static const struct __scx_enum_abi_val __scx_enum_abi_vals[] > { "scx_reenq_flags", "__SCX_REENQ_TSR_MASK", 0xf00000000LLU }, > { "scx_rq_flags", "SCX_RQ_ONLINE", 0x1LLU }, > { "scx_rq_flags", "SCX_RQ_CAN_STOP_TICK", 0x2LLU }, > + { "scx_rq_flags", "SCX_RQ_OPS_ONLINE", 0x4LLU }, > { "scx_rq_flags", "SCX_RQ_CLK_VALID", 0x20LLU }, > { "scx_rq_flags", "SCX_RQ_BAL_CB_PENDING", 0x40LLU }, > { "scx_rq_flags", "SCX_RQ_SUB_IDLE_RENOTIFY", 0x80LLU }, > { "scx_rq_flags", "SCX_RQ_ROOT_IDLE_RENOTIFY", 0x100LLU }, > { "scx_rq_flags", "SCX_RQ_PROXY_RETRY", 0x200LLU }, > { "scx_rq_flags", "SCX_RQ_PROXY_TICK", 0x400LLU }, > + { "scx_rq_flags", "SCX_RQ_PROXY_PENDING", 0x800LLU }, > + { "scx_rq_flags", "SCX_RQ_PROXY_BLOCKING", 0x1000LLU }, > { "scx_rq_flags", "SCX_RQ_IN_WAKEUP", 0x10000LLU }, > { "scx_rq_flags", "SCX_RQ_IN_DISPATCH", 0x20000LLU }, > { "scx_sched_pcpu_flags", "SCX_SCHED_PCPU_BYPASSING", 0x1LLU }, > + { "scx_sched_pcpu_flags", "SCX_SCHED_PCPU_ECAPS_ENABLED", 0x2LLU }, > + { "scx_sched_pcpu_flags", "SCX_SCHED_PCPU_ECAPS_REPORT", 0x4LLU }, > + { "scx_sched_pcpu_flags", "SCX_SCHED_PCPU_ECAPS_OFFLINE", 0x8LLU }, > { "scx_slice_oob_consts", "SCX_SLICE_OOB_DUR_BITS", 0x2bLLU }, > { "scx_slice_oob_consts", "SCX_SLICE_OOB_ID_BITS", 0x14LLU }, > { "scx_slice_oob_consts", "SCX_SLICE_OOB_DUR_MASK", 0x7ffffffffffLLU }, > -- > 2.56.0 > ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] sched_ext: scx_qmap: Read SCX_RESCUE_DISABLE through the enum lookup tables 2026-10-23 0:03 [PATCHSET sched_ext/for-7.5] sched_ext: Regenerate the enum tables and drop scx_qmap's last compat lookup Tejun Heo 2026-10-23 0:03 ` [PATCH 1/2] sched_ext: Regenerate tools autogen enum headers Tejun Heo @ 2026-10-23 0:03 ` Tejun Heo 2026-10-23 5:45 ` Andrea Righi 1 sibling, 1 reply; 5+ messages in thread From: Tejun Heo @ 2026-10-23 0:03 UTC (permalink / raw) To: sched-ext Cc: David Vernet, Andrea Righi, Changwoo Min, Emil Tsalapatis, David Dai, linux-kernel, Tejun Heo 788b494fab1c ("sched_ext: scx_qmap: Drop the compat code") left one compat lookup behind: the -B 0 case reads SCX_RESCUE_DISABLE with __COMPAT_ENUM_OR_ZERO(). Userspace can read SCX_RESCUE_DISABLE only from BTF as it is in the kernel-internal enum scx_consts. The enum lookup tables already read their entries from BTF for every scheduler at open time. Add SCX_RESCUE_DISABLE to the lookup tables and read it from the skeleton's rodata. No behavior change. Suggested-by: Andrea Righi <arighi@nvidia.com> Link: https://lore.kernel.org/all/ataTuzRFTRm_pax6@gpd4/ Signed-off-by: Tejun Heo <tj@kernel.org> --- tools/sched_ext/include/scx/enums.autogen.bpf.h | 3 +++ tools/sched_ext/include/scx/enums.autogen.h | 1 + tools/sched_ext/scx_qmap.c | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/sched_ext/include/scx/enums.autogen.bpf.h b/tools/sched_ext/include/scx/enums.autogen.bpf.h index 405a3e6b8f33..d0c37018659e 100644 --- a/tools/sched_ext/include/scx/enums.autogen.bpf.h +++ b/tools/sched_ext/include/scx/enums.autogen.bpf.h @@ -13,6 +13,9 @@ const volatile u64 __SCX_SLICE_DFL __weak; const volatile u64 __SCX_SLICE_INF __weak; #define SCX_SLICE_INF __SCX_SLICE_INF +const volatile u64 __SCX_RESCUE_DISABLE __weak; +#define SCX_RESCUE_DISABLE __SCX_RESCUE_DISABLE + const volatile u64 __SCX_RQ_ONLINE __weak; #define SCX_RQ_ONLINE __SCX_RQ_ONLINE diff --git a/tools/sched_ext/include/scx/enums.autogen.h b/tools/sched_ext/include/scx/enums.autogen.h index 7ec2e5e41cb2..c4a7260f0983 100644 --- a/tools/sched_ext/include/scx/enums.autogen.h +++ b/tools/sched_ext/include/scx/enums.autogen.h @@ -9,6 +9,7 @@ SCX_ENUM_SET(skel, scx_public_consts, SCX_OPS_NAME_LEN); \ SCX_ENUM_SET(skel, scx_public_consts, SCX_SLICE_DFL); \ SCX_ENUM_SET(skel, scx_public_consts, SCX_SLICE_INF); \ + SCX_ENUM_SET(skel, scx_consts, SCX_RESCUE_DISABLE); \ SCX_ENUM_SET(skel, scx_rq_flags, SCX_RQ_ONLINE); \ SCX_ENUM_SET(skel, scx_rq_flags, SCX_RQ_CAN_STOP_TICK); \ SCX_ENUM_SET(skel, scx_rq_flags, SCX_RQ_BAL_PENDING); \ diff --git a/tools/sched_ext/scx_qmap.c b/tools/sched_ext/scx_qmap.c index 9b1cbe187ebd..fe2f206f5c8a 100644 --- a/tools/sched_ext/scx_qmap.c +++ b/tools/sched_ext/scx_qmap.c @@ -427,7 +427,7 @@ int main(int argc, char **argv) u32 ppt = strtoul(optarg, NULL, 0); if (!ppt) - ppt = __COMPAT_ENUM_OR_ZERO("scx_consts", "SCX_RESCUE_DISABLE"); + ppt = skel->rodata->__SCX_RESCUE_DISABLE; skel->struct_ops.qmap_ops->rescue_bandwidth_ppt = ppt; break; } -- 2.56.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] sched_ext: scx_qmap: Read SCX_RESCUE_DISABLE through the enum lookup tables 2026-10-23 0:03 ` [PATCH 2/2] sched_ext: scx_qmap: Read SCX_RESCUE_DISABLE through the enum lookup tables Tejun Heo @ 2026-10-23 5:45 ` Andrea Righi 0 siblings, 0 replies; 5+ messages in thread From: Andrea Righi @ 2026-10-23 5:45 UTC (permalink / raw) To: Tejun Heo Cc: sched-ext, David Vernet, Changwoo Min, Emil Tsalapatis, David Dai, linux-kernel On Thu, Oct 22, 2026 at 02:03:48PM -1000, Tejun Heo wrote: > 788b494fab1c ("sched_ext: scx_qmap: Drop the compat code") left one compat > lookup behind: the -B 0 case reads SCX_RESCUE_DISABLE with > __COMPAT_ENUM_OR_ZERO(). Userspace can read SCX_RESCUE_DISABLE only from BTF > as it is in the kernel-internal enum scx_consts. The enum lookup tables > already read their entries from BTF for every scheduler at open time. > > Add SCX_RESCUE_DISABLE to the lookup tables and read it from the skeleton's > rodata. No behavior change. And, as a reminder, we should add SCX_RESCUE_DISABLE to the scx repo as well. Reviewed-by: Andrea Righi <arighi@nvidia.com> Thanks, -Andrea > > Suggested-by: Andrea Righi <arighi@nvidia.com> > Link: https://lore.kernel.org/all/ataTuzRFTRm_pax6@gpd4/ > Signed-off-by: Tejun Heo <tj@kernel.org> > --- > tools/sched_ext/include/scx/enums.autogen.bpf.h | 3 +++ > tools/sched_ext/include/scx/enums.autogen.h | 1 + > tools/sched_ext/scx_qmap.c | 2 +- > 3 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/tools/sched_ext/include/scx/enums.autogen.bpf.h b/tools/sched_ext/include/scx/enums.autogen.bpf.h > index 405a3e6b8f33..d0c37018659e 100644 > --- a/tools/sched_ext/include/scx/enums.autogen.bpf.h > +++ b/tools/sched_ext/include/scx/enums.autogen.bpf.h > @@ -13,6 +13,9 @@ const volatile u64 __SCX_SLICE_DFL __weak; > const volatile u64 __SCX_SLICE_INF __weak; > #define SCX_SLICE_INF __SCX_SLICE_INF > > +const volatile u64 __SCX_RESCUE_DISABLE __weak; > +#define SCX_RESCUE_DISABLE __SCX_RESCUE_DISABLE > + > const volatile u64 __SCX_RQ_ONLINE __weak; > #define SCX_RQ_ONLINE __SCX_RQ_ONLINE > > diff --git a/tools/sched_ext/include/scx/enums.autogen.h b/tools/sched_ext/include/scx/enums.autogen.h > index 7ec2e5e41cb2..c4a7260f0983 100644 > --- a/tools/sched_ext/include/scx/enums.autogen.h > +++ b/tools/sched_ext/include/scx/enums.autogen.h > @@ -9,6 +9,7 @@ > SCX_ENUM_SET(skel, scx_public_consts, SCX_OPS_NAME_LEN); \ > SCX_ENUM_SET(skel, scx_public_consts, SCX_SLICE_DFL); \ > SCX_ENUM_SET(skel, scx_public_consts, SCX_SLICE_INF); \ > + SCX_ENUM_SET(skel, scx_consts, SCX_RESCUE_DISABLE); \ > SCX_ENUM_SET(skel, scx_rq_flags, SCX_RQ_ONLINE); \ > SCX_ENUM_SET(skel, scx_rq_flags, SCX_RQ_CAN_STOP_TICK); \ > SCX_ENUM_SET(skel, scx_rq_flags, SCX_RQ_BAL_PENDING); \ > diff --git a/tools/sched_ext/scx_qmap.c b/tools/sched_ext/scx_qmap.c > index 9b1cbe187ebd..fe2f206f5c8a 100644 > --- a/tools/sched_ext/scx_qmap.c > +++ b/tools/sched_ext/scx_qmap.c > @@ -427,7 +427,7 @@ int main(int argc, char **argv) > u32 ppt = strtoul(optarg, NULL, 0); > > if (!ppt) > - ppt = __COMPAT_ENUM_OR_ZERO("scx_consts", "SCX_RESCUE_DISABLE"); > + ppt = skel->rodata->__SCX_RESCUE_DISABLE; > skel->struct_ops.qmap_ops->rescue_bandwidth_ppt = ppt; > break; > } > -- > 2.56.0 > > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-10-23 5:46 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2026-10-23 0:03 [PATCHSET sched_ext/for-7.5] sched_ext: Regenerate the enum tables and drop scx_qmap's last compat lookup Tejun Heo 2026-10-23 0:03 ` [PATCH 1/2] sched_ext: Regenerate tools autogen enum headers Tejun Heo 2026-10-23 5:44 ` Andrea Righi 2026-10-23 0:03 ` [PATCH 2/2] sched_ext: scx_qmap: Read SCX_RESCUE_DISABLE through the enum lookup tables Tejun Heo 2026-10-23 5:45 ` Andrea Righi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®