aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2006-12-10 05:20:13 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-10 12:55:42 -0500
commit571f6d2fb0b1c04798df783db2ba85e96bcce43d (patch)
tree09e90a5f4976ddfa35e93e90372413e2ef87060a /kernel
parentac7d550499e225efb51a53d0b00667f26b93bdff (diff)
[PATCH] sched: avoid taking 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 <clameter@sgi.com> Cc: Peter Williams <pwil3058@bigpond.net.au> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Cc: Christoph Lameter <clameter@sgi.com> Cc: "Siddha, Suresh B" <suresh.b.siddha@intel.com> Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index f04add905bdf..fdd26fffaa20 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -2915,6 +2915,9 @@ static inline int wake_priority_sleeper(struct rq *rq)
2915 int ret = 0; 2915 int ret = 0;
2916 2916
2917#ifdef CONFIG_SCHED_SMT 2917#ifdef CONFIG_SCHED_SMT
2918 if (!rq->nr_running)
2919 return 0;
2920
2918 spin_lock(&rq->lock); 2921 spin_lock(&rq->lock);
2919 /* 2922 /*
2920 * If an SMT sibling task has been put to sleep for priority 2923 * If an SMT sibling task has been put to sleep for priority