Files
linux-legacy/include/linux
Robin Holt e8c158bb31 Factor out #ifdefs from kernel/spinlock.c to LOCK_CONTENDED_FLAGS
SGI has observed that on large systems, interrupts are not serviced for a
long period of time when waiting for a rwlock.  The following patch series
re-enables irqs while waiting for the lock, resembling the code which is
already there for spinlocks.

I only made the ia64 version, because the patch adds some overhead to the
fast path.  I assume there is currently no demand to have this for other
architectures, because the systems are not so large.  Of course, the
possibility to implement raw_{read|write}_lock_flags for any architecture
is still there.

This patch:

The new macro LOCK_CONTENDED_FLAGS expands to the correct implementation
depending on the config options, so that IRQ's are re-enabled when
possible, but they remain disabled if CONFIG_LOCKDEP is set.

Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
Signed-off-by: Robin Holt <holt@sgi.com>
Cc: <linux-arch@vger.kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-04-02 19:05:10 -07:00
..
2009-03-18 19:45:11 -07:00
2009-03-05 14:39:32 -05:00
2009-04-01 08:59:23 -07:00
2009-04-01 08:59:23 -07:00
2009-03-27 14:43:59 -04:00
2009-03-01 00:19:35 -08:00
2009-03-16 08:32:27 -06:00
2009-04-02 19:04:52 -07:00
2009-04-01 08:59:29 -07:00
2009-02-18 15:37:56 -08:00
2009-03-24 12:35:17 +01:00
2009-04-01 08:59:14 -07:00
2009-03-31 20:15:33 +02:00
2009-04-02 19:04:53 -07:00
2009-03-13 14:32:29 +01:00
2009-04-02 19:04:49 -07:00
2009-03-24 22:52:39 -04:00
2009-04-01 08:59:17 -07:00
2009-04-02 19:04:48 -07:00
2009-03-26 10:56:35 -07:00
2009-03-20 10:48:14 -07:00
2009-03-15 19:59:13 -07:00
2009-04-01 13:28:15 -04:00
2009-04-01 13:28:15 -04:00
2009-03-10 20:33:18 -04:00
2009-04-01 08:59:13 -07:00
2009-04-01 08:59:13 -07:00
2009-04-01 08:59:13 -07:00
2009-03-13 16:09:12 -07:00
2009-03-26 02:18:35 +01:00
2009-02-26 23:42:11 -08:00
2009-03-30 14:28:58 -07:00
2009-04-01 08:59:24 -07:00
2009-02-16 00:03:10 -08:00
2009-02-27 16:53:50 +09:00
2009-02-20 17:57:48 -08:00
2009-04-01 08:59:13 -07:00
2009-04-01 08:59:15 -07:00
2009-04-02 19:05:01 -07:00
2009-02-18 15:37:53 -08:00
2009-03-26 18:14:21 +01:00