diff options
author | Andrea Righi <arighi@nvidia.com> | 2025-01-25 18:14:12 +0100 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2025-01-27 08:59:55 -1000 |
commit | 5f52bbf2f6e0997394cf9c449d44e1c80ff4282c (patch) | |
tree | d8e6ddcca0c855821aa4069cb47a7f23dd0817a9 | |
parent | d6f3e7d564b2309e1f17e709a70eca78d7ca2bb8 (diff) |
tools/sched_ext: Add helper to check task migration state
Introduce a new helper for BPF schedulers to determine whether a task
can migrate or not (supporting both SMP and UP systems).
Fixes: e9fe182772dc ("sched_ext: selftests/dsp_local_on: Fix sporadic failures")
Signed-off-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
-rw-r--r-- | tools/sched_ext/include/scx/common.bpf.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/sched_ext/include/scx/common.bpf.h b/tools/sched_ext/include/scx/common.bpf.h index f3e15e9efa76..f254a39b86a5 100644 --- a/tools/sched_ext/include/scx/common.bpf.h +++ b/tools/sched_ext/include/scx/common.bpf.h @@ -404,6 +404,17 @@ static __always_inline const struct cpumask *cast_mask(struct bpf_cpumask *mask) return (const struct cpumask *)mask; } +/* + * Return true if task @p cannot migrate to a different CPU, false + * otherwise. + */ +static inline bool is_migration_disabled(const struct task_struct *p) +{ + if (bpf_core_field_exists(p->migration_disabled)) + return p->migration_disabled; + return false; +} + /* rcu */ void bpf_rcu_read_lock(void) __ksym; void bpf_rcu_read_unlock(void) __ksym; |