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-rc5-mm1/kernel/sched.c =================================================================== --- linux-2.6.19-rc5-mm1.orig/kernel/sched.c 2006-11-13 14:23:24.244457947 -0600 +++ linux-2.6.19-rc5-mm1/kernel/sched.c 2006-11-13 14:23:29.984173185 -0600 @@ -2918,6 +2918,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