diff options
Diffstat (limited to 'kernel/sched/ext.h')
| -rw-r--r-- | kernel/sched/ext.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/sched/ext.h b/kernel/sched/ext.h index d30f2d1bc00d..6d6d00e9de20 100644 --- a/kernel/sched/ext.h +++ b/kernel/sched/ext.h @@ -20,6 +20,17 @@ static inline bool scx_rq_bypassing(struct rq *rq) DECLARE_STATIC_KEY_FALSE(scx_ops_allow_queued_wakeup); +DECLARE_PER_CPU(struct rq *, scx_locked_rq_state); + +/* + * Return the rq currently locked from an scx callback, or NULL if no rq is + * locked. + */ +static inline struct rq *scx_locked_rq(void) +{ + return __this_cpu_read(scx_locked_rq_state); +} + void scx_tick(struct rq *rq); void init_scx_entity(struct sched_ext_entity *scx); void scx_pre_fork(struct task_struct *p); |