public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Inline double_unlock_balance()
@ 2008-11-05 13:27 Sripathi Kodi
  2008-11-05 13:59 ` Peter Zijlstra
  2008-11-06 17:30 ` Dhaval Giani
  0 siblings, 2 replies; 5+ messages in thread
From: Sripathi Kodi @ 2008-11-05 13:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: Peter Zijlstra, Steven Rostedt

Hi,

We have a test case which measures the variation in the amount of time 
needed to perform a fixed amount of work on the preempt_rt kernel. We 
started seeing deterioration in it's performance recently. The test 
should never take more than 10 microseconds, but we started 5-10% 
failure rate. Using elimination method, we traced the problem to commit 
1b12bbc747560ea68bcc132c3d05699e52271da0 (lockdep: re-annotate 
scheduler runqueues). When LOCKDEP is disabled, this patch only adds an 
additional function call to double_unlock_balance(). Hence I inlined 
double_unlock_balance() and the problem went away. Here is a patch to 
make this change.

Thanks,
Sripathi.

lockdep: Inline double_unlock_balance()

Additional function call for double_unlock_balance() causes latency 
problems for some test cases on the preempt_rt kernel.

Signed-off-by: Sripathi Kodi <sripathik@in.ibm.com>

Index: linux-2.6.27.4/kernel/sched.c
===================================================================
--- linux-2.6.27.4.orig/kernel/sched.c	2008-11-05 05:01:01.000000000 -0800
+++ linux-2.6.27.4/kernel/sched.c	2008-11-05 05:01:20.000000000 -0800
@@ -2812,7 +2812,7 @@
 	return ret;
 }
 
-static void double_unlock_balance(struct rq *this_rq, struct rq *busiest)
+static inline void double_unlock_balance(struct rq *this_rq, struct rq *busiest)
 	__releases(busiest->lock)
 {
 	spin_unlock(&busiest->lock);

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-11-06 17:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-05 13:27 [PATCH] Inline double_unlock_balance() Sripathi Kodi
2008-11-05 13:59 ` Peter Zijlstra
2008-11-06  7:32   ` Ingo Molnar
2008-11-06  7:53     ` Peter Zijlstra
2008-11-06 17:30 ` Dhaval Giani

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox