mirror of
https://github.com/torvalds/linux.git
synced 2025-04-12 06:49:52 +00:00
sched_ext: idle: Introduce scx_bpf_nr_node_ids()
Similarly to scx_bpf_nr_cpu_ids(), introduce a new kfunc scx_bpf_nr_node_ids() to expose the maximum number of NUMA nodes in the system. BPF schedulers can use this information together with the new node-aware kfuncs, for example to create per-node DSQs, validate node IDs, etc. Signed-off-by: Andrea Righi <arighi@nvidia.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
01059219b0
commit
0e9b4c10e8
@ -7113,6 +7113,16 @@ __bpf_kfunc void scx_bpf_cpuperf_set(s32 cpu, u32 perf)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* scx_bpf_nr_node_ids - Return the number of possible node IDs
|
||||
*
|
||||
* All valid node IDs in the system are smaller than the returned value.
|
||||
*/
|
||||
__bpf_kfunc u32 scx_bpf_nr_node_ids(void)
|
||||
{
|
||||
return nr_node_ids;
|
||||
}
|
||||
|
||||
/**
|
||||
* scx_bpf_nr_cpu_ids - Return the number of possible CPU IDs
|
||||
*
|
||||
@ -7325,6 +7335,7 @@ BTF_ID_FLAGS(func, scx_bpf_dump_bstr, KF_TRUSTED_ARGS)
|
||||
BTF_ID_FLAGS(func, scx_bpf_cpuperf_cap)
|
||||
BTF_ID_FLAGS(func, scx_bpf_cpuperf_cur)
|
||||
BTF_ID_FLAGS(func, scx_bpf_cpuperf_set)
|
||||
BTF_ID_FLAGS(func, scx_bpf_nr_node_ids)
|
||||
BTF_ID_FLAGS(func, scx_bpf_nr_cpu_ids)
|
||||
BTF_ID_FLAGS(func, scx_bpf_get_possible_cpumask, KF_ACQUIRE)
|
||||
BTF_ID_FLAGS(func, scx_bpf_get_online_cpumask, KF_ACQUIRE)
|
||||
|
@ -70,6 +70,7 @@ void scx_bpf_dump_bstr(char *fmt, unsigned long long *data, u32 data_len) __ksym
|
||||
u32 scx_bpf_cpuperf_cap(s32 cpu) __ksym __weak;
|
||||
u32 scx_bpf_cpuperf_cur(s32 cpu) __ksym __weak;
|
||||
void scx_bpf_cpuperf_set(s32 cpu, u32 perf) __ksym __weak;
|
||||
u32 scx_bpf_nr_node_ids(void) __ksym __weak;
|
||||
u32 scx_bpf_nr_cpu_ids(void) __ksym __weak;
|
||||
int scx_bpf_cpu_node(s32 cpu) __ksym __weak;
|
||||
const struct cpumask *scx_bpf_get_possible_cpumask(void) __ksym __weak;
|
||||
|
@ -189,6 +189,10 @@ static inline bool __COMPAT_is_enq_cpu_selected(u64 enq_flags)
|
||||
*
|
||||
* Preserve the following __COMPAT_scx_*_node macros until v6.17.
|
||||
*/
|
||||
#define __COMPAT_scx_bpf_nr_node_ids() \
|
||||
(bpf_ksym_exists(scx_bpf_nr_node_ids) ? \
|
||||
scx_bpf_nr_node_ids() : 1U)
|
||||
|
||||
#define __COMPAT_scx_bpf_cpu_node(cpu) \
|
||||
(bpf_ksym_exists(scx_bpf_cpu_node) ? \
|
||||
scx_bpf_cpu_node(cpu) : 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user