linux/arch/x86
Linus Torvalds fc6d0b0376 Merge branch 'lockref' (locked reference counts)
Merge lockref infrastructure code by me and Waiman Long.

I already merged some of the preparatory patches that didn't actually do
any semantic changes earlier, but this merges the actual _reason_ for
those preparatory patches.

The "lockref" structure is a combination "spinlock and reference count"
that allows optimized reference count accesses.  In particular, it
guarantees that the reference count will be updated AS IF the spinlock
was held, but using atomic accesses that cover both the reference count
and the spinlock words, we can often do the update without actually
having to take the lock.

This allows us to avoid the nastiest cases of spinlock contention on
large machines under heavy pathname lookup loads.  When updating the
dentry reference counts on a large system, we'll still end up with the
cache line bouncing around, but that's much less noticeable than
actually having to spin waiting for the lock.

* lockref:
  lockref: implement lockless reference count updates using cmpxchg()
  lockref: uninline lockref helper functions
  vfs: reimplement d_rcu_to_refcount() using lockref_get_or_lock()
  vfs: use lockref_get_not_zero() for optimistic lockless dget_parent()
  lockref: add 'lockref_get_or_lock() helper
2013-09-03 08:08:21 -07:00
..
boot x86, efi: correct call to free_pages 2013-07-26 15:22:32 +01:00
configs x86, platform, kvm, kconfig: Turn existing .config's into KVM-capable configs 2013-05-28 12:11:32 +02:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2013-07-24 11:05:18 -07:00
ia32 mm: remove free_area_cache 2013-07-10 18:11:34 -07:00
include lockref: implement lockless reference count updates using cmpxchg() 2013-09-02 12:12:15 -07:00
kernel x86 get_unmapped_area: Access mmap_legacy_base through mm_struct member 2013-08-22 10:19:35 -07:00
kvm KVM: MMU: avoid fast page fault fixing mmio page fault 2013-07-18 12:26:57 +02:00
lguest Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-07-06 14:09:38 -07:00
lib Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS 2013-04-30 17:04:09 -07:00
math-emu
mm Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-09-02 09:55:14 -07:00
net x86: bpf_jit_comp: secure bpf jit against spraying attacks 2013-05-19 23:55:41 -07:00
oprofile
pci x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
platform arch/x86/platform/ce4100/ce4100.c: include reboot.h 2013-07-31 14:41:02 -07:00
power x86, gdt, hibernate: Store/load GDT for hibernate path. 2013-05-02 11:27:35 -07:00
realmode x86, relocs: Refactor the relocs tool to merge 32- and 64-bit ELF 2013-04-16 16:02:58 -07:00
syscalls unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE 2013-05-09 13:46:38 -04:00
tools x86, relocs: Move __vvar_page from S_ABS to S_REL 2013-06-12 15:14:57 -07:00
um um: remove dead code 2013-07-19 11:35:32 +02:00
vdso x86/vdso: Convert use of typedef ctl_table to struct ctl_table 2013-06-19 15:06:09 +02:00
video
xen Bug-fixes: 2013-08-21 16:38:33 -07:00
.gitignore
Kbuild
Kconfig lockref: implement lockless reference count updates using cmpxchg() 2013-09-02 12:12:15 -07:00
Kconfig.cpu
Kconfig.debug Merge branch 'kconfig-diet' from Dave Hansen 2013-07-04 11:25:51 -07:00
Makefile x86/platform: Add kvmconfig to the phony targets 2013-06-23 12:17:35 +02:00
Makefile_32.cpu
Makefile.um