Re: [PATCH 16/17] tools/sched_ext: scx_qmap: Port to cid-form struct_ops
From: Changwoo Min
Date: Wed Apr 29 2026 - 08:50:34 EST
On 4/29/26 5:35 AM, Tejun Heo wrote:
/* @@ -1083,6 +1082,18 @@s32·BPF_STRUCT_OPS_SLEEPABLE(qmap_init) › › return·-EINVAL; › } +› /*+› ·*·cid- override·test·hook.·Must·run·before·anything·that·reads·the+› ·*·cid·space·(scx_bpf_nr_cids,·cmask_init,·etc.).·On·invalid·input,+› ·*·the·kfunc·calls·scx_error()·which·aborts·the·scheduler.+› ·*/+› if·(cid_override_mode)·{+› › scx_bpf_cid_override((const·s32·*)cid_override_cpu_to_cid,+› › › › ·····cid_override_nr_cpus·*·sizeof(s32),+› › › › ·····(const·s32·*)cid_override_shard_start,+› › › › ·····cid_override_nr_shards·*·sizeof(s32));+› }+
This cause the following compilation error due to argument mismatch:
scx_qmap.bpf.c:1093:10: error: too many arguments to function call, expected 2, have 4
1091 | scx_bpf_cid_override((const s32 *)cid_override_cpu_to_cid,
| ~~~~~~~~~~~~~~~~~~~~
1092 | cid_override_nr_cpus * sizeof(s32),
1093 | (const s32 *)cid_override_shard_start,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1094 | cid_override_nr_shards * sizeof(s32));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/changwoo/ws-multics69/dev/linux-tj/tools/sched_ext/include/scx/compat.bpf.h:130:20: note:
'scx_bpf_cid_override' declared here
130 | static inline void scx_bpf_cid_override(const s32 *cpu_to_cid, u32 cpu_to_cid__sz)
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The correct one should be as follows:
> scx_bpf_cid_override((const·s32·*)cid_override_cpu_to_cid,+› › › ›
> ·····cid_override_nr_cpus * sizeof(s32));
Reviewed-by: Changwoo Min <changwoo@xxxxxxxxxx>