linux/arch/ia64
Nick Piggin 95c354fe9f spinlock: lockbreak cleanup
The break_lock data structure and code for spinlocks is quite nasty.
Not only does it double the size of a spinlock but it changes locking to
a potentially less optimal trylock.

Put all of that under CONFIG_GENERIC_LOCKBREAK, and introduce a
__raw_spin_is_contended that uses the lock data itself to determine whether
there are waiters on the lock, to be used if CONFIG_GENERIC_LOCKBREAK is
not set.

Rename need_lockbreak to spin_needbreak, make it use spin_is_contended to
decouple it from the spinlock implementation, and make it typesafe (rwlocks
do not have any need_lockbreak sites -- why do they even get bloated up
with that break_lock then?).

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-01-30 13:31:20 +01:00
..
configs [IA64] update sn2 defconfig to 64kb pages 2007-10-29 11:32:42 -07:00
dig [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
hp [netdrvr] irq handler minor cleanups in several drivers 2008-01-28 15:03:40 -08:00
ia32 x86: PIE executable randomization, checkpatch fixes 2008-01-30 13:31:07 +01:00
kernel all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
lib [IA64] export copy_page() to modules 2007-12-07 16:10:19 -08:00
mm [IA64] Avoid unnecessary TLB flushes when allocating memory 2007-12-18 16:56:50 -08:00
oprofile Combine instrumentation menus in kernel/Kconfig.instrumentation 2007-10-19 11:53:54 -07:00
pci [IA64] Nail two more simple section mismatch errors 2007-07-25 13:08:41 -07:00
scripts [IA64] don't assume that unwcheck.py is executable 2007-12-07 14:42:08 -08:00
sn sched: remove printk_clock references from ia64 2008-01-25 21:07:59 +01:00
Kconfig spinlock: lockbreak cleanup 2008-01-30 13:31:20 +01:00
Kconfig.debug [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
Makefile [IA64] don't assume that unwcheck.py is executable 2007-12-07 14:42:08 -08:00
defconfig [IA64] Update arch/ia64/configs/* s/SLAB/SLUB/ 2007-08-13 14:54:34 -07:00
install.sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
module.lds Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00