]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
sched_ext: Make scx_locked_rq() inline
authorAndrea Righi <arighi@nvidia.com>
Thu, 5 Jun 2025 09:30:26 +0000 (11:30 +0200)
committerTejun Heo <tj@kernel.org>
Mon, 9 Jun 2025 16:25:35 +0000 (06:25 -1000)
scx_locked_rq() is used both from ext.c and ext_idle.c, move it to ext.h
as a static inline function.

No functional changes.

v2: Rename locked_rq to scx_locked_rq_state, expose it and make
    scx_locked_rq() inline, as suggested by Tejun.

Signed-off-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/sched/ext.c
kernel/sched/ext.h

index 3e483138dff6085383ec018a6ba3d40fae582bb4..3623ba98d7d83b8b94a80930f9a8e5d982ce7908 100644 (file)
@@ -1247,7 +1247,7 @@ static void scx_kf_disallow(u32 mask)
  * This allows kfuncs to safely operate on rq from any scx ops callback,
  * knowing which rq is already locked.
  */
-static DEFINE_PER_CPU(struct rq *, locked_rq);
+DEFINE_PER_CPU(struct rq *, scx_locked_rq_state);
 
 static inline void update_locked_rq(struct rq *rq)
 {
@@ -1258,16 +1258,7 @@ static inline void update_locked_rq(struct rq *rq)
         */
        if (rq)
                lockdep_assert_rq_held(rq);
-       __this_cpu_write(locked_rq, rq);
-}
-
-/*
- * 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(locked_rq);
+       __this_cpu_write(scx_locked_rq_state, rq);
 }
 
 #define SCX_CALL_OP(sch, mask, op, rq, args...)                                        \
index d30f2d1bc00d55902ceab1085f9c9884aaf7fc75..6d6d00e9de20f242fe164bb0ef138df7e79f164f 100644 (file)
@@ -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);