1
linux/arch/arm
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
..
boot Merge branch 'orion' into devel 2008-01-28 13:21:30 +00:00
common [ARM] remove duplicate includes 2008-01-26 14:50:07 +00:00
configs Merge branch 'pxa-plat' into devel 2008-01-28 13:21:38 +00:00
kernel all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
lib
mach-aaec2000 [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-at91 [ARM] 4615/4: sam926[13]ek buttons updated 2008-01-27 17:54:16 +00:00
mach-clps711x [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-clps7500 [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-davinci clockevents: fix resume logic 2007-07-21 17:49:15 -07:00
mach-ebsa110 [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-ep93xx Merge branches 'at91', 'ep93xx', 'iop', 'kprobes', 'ks8695', 'misc', 'msm', 's3c2410', 'sa1100' and 'vfp' into devel 2008-01-28 13:21:21 +00:00
mach-footbridge [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-h720x [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-imx Remove references to "make dep" 2008-01-28 23:22:13 +01:00
mach-integrator Merge branches 'at91', 'ep93xx', 'iop', 'kprobes', 'ks8695', 'misc', 'msm', 's3c2410', 'sa1100' and 'vfp' into devel 2008-01-28 13:21:21 +00:00
mach-iop13xx
mach-iop32x [ARM] 4770/1: GLAN Tank: correct physmap_flash_data width field 2008-01-26 14:58:55 +00:00
mach-iop33x
mach-ixp4xx Merge branches 'at91', 'ep93xx', 'iop', 'kprobes', 'ks8695', 'misc', 'msm', 's3c2410', 'sa1100' and 'vfp' into devel 2008-01-28 13:21:21 +00:00
mach-ixp23xx [ARM] remove duplicate includes 2008-01-26 14:50:07 +00:00
mach-ixp2000 [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-ks8695 Merge branches 'at91', 'ep93xx', 'iop', 'kprobes', 'ks8695', 'misc', 'msm', 's3c2410', 'sa1100' and 'vfp' into devel 2008-01-28 13:21:21 +00:00
mach-l7200
mach-lh7a40x [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-msm [ARM] msm: dma support for MSM7X00A 2008-01-26 14:39:14 +00:00
mach-mx3 [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-netx Remove references to "make dep" 2008-01-28 23:22:13 +01:00
mach-ns9xxx [ARM] 4595/1: ns9xxx: define registers as void __iomem * instead of volatile u32 2007-10-12 23:43:41 +01:00
mach-omap1 Merge branch 'pxa-plat' into devel 2008-01-28 13:21:38 +00:00
mach-omap2 Merge branch 'pxa-plat' into devel 2008-01-28 13:21:38 +00:00
mach-orion [ARM] Orion: implement power-off method for QNAP TS-109/209 2008-01-26 15:04:04 +00:00
mach-pnx4008 [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-pxa Merge branch 'pxa-plat' into devel 2008-01-28 13:21:38 +00:00
mach-realview [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-rpc [ARM] rpc: convert an outb() to writeb() 2007-07-20 21:29:39 +01:00
mach-s3c2400
mach-s3c2410 Merge branches 'at91', 'ep93xx', 'iop', 'kprobes', 'ks8695', 'misc', 'msm', 's3c2410', 'sa1100' and 'vfp' into devel 2008-01-28 13:21:21 +00:00
mach-s3c2412 [ARM] 4791/1: S3C2412: Make fclk a parent of msysclk 2008-01-28 13:20:52 +00:00
mach-s3c2440 [ARM] 4794/1: S3C24XX: Comonise S3C2440 and S3C2442 clock code 2008-01-28 13:20:52 +00:00
mach-s3c2442 [ARM] 4794/1: S3C24XX: Comonise S3C2440 and S3C2442 clock code 2008-01-28 13:20:52 +00:00
mach-s3c2443 Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
mach-sa1100 Merge branches 'at91', 'ep93xx', 'iop', 'kprobes', 'ks8695', 'misc', 'msm', 's3c2410', 'sa1100' and 'vfp' into devel 2008-01-28 13:21:21 +00:00
mach-shark [ARM] Fix timer damage from d3d74453c3 2008-01-28 10:17:12 +00:00
mach-versatile
mm Merge branch 'orion' into devel 2008-01-28 13:21:30 +00:00
nwfpe Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
oprofile Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
plat-iop [ARM] 4495/1: iop: combined watchdog timer driver for iop3xx and iop13xx 2007-07-20 09:35:42 +01:00
plat-mxc [ARM] 4461/1: MXC platform and i.MX31ADS core support 2007-07-22 15:44:46 +01:00
plat-omap Merge branch 'blk-end-request' of git://git.kernel.dk/linux-2.6-block 2008-01-29 08:51:32 +11:00
plat-s3c [ARM] 4518/1: S3C: Rename watchdog configuration options 2007-07-22 16:44:38 +01:00
plat-s3c24xx [ARM] 4795/1: S3C244X: Add armclk and setparent call 2008-01-28 13:20:52 +00:00
tools [ARM] Update mach-types 2008-01-26 14:47:48 +00:00
vfp [ARM] 4583/1: ARMv7: Add VFPv3 support 2008-01-26 14:41:28 +00:00
Kconfig spinlock: lockbreak cleanup 2008-01-30 13:31:20 +01:00
Kconfig-nommu [ARM] 4532/1: allow configuration of processor ID 2007-10-12 23:43:02 +01:00
Kconfig.debug [ARM] CONFIG_DEBUG_STACK_USAGE 2008-01-26 14:50:06 +00:00
Kconfig.instrumentation ARM kprobes: let's enable it 2008-01-26 15:25:17 +00:00
Makefile Merge branch 'orion' into devel 2008-01-28 13:21:30 +00:00