linux-kernel-test/arch/x86
Jan Beulich a750036f35 x86: Fix write lock scalability 64-bit issue
With the write lock path simply subtracting RW_LOCK_BIAS there
is, on large systems, the theoretical possibility of overflowing
the 32-bit value that was used so far (namely if 128 or more
CPUs manage to do the subtraction, but don't get to do the
inverse addition in the failure path quickly enough).

A first measure is to modify RW_LOCK_BIAS itself - with the new
value chosen, it is good for up to 2048 CPUs each allowed to
nest over 2048 times on the read path without causing an issue.
Quite possibly it would even be sufficient to adjust the bias a
little further, assuming that allowing for significantly less
nesting would suffice.

However, as the original value chosen allowed for even more
nesting levels, to support more than 2048 CPUs (possible
currently only for 64-bit kernels) the lock itself gets widened
to 64 bits.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/4E258E0D020000780004E3F0@nat28.tlf.novell.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2011-07-21 09:03:36 +02:00
..
boot
configs cgroup: remove the ns_cgroup 2011-05-26 17:12:34 -07:00
crypto
ia32 x86, asm: Flip RESTORE_ARGS arguments logic 2011-06-03 14:38:53 -07:00
include/asm x86: Fix write lock scalability 64-bit issue 2011-07-21 09:03:36 +02:00
kernel x86, asm: Flip RESTORE_ARGS arguments logic 2011-06-03 14:38:53 -07:00
kvm vmscan: change shrinker API by passing shrink_control struct 2011-05-25 08:39:26 -07:00
lguest Merge branch 'timers-clocksource-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-05-19 17:44:13 -07:00
lib x86: Fix write lock scalability 64-bit issue 2011-07-21 09:03:36 +02:00
math-emu
mm x86: Move do_page_fault()'s error path under unlikely() 2011-05-26 13:54:03 +02:00
net
oprofile Merge branch 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile into perf/urgent 2011-05-27 14:08:09 +02:00
pci Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2011-05-23 15:39:34 -07:00
platform x86, efi: Retain boot service code until after switching to virtual mode 2011-05-25 17:03:53 -07:00
power
tools
vdso x86: vdso: Remove unused variable 2011-05-26 13:17:35 +02:00
video
xen Merge branch 'upstream/tidy-xen-mmu-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen 2011-05-26 19:01:15 -07:00
.gitignore
Kbuild
Kconfig arch: remove CONFIG_GENERIC_FIND_{NEXT_BIT,BIT_LE,LAST_BIT} 2011-05-26 17:12:38 -07:00
Kconfig.cpu
Kconfig.debug lib: consolidate DEBUG_STACK_USAGE option 2011-05-25 08:39:54 -07:00
Makefile
Makefile_32.cpu