![]() 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> |
||
---|---|---|
.. | ||
au1000 | ||
basler/excite | ||
bcm47xx | ||
boot | ||
cobalt | ||
configs | ||
dec | ||
emma2rh | ||
fw | ||
gt64120/wrppmc | ||
jazz | ||
jmr3927 | ||
kernel | ||
lasat | ||
lemote/lm2e | ||
lib | ||
math-emu | ||
mips-boards | ||
mipssim | ||
mm | ||
oprofile | ||
pci | ||
philips/pnx8550 | ||
pmc-sierra | ||
sgi-ip22 | ||
sgi-ip27 | ||
sgi-ip32 | ||
sibyte | ||
sni | ||
tx4927 | ||
tx4938 | ||
vr41xx | ||
defconfig | ||
Kconfig | ||
Kconfig.debug | ||
Makefile |