* [PATCH 0/3] sched_ext cleanup and toolchain compatibility fixes
@ 2026-03-06 7:31 Zhao Mengmeng
2026-03-06 7:31 ` [PATCH 1/3] sched_ext: remove SCX_OPS_HAS_CGROUP_WEIGHT Zhao Mengmeng
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Zhao Mengmeng @ 2026-03-06 7:31 UTC (permalink / raw)
To: tj, void, arighi, changwoo, nathan, nick.desaulniers+lkml, morbo,
justinstitt, emil
Cc: sched-ext, linux-kernel, bpf, llvm, zhaomengmeng
From: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
This series contains:
1. remove SCX_OPS_HAS_CGROUP_WEIGHT, which was documented to
be deleted on 6.18.
2. Update scx enum autogens by using scripts in scx repo.
3. Make scheduler scx_sdt runnable on older clang version. clang 17 and
18 tested with no verifier rejections.
Zhao Mengmeng (3):
sched_ext: remove SCX_OPS_HAS_CGROUP_WEIGHT
tools/sched_ext: Update scx enum autogens
tools/sched_ext: scx_sdt: Fix BPF verifier rejection on older LLVMs
kernel/sched/ext.c | 3 ---
kernel/sched/ext_internal.h | 8 +-----
.../sched_ext/include/scx/enum_defs.autogen.h | 26 ++++++++++++++-----
.../sched_ext/include/scx/enums.autogen.bpf.h | 4 +--
tools/sched_ext/include/scx/enums.autogen.h | 3 +--
tools/sched_ext/scx_flatcg.bpf.c | 2 +-
tools/sched_ext/scx_sdt.bpf.c | 20 +++++++++++++-
7 files changed, 42 insertions(+), 24 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/3] sched_ext: remove SCX_OPS_HAS_CGROUP_WEIGHT
2026-03-06 7:31 [PATCH 0/3] sched_ext cleanup and toolchain compatibility fixes Zhao Mengmeng
@ 2026-03-06 7:31 ` Zhao Mengmeng
2026-03-06 7:31 ` [PATCH 2/3] tools/sched_ext: Update scx enum autogens Zhao Mengmeng
2026-03-06 7:31 ` [PATCH 3/3] tools/sched_ext: scx_sdt: Fix BPF verifier rejection on older LLVMs Zhao Mengmeng
2 siblings, 0 replies; 6+ messages in thread
From: Zhao Mengmeng @ 2026-03-06 7:31 UTC (permalink / raw)
To: tj, void, arighi, changwoo, nathan, nick.desaulniers+lkml, morbo,
justinstitt, emil
Cc: sched-ext, linux-kernel, bpf, llvm, zhaomengmeng
From: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
While running scx_flatcg, dmesg prints "SCX_OPS_HAS_CGROUP_WEIGHT is
deprecated and a noop", in code, SCX_OPS_HAS_CGROUP_WEIGHT has been
marked as DEPRECATED, and will be removed on 6.18. Now it's time to do it.
Signed-off-by: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
---
kernel/sched/ext.c | 3 ---
kernel/sched/ext_internal.h | 8 +-------
tools/sched_ext/scx_flatcg.bpf.c | 2 +-
3 files changed, 2 insertions(+), 11 deletions(-)
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index b9247c9f0430..fd83af17d46d 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -5062,9 +5062,6 @@ static int validate_ops(struct scx_sched *sch, const struct sched_ext_ops *ops)
return -EINVAL;
}
- if (ops->flags & SCX_OPS_HAS_CGROUP_WEIGHT)
- pr_warn("SCX_OPS_HAS_CGROUP_WEIGHT is deprecated and a noop\n");
-
if (ops->cpu_acquire || ops->cpu_release)
pr_warn("ops->cpu_acquire/release() are deprecated, use sched_switch TP instead\n");
diff --git a/kernel/sched/ext_internal.h b/kernel/sched/ext_internal.h
index bd26811fea99..3c86c53e1975 100644
--- a/kernel/sched/ext_internal.h
+++ b/kernel/sched/ext_internal.h
@@ -174,19 +174,13 @@ enum scx_ops_flags {
*/
SCX_OPS_BUILTIN_IDLE_PER_NODE = 1LLU << 6,
- /*
- * CPU cgroup support flags
- */
- SCX_OPS_HAS_CGROUP_WEIGHT = 1LLU << 16, /* DEPRECATED, will be removed on 6.18 */
-
SCX_OPS_ALL_FLAGS = SCX_OPS_KEEP_BUILTIN_IDLE |
SCX_OPS_ENQ_LAST |
SCX_OPS_ENQ_EXITING |
SCX_OPS_ENQ_MIGRATION_DISABLED |
SCX_OPS_ALLOW_QUEUED_WAKEUP |
SCX_OPS_SWITCH_PARTIAL |
- SCX_OPS_BUILTIN_IDLE_PER_NODE |
- SCX_OPS_HAS_CGROUP_WEIGHT,
+ SCX_OPS_BUILTIN_IDLE_PER_NODE,
/* high 8 bits are internal, don't include in SCX_OPS_ALL_FLAGS */
__SCX_OPS_INTERNAL_MASK = 0xffLLU << 56,
diff --git a/tools/sched_ext/scx_flatcg.bpf.c b/tools/sched_ext/scx_flatcg.bpf.c
index 0e785cff0f24..a8a9234bb41e 100644
--- a/tools/sched_ext/scx_flatcg.bpf.c
+++ b/tools/sched_ext/scx_flatcg.bpf.c
@@ -960,5 +960,5 @@ SCX_OPS_DEFINE(flatcg_ops,
.cgroup_move = (void *)fcg_cgroup_move,
.init = (void *)fcg_init,
.exit = (void *)fcg_exit,
- .flags = SCX_OPS_HAS_CGROUP_WEIGHT | SCX_OPS_ENQ_EXITING,
+ .flags = SCX_OPS_ENQ_EXITING,
.name = "flatcg");
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] tools/sched_ext: Update scx enum autogens
2026-03-06 7:31 [PATCH 0/3] sched_ext cleanup and toolchain compatibility fixes Zhao Mengmeng
2026-03-06 7:31 ` [PATCH 1/3] sched_ext: remove SCX_OPS_HAS_CGROUP_WEIGHT Zhao Mengmeng
@ 2026-03-06 7:31 ` Zhao Mengmeng
2026-03-06 14:40 ` Andrea Righi
2026-03-06 7:31 ` [PATCH 3/3] tools/sched_ext: scx_sdt: Fix BPF verifier rejection on older LLVMs Zhao Mengmeng
2 siblings, 1 reply; 6+ messages in thread
From: Zhao Mengmeng @ 2026-03-06 7:31 UTC (permalink / raw)
To: tj, void, arighi, changwoo, nathan, nick.desaulniers+lkml, morbo,
justinstitt, emil
Cc: sched-ext, linux-kernel, bpf, llvm, zhaomengmeng
From: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
Use scripts in scx repo to update these autogen files:
1. enum_defs.autogen.h: Remove SCX_OPS_HAS_CGROUP_WEIGHT, add other new
enums
2. enums.autogen.bpf.h and enums.autogen.h: Remove SCX_RQ_BAL_PENDING and
Use python scripts generation instead of manual edit style.
Signed-off-by: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
---
.../sched_ext/include/scx/enum_defs.autogen.h | 26 ++++++++++++++-----
.../sched_ext/include/scx/enums.autogen.bpf.h | 4 +--
tools/sched_ext/include/scx/enums.autogen.h | 3 +--
3 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/tools/sched_ext/include/scx/enum_defs.autogen.h b/tools/sched_ext/include/scx/enum_defs.autogen.h
index dcc945304760..0f4ee052c0ef 100644
--- a/tools/sched_ext/include/scx/enum_defs.autogen.h
+++ b/tools/sched_ext/include/scx/enum_defs.autogen.h
@@ -14,7 +14,11 @@
#define HAVE_SCX_EXIT_MSG_LEN
#define HAVE_SCX_EXIT_DUMP_DFL_LEN
#define HAVE_SCX_CPUPERF_ONE
-#define HAVE_SCX_OPS_TASK_ITER_BATCH
+#define HAVE_SCX_TASK_ITER_BATCH
+#define HAVE_SCX_BYPASS_LB_DFL_INTV_US
+#define HAVE_SCX_BYPASS_LB_DONOR_PCT
+#define HAVE_SCX_BYPASS_LB_MIN_DELTA_DIV
+#define HAVE_SCX_BYPASS_LB_BATCH
#define HAVE_SCX_CPU_PREEMPT_RT
#define HAVE_SCX_CPU_PREEMPT_DL
#define HAVE_SCX_CPU_PREEMPT_STOP
@@ -27,6 +31,7 @@
#define HAVE_SCX_DSQ_INVALID
#define HAVE_SCX_DSQ_GLOBAL
#define HAVE_SCX_DSQ_LOCAL
+#define HAVE_SCX_DSQ_BYPASS
#define HAVE_SCX_DSQ_LOCAL_ON
#define HAVE_SCX_DSQ_LOCAL_CPU_MASK
#define HAVE_SCX_DSQ_ITER_REV
@@ -36,6 +41,10 @@
#define HAVE___SCX_DSQ_ITER_ALL_FLAGS
#define HAVE_SCX_DSQ_LNODE_ITER_CURSOR
#define HAVE___SCX_DSQ_LNODE_PRIV_SHIFT
+#define HAVE_SCX_ENABLING
+#define HAVE_SCX_ENABLED
+#define HAVE_SCX_DISABLING
+#define HAVE_SCX_DISABLED
#define HAVE_SCX_ENQ_WAKEUP
#define HAVE_SCX_ENQ_HEAD
#define HAVE_SCX_ENQ_CPU_SELECTED
@@ -45,8 +54,10 @@
#define HAVE___SCX_ENQ_INTERNAL_MASK
#define HAVE_SCX_ENQ_CLEAR_OPSS
#define HAVE_SCX_ENQ_DSQ_PRIQ
+#define HAVE_SCX_ENQ_NESTED
#define HAVE_SCX_TASK_DSQ_ON_PRIQ
#define HAVE_SCX_TASK_QUEUED
+#define HAVE_SCX_TASK_IN_CUSTODY
#define HAVE_SCX_TASK_RESET_RUNNABLE_AT
#define HAVE_SCX_TASK_DEQD_FOR_SLEEP
#define HAVE_SCX_TASK_STATE_SHIFT
@@ -55,6 +66,7 @@
#define HAVE_SCX_TASK_CURSOR
#define HAVE_SCX_ECODE_RSN_HOTPLUG
#define HAVE_SCX_ECODE_ACT_RESTART
+#define HAVE_SCX_EFLAG_INITIALIZED
#define HAVE_SCX_EXIT_NONE
#define HAVE_SCX_EXIT_DONE
#define HAVE_SCX_EXIT_UNREG
@@ -81,33 +93,33 @@
#define HAVE_SCX_OPI_CPU_HOTPLUG_BEGIN
#define HAVE_SCX_OPI_CPU_HOTPLUG_END
#define HAVE_SCX_OPI_END
-#define HAVE_SCX_OPS_ENABLING
-#define HAVE_SCX_OPS_ENABLED
-#define HAVE_SCX_OPS_DISABLING
-#define HAVE_SCX_OPS_DISABLED
#define HAVE_SCX_OPS_KEEP_BUILTIN_IDLE
#define HAVE_SCX_OPS_ENQ_LAST
#define HAVE_SCX_OPS_ENQ_EXITING
#define HAVE_SCX_OPS_SWITCH_PARTIAL
#define HAVE_SCX_OPS_ENQ_MIGRATION_DISABLED
#define HAVE_SCX_OPS_ALLOW_QUEUED_WAKEUP
-#define HAVE_SCX_OPS_HAS_CGROUP_WEIGHT
+#define HAVE_SCX_OPS_BUILTIN_IDLE_PER_NODE
#define HAVE_SCX_OPS_ALL_FLAGS
+#define HAVE___SCX_OPS_INTERNAL_MASK
+#define HAVE_SCX_OPS_HAS_CPU_PREEMPT
#define HAVE_SCX_OPSS_NONE
#define HAVE_SCX_OPSS_QUEUEING
#define HAVE_SCX_OPSS_QUEUED
#define HAVE_SCX_OPSS_DISPATCHING
#define HAVE_SCX_OPSS_QSEQ_SHIFT
#define HAVE_SCX_PICK_IDLE_CORE
+#define HAVE_SCX_PICK_IDLE_IN_NODE
#define HAVE_SCX_OPS_NAME_LEN
#define HAVE_SCX_SLICE_DFL
+#define HAVE_SCX_SLICE_BYPASS
#define HAVE_SCX_SLICE_INF
#define HAVE_SCX_RQ_ONLINE
#define HAVE_SCX_RQ_CAN_STOP_TICK
-#define HAVE_SCX_RQ_BAL_PENDING
#define HAVE_SCX_RQ_BAL_KEEP
#define HAVE_SCX_RQ_BYPASSING
#define HAVE_SCX_RQ_CLK_VALID
+#define HAVE_SCX_RQ_BAL_CB_PENDING
#define HAVE_SCX_RQ_IN_WAKEUP
#define HAVE_SCX_RQ_IN_BALANCE
#define HAVE_SCX_TASK_NONE
diff --git a/tools/sched_ext/include/scx/enums.autogen.bpf.h b/tools/sched_ext/include/scx/enums.autogen.bpf.h
index 5da50f937684..2b9540f0b3d5 100644
--- a/tools/sched_ext/include/scx/enums.autogen.bpf.h
+++ b/tools/sched_ext/include/scx/enums.autogen.bpf.h
@@ -19,9 +19,6 @@ const volatile u64 __SCX_RQ_ONLINE __weak;
const volatile u64 __SCX_RQ_CAN_STOP_TICK __weak;
#define SCX_RQ_CAN_STOP_TICK __SCX_RQ_CAN_STOP_TICK
-const volatile u64 __SCX_RQ_BAL_PENDING __weak;
-#define SCX_RQ_BAL_PENDING __SCX_RQ_BAL_PENDING
-
const volatile u64 __SCX_RQ_BAL_KEEP __weak;
#define SCX_RQ_BAL_KEEP __SCX_RQ_BAL_KEEP
@@ -129,3 +126,4 @@ const volatile u64 __SCX_ENQ_DSQ_PRIQ __weak;
const volatile u64 __SCX_DEQ_SCHED_CHANGE __weak;
#define SCX_DEQ_SCHED_CHANGE __SCX_DEQ_SCHED_CHANGE
+
diff --git a/tools/sched_ext/include/scx/enums.autogen.h b/tools/sched_ext/include/scx/enums.autogen.h
index fc9a7a4d9dea..c615cb323f8b 100644
--- a/tools/sched_ext/include/scx/enums.autogen.h
+++ b/tools/sched_ext/include/scx/enums.autogen.h
@@ -10,7 +10,6 @@
SCX_ENUM_SET(skel, scx_public_consts, SCX_SLICE_INF); \
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); \
SCX_ENUM_SET(skel, scx_rq_flags, SCX_RQ_BAL_KEEP); \
SCX_ENUM_SET(skel, scx_rq_flags, SCX_RQ_BYPASSING); \
SCX_ENUM_SET(skel, scx_rq_flags, SCX_RQ_CLK_VALID); \
@@ -46,5 +45,5 @@
SCX_ENUM_SET(skel, scx_enq_flags, SCX_ENQ_LAST); \
SCX_ENUM_SET(skel, scx_enq_flags, SCX_ENQ_CLEAR_OPSS); \
SCX_ENUM_SET(skel, scx_enq_flags, SCX_ENQ_DSQ_PRIQ); \
- SCX_ENUM_SET(skel, scx_deq_flags, SCX_DEQ_SCHED_CHANGE); \
+ SCX_ENUM_SET(skel, scx_enq_flags, SCX_DEQ_SCHED_CHANGE); \
} while (0)
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] tools/sched_ext: scx_sdt: Fix BPF verifier rejection on older LLVMs
2026-03-06 7:31 [PATCH 0/3] sched_ext cleanup and toolchain compatibility fixes Zhao Mengmeng
2026-03-06 7:31 ` [PATCH 1/3] sched_ext: remove SCX_OPS_HAS_CGROUP_WEIGHT Zhao Mengmeng
2026-03-06 7:31 ` [PATCH 2/3] tools/sched_ext: Update scx enum autogens Zhao Mengmeng
@ 2026-03-06 7:31 ` Zhao Mengmeng
2 siblings, 0 replies; 6+ messages in thread
From: Zhao Mengmeng @ 2026-03-06 7:31 UTC (permalink / raw)
To: tj, void, arighi, changwoo, nathan, nick.desaulniers+lkml, morbo,
justinstitt, emil
Cc: sched-ext, linux-kernel, bpf, llvm, zhaomengmeng
From: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
Under Clang 17/18, when running scx_sdt scheduler, it fails with:
libbpf: prog 'sdt_init_task': BPF program load failed: -EACCES
libbpf: prog 'sdt_init_task': -- BEGIN PROG LOAD LOG --
...
; desc = desc_find_empty(alloc->root, &idx); @ scx_sdt.bpf.c:479
43: (79) r8 = *(u64 *)(r6 +32) ; frame1: R6=map_value(map=scx_sdt.bss,ks=4,vs=200,off=120) R8=scalar()
; for (level = zero; level < SDT_TASK_LEVELS && can_loop; level++) { @ scx_sdt.bpf.c:407
44: (e5) may_goto pc+51
; idx |= pos; @ scx_sdt.bpf.c:418
96: (bf) r7 = r2 ; frame1: R2=0 R7=0
97: (bf) r1 = r10 ; frame1: R1=fp0 R10=fp0
; @ scx_sdt.bpf.c:0
98: (07) r1 += -56 ; frame1: R1=fp-56
; bpf_for(u, 0, SDT_TASK_LEVELS) { @ scx_sdt.bpf.c:447
99: (b4) w2 = 0 ; frame1: R2=0
100: (b4) w3 = 3 ; frame1: R3=3
101: (85) call bpf_iter_num_new#82234 ; frame1: R0=scalar() fp-56=iter_num(ref_id=2,state=active,depth=0)
102: (18) r9 = 0x1ffffffffffffff8 ; frame1: R9=0x1ffffffffffffff8
104: (bf) r1 = r10 ; frame1: R1=fp0 R10=fp0
; @ scx_sdt.bpf.c:0
105: (07) r1 += -56 ; frame1: R1=fp-56
; bpf_for(u, 0, SDT_TASK_LEVELS) { @ scx_sdt.bpf.c:447
106: (85) call bpf_iter_num_next#82235 ; frame1: R0=0 fp-56=iter_num(ref_id=2,state=drained,depth=0)
107: (15) if r0 == 0x0 goto pc+29 ; frame1: R0=0
; if (tmp->nr_free > 0) @ scx_sdt.bpf.c:456
137: (bf) r1 = r10 ; frame1: R1=fp0 R10=fp0
; bpf_for(u, 0, SDT_TASK_LEVELS) { @ scx_sdt.bpf.c:447
138: (07) r1 += -56 ; frame1: R1=fp-56
139: (85) call bpf_iter_num_destroy#82232 ; frame1:
140: (b7) r9 = 0 ; frame1: R9=0
; if (unlikely(desc == NULL)) { @ scx_sdt.bpf.c:480
141: (15) if r8 == 0x0 goto pc+15 ; frame1: R8=scalar(umin=1)
; chunk = desc->chunk; @ scx_sdt.bpf.c:485
142: (79) r4 = *(u64 *)(r8 +72)
R8 invalid mem access 'scalar'
The reason is these older compilers lacks native support for
__BPF_FEATURE_ADDR_SPACE_CAST, __arena macro is defined as empty.
Fix it by adding cast_kern when dereferencing variables with __arena tag.
Signed-off-by: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
---
tools/sched_ext/scx_sdt.bpf.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/tools/sched_ext/scx_sdt.bpf.c b/tools/sched_ext/scx_sdt.bpf.c
index 31b09958e8d5..caacc55bd7a5 100644
--- a/tools/sched_ext/scx_sdt.bpf.c
+++ b/tools/sched_ext/scx_sdt.bpf.c
@@ -148,6 +148,7 @@ static sdt_desc_t *scx_alloc_chunk(void)
out = desc;
+ cast_kern(desc);
desc->nr_free = SDT_TASK_ENTS_PER_CHUNK;
desc->chunk = chunk;
@@ -244,6 +245,7 @@ int mark_nodes_avail(sdt_desc_t *lv_desc[SDT_TASK_LEVELS], __u64 lv_pos[SDT_TASK
/* Only propagate upwards if we are the parent's only free chunk. */
desc = lv_desc[level];
+ cast_kern(desc);
ret = set_idx_state(desc, lv_pos[level], false);
if (unlikely(ret != 0))
return ret;
@@ -298,20 +300,26 @@ int scx_alloc_free_idx(struct scx_allocator *alloc, __u64 idx)
if (level == SDT_TASK_LEVELS - 1)
break;
+ cast_kern(desc);
chunk = desc->chunk;
+ cast_kern(chunk);
desc_children = (sdt_desc_t * __arena *)chunk->descs;
+ cast_kern(desc_children);
desc = desc_children[pos];
if (unlikely(!desc))
return -EINVAL;
}
+ cast_kern(desc);
chunk = desc->chunk;
pos = idx & mask;
+ cast_kern(chunk);
data = chunk->data[pos];
if (likely(data)) {
+ cast_kern(data);
*data = (struct sdt_data) {
.tid.genn = data->tid.genn + 1,
};
@@ -378,6 +386,7 @@ __u64 chunk_find_empty(sdt_desc_t __arg_arena *desc)
__u64 freeslots;
__u64 i;
+ cast_kern(desc);
for (i = 0; i < SDT_TASK_CHUNK_BITMAP_U64S; i++) {
freeslots = ~desc->allocated[i];
if (freeslots == (__u64)0)
@@ -426,9 +435,12 @@ static sdt_desc_t * desc_find_empty(sdt_desc_t *desc, __u64 *idxp)
break;
/* Allocate an internal node if necessary. */
+ cast_kern(desc);
chunk = desc->chunk;
+ cast_kern(chunk);
desc_children = (sdt_desc_t * __arena *)chunk->descs;
+ cast_kern(desc_children);
desc = desc_children[pos];
if (!desc) {
desc = scx_alloc_chunk();
@@ -448,6 +460,7 @@ static sdt_desc_t * desc_find_empty(sdt_desc_t *desc, __u64 *idxp)
level = SDT_TASK_LEVELS - 1 - u;
tmp = lv_desc[level];
+ cast_kern(tmp);
ret = set_idx_state(tmp, lv_pos[level], true);
if (ret != 0)
break;
@@ -482,10 +495,12 @@ void __arena *scx_alloc(struct scx_allocator *alloc)
return NULL;
}
+ cast_kern(desc);
chunk = desc->chunk;
/* Populate the leaf node if necessary. */
pos = idx & (SDT_TASK_ENTS_PER_CHUNK - 1);
+ cast_kern(chunk);
data = chunk->data[pos];
if (!data) {
data = scx_alloc_from_pool(&alloc->pool);
@@ -503,10 +518,12 @@ void __arena *scx_alloc(struct scx_allocator *alloc)
alloc_stats.alloc_ops += 1;
alloc_stats.active_allocs += 1;
+ cast_kern(data);
data->tid.idx = idx;
bpf_spin_unlock(&alloc_lock);
+ cast_user(data);
return data;
}
@@ -544,9 +561,10 @@ void __arena *scx_task_alloc(struct task_struct *p)
if (unlikely(!data))
return NULL;
+ mval->data = data;
+ cast_kern(data);
mval->tid = data->tid;
mval->tptr = (__u64) p;
- mval->data = data;
return (void __arena *)data->payload;
}
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/3] tools/sched_ext: Update scx enum autogens
2026-03-06 7:31 ` [PATCH 2/3] tools/sched_ext: Update scx enum autogens Zhao Mengmeng
@ 2026-03-06 14:40 ` Andrea Righi
2026-03-07 1:54 ` Zhao mengmeng
0 siblings, 1 reply; 6+ messages in thread
From: Andrea Righi @ 2026-03-06 14:40 UTC (permalink / raw)
To: Zhao Mengmeng
Cc: tj, void, changwoo, nathan, nick.desaulniers+lkml, morbo,
justinstitt, emil, sched-ext, linux-kernel, bpf, llvm,
zhaomengmeng
On Fri, Mar 06, 2026 at 03:31:09PM +0800, Zhao Mengmeng wrote:
> From: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
...
> @@ -46,5 +45,5 @@
> SCX_ENUM_SET(skel, scx_enq_flags, SCX_ENQ_LAST); \
> SCX_ENUM_SET(skel, scx_enq_flags, SCX_ENQ_CLEAR_OPSS); \
> SCX_ENUM_SET(skel, scx_enq_flags, SCX_ENQ_DSQ_PRIQ); \
> - SCX_ENUM_SET(skel, scx_deq_flags, SCX_DEQ_SCHED_CHANGE); \
> + SCX_ENUM_SET(skel, scx_enq_flags, SCX_DEQ_SCHED_CHANGE); \
This is wrong, SCX_DEQ_SCHED_CHANGE is moved from scx_deq_flags to
scx_enq_flags.
-Andrea
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/3] tools/sched_ext: Update scx enum autogens
2026-03-06 14:40 ` Andrea Righi
@ 2026-03-07 1:54 ` Zhao mengmeng
0 siblings, 0 replies; 6+ messages in thread
From: Zhao mengmeng @ 2026-03-07 1:54 UTC (permalink / raw)
To: Andrea Righi
Cc: tj, void, changwoo, nathan, nick.desaulniers+lkml, morbo,
justinstitt, emil, sched-ext, linux-kernel, bpf, llvm,
zhaomengmeng
On March 6, 2026 10:40:18 PM GMT+08:00, Andrea Righi <arighi@nvidia.com> wrote:
>On Fri, Mar 06, 2026 at 03:31:09PM +0800, Zhao Mengmeng wrote:
>> From: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
>...
>> @@ -46,5 +45,5 @@
>> SCX_ENUM_SET(skel, scx_enq_flags, SCX_ENQ_LAST); \
>> SCX_ENUM_SET(skel, scx_enq_flags, SCX_ENQ_CLEAR_OPSS); \
>> SCX_ENUM_SET(skel, scx_enq_flags, SCX_ENQ_DSQ_PRIQ); \
>> - SCX_ENUM_SET(skel, scx_deq_flags, SCX_DEQ_SCHED_CHANGE); \
>> + SCX_ENUM_SET(skel, scx_enq_flags, SCX_DEQ_SCHED_CHANGE); \
>
>This is wrong, SCX_DEQ_SCHED_CHANGE is moved from scx_deq_flags to
>scx_enq_flags.
>
>-Andrea
Thanks a lot. I will send a v2 fix.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-03-07 1:55 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-06 7:31 [PATCH 0/3] sched_ext cleanup and toolchain compatibility fixes Zhao Mengmeng
2026-03-06 7:31 ` [PATCH 1/3] sched_ext: remove SCX_OPS_HAS_CGROUP_WEIGHT Zhao Mengmeng
2026-03-06 7:31 ` [PATCH 2/3] tools/sched_ext: Update scx enum autogens Zhao Mengmeng
2026-03-06 14:40 ` Andrea Righi
2026-03-07 1:54 ` Zhao mengmeng
2026-03-06 7:31 ` [PATCH 3/3] tools/sched_ext: scx_sdt: Fix BPF verifier rejection on older LLVMs Zhao Mengmeng
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.