Avoid taking the rq lock in wake_priority sleeper Avoid taking the request queue lock in wake_priority_sleeper if there are no running processes. Signed-off-by: Christoph Lameter Index: linux-2.6.19-rc4-mm2/kernel/sched.c =================================================================== --- linux-2.6.19-rc4-mm2.orig/kernel/sched.c 2006-11-02 17:31:05.964060772 -0600 +++ linux-2.6.19-rc4-mm2/kernel/sched.c 2006-11-03 12:51:15.281805162 -0600 @@ -2899,6 +2899,9 @@ static inline int wake_priority_sleeper( int ret = 0; #ifdef CONFIG_SCHED_SMT + if (!rq->nr_running) + return 0; + spin_lock(&rq->lock); /* * If an SMT sibling task has been put to sleep for priority