[PATCH v5 2/3] sched: Make raw_spin_rq_unlock() inline
Xie Yuanbin
qq570070308 at gmail.com
Sun Dec 14 11:09:06 PST 2025
raw_spin_rq_unlock() is short, and is called in some hot code paths
such as finish_lock_switch.
Make raw_spin_rq_unlock() inline to optimize performance.
Signed-off-by: Xie Yuanbin <qq570070308 at gmail.com>
Cc: Thomas Gleixner <tglx at linutronix.de>
Cc: Rik van Riel <riel at surriel.com>
Cc: Segher Boessenkool <segher at kernel.crashing.org>
Cc: David Hildenbrand (Red Hat) <david at kernel.org>
Cc: Peter Zijlstra <peterz at infradead.org>
Cc: H. Peter Anvin (Intel) <hpa at zytor.com>
---
kernel/sched/core.c | 5 -----
kernel/sched/sched.h | 6 +++++-
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 41ba0be16911..20146da3f181 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -678,11 +678,6 @@ bool raw_spin_rq_trylock(struct rq *rq)
}
}
-void raw_spin_rq_unlock(struct rq *rq)
-{
- raw_spin_unlock(rq_lockp(rq));
-}
-
/*
* double_rq_lock - safely lock two runqueues
*/
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index d30cca6870f5..bef6cb13266d 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -1551,13 +1551,17 @@ static inline void lockdep_assert_rq_held(struct rq *rq)
extern void raw_spin_rq_lock_nested(struct rq *rq, int subclass);
extern bool raw_spin_rq_trylock(struct rq *rq);
-extern void raw_spin_rq_unlock(struct rq *rq);
static inline void raw_spin_rq_lock(struct rq *rq)
{
raw_spin_rq_lock_nested(rq, 0);
}
+static inline void raw_spin_rq_unlock(struct rq *rq)
+{
+ raw_spin_unlock(rq_lockp(rq));
+}
+
static inline void raw_spin_rq_lock_irq(struct rq *rq)
{
local_irq_disable();
--
2.51.0
More information about the linux-riscv
mailing list