Gerald Schaefer
34b133f8e9
[S390] mutex: Introduce arch_mutex_cpu_relax()
...
The spinning mutex implementation uses cpu_relax() in busy loops as a
compiler barrier. Depending on the architecture, cpu_relax() may do more
than needed in this specific mutex spin loops. On System z we also give
up the time slice of the virtual cpu in cpu_relax(), which prevents
effective spinning on the mutex.
This patch replaces cpu_relax() in the spinning mutex code with
arch_mutex_cpu_relax(), which can be defined by each architecture that
selects HAVE_ARCH_MUTEX_CPU_RELAX. The default is still cpu_relax(), so
this patch should not affect other architectures than System z for now.
Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1290437256.7455.4.camel@thinkpad>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2011-01-05 12:47:31 +01:00
..
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2009-12-12 13:08:14 +01:00
2010-05-26 23:26:29 +02:00
2008-12-25 13:38:55 +01:00
2010-02-26 22:37:30 +01:00
2009-06-11 21:02:14 +02:00
2010-05-19 08:36:48 +01:00
2008-08-01 20:42:05 +02:00
2009-01-14 19:56:50 -08:00
2010-03-03 11:26:00 +01:00
2009-11-26 09:16:19 +01:00
2011-01-05 12:47:28 +01:00
2009-06-16 10:31:08 +02:00
2009-09-11 10:29:43 +02:00
2009-01-09 12:15:06 +01:00
2009-09-11 10:29:36 +02:00
2010-02-09 11:13:56 +01:00
2009-01-09 12:15:06 +01:00
2010-09-14 16:08:45 -07:00
2008-08-01 20:42:05 +02:00
2010-10-25 16:10:19 +02:00
2011-01-05 12:47:28 +01:00
2010-02-26 22:37:29 +01:00
2008-08-01 20:42:05 +02:00
2011-01-05 12:47:30 +01:00
2009-09-11 10:29:53 +02:00
2009-10-06 10:35:08 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2009-12-16 07:20:12 -08:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2010-02-26 22:37:30 +01:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2008-12-25 13:39:06 +01:00
2011-01-05 12:47:31 +01:00
2008-08-01 20:42:05 +02:00
2011-01-05 12:47:24 +01:00
2010-10-25 16:10:19 +02:00
2009-03-26 15:24:05 +01:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2010-10-22 10:20:01 -07:00
2008-08-01 20:42:05 +02:00
2009-09-11 10:29:46 +02:00
2008-08-01 20:42:05 +02:00
2011-01-05 12:47:26 +01:00
2010-10-07 14:08:55 +01:00
2008-12-25 13:38:57 +01:00
2008-08-01 20:42:05 +02:00
2010-10-24 10:51:30 +02:00
2008-08-01 20:42:05 +02:00
2008-08-15 08:35:42 -07:00
2009-06-16 19:47:51 -07:00
2011-01-05 12:47:24 +01:00
2010-08-01 10:47:30 +03:00
2009-09-10 10:46:48 +03:00
2010-10-24 10:51:29 +02:00
2009-12-03 09:32:25 +02:00
2008-08-01 20:42:05 +02:00
2010-06-09 11:12:36 +02:00
2008-08-01 20:42:05 +02:00
2010-10-25 16:10:21 +02:00
2008-08-01 20:42:05 +02:00
2009-09-22 07:17:42 -07:00
2010-08-24 09:26:34 +02:00
2010-08-24 09:26:34 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2011-01-05 12:47:31 +01:00
2009-03-26 15:24:10 +01:00
2010-11-10 10:05:54 +01:00
2010-01-04 09:05:58 +01:00
2008-08-01 20:42:05 +02:00
2009-06-24 15:13:53 +09:00
2010-10-18 19:58:50 +02:00
2010-10-25 16:10:15 +02:00
2010-10-26 16:52:08 -07:00
2008-08-01 20:42:05 +02:00
2009-01-09 12:15:04 +01:00
2011-01-05 12:47:31 +01:00
2011-01-05 12:47:31 +01:00
2011-01-05 12:47:28 +01:00
2009-01-09 12:15:06 +01:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2010-02-26 22:37:30 +01:00
2011-01-05 12:47:26 +01:00
2010-10-25 16:10:15 +02:00
2009-01-09 12:15:06 +01:00
2008-08-01 20:42:05 +02:00
2009-09-11 10:29:36 +02:00
2009-06-12 10:27:31 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2010-10-25 16:10:21 +02:00
2008-08-01 20:42:05 +02:00
2010-05-26 08:30:15 -07:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00
2009-06-11 21:01:52 +02:00
2010-02-26 22:37:31 +01:00
2011-01-05 12:47:30 +01:00
2009-10-12 13:26:31 -07:00
2009-12-07 12:51:37 +01:00
2008-08-01 20:42:05 +02:00
2009-12-14 23:55:32 +01:00
2010-02-26 22:37:30 +01:00
2008-08-01 20:42:05 +02:00
2010-08-09 16:48:44 -04:00
2009-03-26 15:24:24 +01:00
2009-06-16 10:31:22 +02:00
2010-02-26 22:37:30 +01:00
2010-10-25 16:10:19 +02:00
2010-10-25 16:10:21 +02:00
2011-01-05 12:47:31 +01:00
2008-08-01 20:42:05 +02:00
2009-12-07 12:51:37 +01:00
2009-06-11 21:01:52 +02:00
2011-01-05 12:47:31 +01:00
2009-04-14 15:37:23 +02:00
2011-01-05 12:47:25 +01:00
2010-10-25 16:10:15 +02:00
2010-08-24 09:26:34 +02:00
2010-10-25 16:10:21 +02:00
2009-06-11 21:02:14 +02:00
2010-02-26 22:37:29 +01:00
2009-10-06 10:35:10 +02:00
2008-08-01 20:42:05 +02:00
2010-08-13 10:06:54 +02:00
2008-08-01 20:42:05 +02:00
2010-04-22 17:17:19 +02:00
2009-03-26 15:24:05 +01:00
2008-08-01 20:42:05 +02:00
2008-08-01 20:42:05 +02:00