switch-linux/include/linux
Waiman Long 2bd2c92cf0 mutex: Queue mutex spinners with MCS lock to reduce cacheline contention
The current mutex spinning code (with MUTEX_SPIN_ON_OWNER option
turned on) allow multiple tasks to spin on a single mutex
concurrently. A potential problem with the current approach is
that when the mutex becomes available, all the spinning tasks
will try to acquire the mutex more or less simultaneously. As a
result, there will be a lot of cacheline bouncing especially on
systems with a large number of CPUs.

This patch tries to reduce this kind of contention by putting
the mutex spinners into a queue so that only the first one in
the queue will try to acquire the mutex. This will reduce
contention and allow all the tasks to move forward faster.

The queuing of mutex spinners is done using an MCS lock based
implementation which will further reduce contention on the mutex
cacheline than a similar ticket spinlock based implementation.
This patch will add a new field into the mutex data structure
for holding the MCS lock. This expands the mutex size by 8 bytes
for 64-bit system and 4 bytes for 32-bit system. This overhead
will be avoid if the MUTEX_SPIN_ON_OWNER option is turned off.

The following table shows the jobs per minute (JPM) scalability
data on an 8-node 80-core Westmere box with a 3.7.10 kernel. The
numactl command is used to restrict the running of the fserver
workloads to 1/2/4/8 nodes with hyperthreading off.

+-----------------+-----------+-----------+-------------+----------+
|  Configuration  | Mean JPM  | Mean JPM  |  Mean JPM   | % Change |
|                 | w/o patch | patch 1   | patches 1&2 |  1->1&2  |
+-----------------+------------------------------------------------+
|                 |              User Range 1100 - 2000            |
+-----------------+------------------------------------------------+
| 8 nodes, HT off |  227972   |  227237   |   305043    |  +34.2%  |
| 4 nodes, HT off |  393503   |  381558   |   394650    |   +3.4%  |
| 2 nodes, HT off |  334957   |  325240   |   338853    |   +4.2%  |
| 1 node , HT off |  198141   |  197972   |   198075    |   +0.1%  |
+-----------------+------------------------------------------------+
|                 |              User Range 200 - 1000             |
+-----------------+------------------------------------------------+
| 8 nodes, HT off |  282325   |  312870   |   332185    |   +6.2%  |
| 4 nodes, HT off |  390698   |  378279   |   393419    |   +4.0%  |
| 2 nodes, HT off |  336986   |  326543   |   340260    |   +4.2%  |
| 1 node , HT off |  197588   |  197622   |   197582    |    0.0%  |
+-----------------+-----------+-----------+-------------+----------+

At low user range 10-100, the JPM differences were within +/-1%.
So they are not that interesting.

The fserver workload uses mutex spinning extensively. With just
the mutex change in the first patch, there is no noticeable
change in performance.  Rather, there is a slight drop in
performance. This mutex spinning patch more than recovers the
lost performance and show a significant increase of +30% at high
user load with the full 8 nodes. Similar improvements were also
seen in a 3.8 kernel.

The table below shows the %time spent by different kernel
functions as reported by perf when running the fserver workload
at 1500 users with all 8 nodes.

+-----------------------+-----------+---------+-------------+
|        Function       |  % time   | % time  |   % time    |
|                       | w/o patch | patch 1 | patches 1&2 |
+-----------------------+-----------+---------+-------------+
| __read_lock_failed    |  34.96%   | 34.91%  |   29.14%    |
| __write_lock_failed   |  10.14%   | 10.68%  |    7.51%    |
| mutex_spin_on_owner   |   3.62%   |  3.42%  |    2.33%    |
| mspin_lock            |    N/A    |   N/A   |    9.90%    |
| __mutex_lock_slowpath |   1.46%   |  0.81%  |    0.14%    |
| _raw_spin_lock        |   2.25%   |  2.50%  |    1.10%    |
+-----------------------+-----------+---------+-------------+

The fserver workload for an 8-node system is dominated by the
contention in the read/write lock. Mutex contention also plays a
role. With the first patch only, mutex contention is down (as
shown by the __mutex_lock_slowpath figure) which help a little
bit. We saw only a few percents improvement with that.

By applying patch 2 as well, the single mutex_spin_on_owner
figure is now split out into an additional mspin_lock figure.
The time increases from 3.42% to 11.23%. It shows a great
reduction in contention among the spinners leading to a 30%
improvement. The time ratio 9.9/2.33=4.3 indicates that there
are on average 4+ spinners waiting in the spin_lock loop for
each spinner in the mutex_spin_on_owner loop. Contention in
other locking functions also go down by quite a lot.

The table below shows the performance change of both patches 1 &
2 over patch 1 alone in other AIM7 workloads (at 8 nodes,
hyperthreading off).

+--------------+---------------+----------------+-----------------+
|   Workload   | mean % change | mean % change  | mean % change   |
|              | 10-100 users  | 200-1000 users | 1100-2000 users |
+--------------+---------------+----------------+-----------------+
| alltests     |      0.0%     |     -0.8%      |     +0.6%       |
| five_sec     |     -0.3%     |     +0.8%      |     +0.8%       |
| high_systime |     +0.4%     |     +2.4%      |     +2.1%       |
| new_fserver  |     +0.1%     |    +14.1%      |    +34.2%       |
| shared       |     -0.5%     |     -0.3%      |     -0.4%       |
| short        |     -1.7%     |     -9.8%      |     -8.3%       |
+--------------+---------------+----------------+-----------------+

The short workload is the only one that shows a decline in
performance probably due to the spinner locking and queuing
overhead.

Signed-off-by: Waiman Long <Waiman.Long@hp.com>
Reviewed-by: Davidlohr Bueso <davidlohr.bueso@hp.com>
Acked-by: Rik van Riel <riel@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Chandramouleeswaran Aswin <aswin@hp.com>
Cc: Norton Scott J <scott.norton@hp.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Dave Jones <davej@redhat.com>
Cc: Clark Williams <williams@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1366226594-5506-4-git-send-email-Waiman.Long@hp.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2013-04-19 09:33:36 +02:00
..
amba Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2013-02-26 09:24:48 -08:00
bcma Fairly unexciting MTD merge for 3.9: 2013-03-02 16:33:54 -08:00
byteorder
can
ceph libceph: add support for HASHPSPOOL pool flag 2013-02-26 15:03:06 -08:00
clk arm-soc: soc-specific updates 2013-02-21 15:27:22 -08:00
crush
decompress
dma
extcon
fsl
hsi hsi: fix kernel-doc warnings 2013-03-01 13:39:00 -08:00
i2c Input: atmel_mxt_ts - Support for touchpad variant 2013-03-08 16:03:29 -08:00
iio iio: Fix build error seen if IIO_TRIGGER is defined but IIO_BUFFER is not 2013-03-02 16:31:21 +00:00
input
irqchip ImgTec Meta architecture changes for v3.9-rc1 2013-03-03 12:06:09 -08:00
isdn
lockd Merge branch 'for-3.9' of git://linux-nfs.org/~bfields/linux 2013-02-28 18:02:55 -08:00
mfd char/misc driver fixes for 3.9-rc4 2013-03-28 15:51:33 -07:00
mlx4 Main batch of InfiniBand/RDMA changes for 3.9: 2013-02-26 11:41:08 -08:00
mmc mmc: sh_mobile_sdhi: remove unused .pdata field 2013-02-24 14:37:22 -05:00
mtd mtd: nand: reintroduce NAND_NO_READRDY as NAND_NEED_READRDY 2013-03-14 12:48:54 +00:00
netfilter Merge branch 'master' of git://1984.lsi.us.es/nf 2013-02-26 17:24:26 -05:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
pinctrl
platform_data Fairly unexciting MTD merge for 3.9: 2013-03-02 16:33:54 -08:00
power
raid
regulator regulator: core: update kernel documentation for regulator_desc 2013-03-01 06:07:22 +00:00
rtc
sched sched: move RR_TIMESLICE from sysctl.h to rt.h 2013-02-22 09:20:11 -08:00
spi Staging tree update for 3.9-rc1 2013-02-21 12:11:44 -08:00
ssb
sunrpc NFS client bugfixes for Linux 3.9 2013-03-02 16:46:07 -08:00
tc_act
unaligned
usb usb: add find_raw_port_number callback to struct hc_driver() 2013-03-25 10:39:17 -07:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi.h x86, ACPI, mm: Revert movablemem_map support 2013-03-02 09:34:39 -08:00
acpi_gpio.h
acpi_io.h
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm-emulation.h
apm_bios.h
apple_bl.h
arcdevice.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
async.h
async_tx.h
ata.h
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_suni.h
atm_tcp.h
atmdev.h
atmel-mci.h
atmel-pwm-bl.h
atmel-ssc.h
atmel_pdc.h
atmel_pwm.h
atmel_serial.h
atmel_tc.h
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev.h bdi: allow block devices to say that they require stable page writes 2013-02-21 17:22:19 -08:00
backlight.h
balloon_compaction.h
basic_mmio_gpio.h
bcd.h
bch.h
bcm47xx_wdt.h watchdog: bcm47xx_wdt.c: use platform device 2013-03-01 12:47:16 +01:00
bfin_mac.h
binfmts.h fs/exec.c: make bprm_mm_init() static 2013-02-26 02:46:13 -05:00
bio.h
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blk-iopoll.h
blk_types.h
blkdev.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h memory-hotplug: common APIs to support page tables hot-remove 2013-02-23 17:50:12 -08:00
bottom_half.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h bug.h, compiler.h: introduce compiletime_assert & BUILD_BUG_ON_MSG 2013-02-21 17:22:16 -08:00
c2port.h
cache.h
capability.h
cb710.h
cciss_ioctl.h
cdev.h
cdrom.h
cfag12864b.h
cgroup.h
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-private.h
clk-provider.h
clk.h
clkdev.h
clksrc-dbx500-prcmu.h
clockchips.h
clocksource.h
cm4000_cs.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
com20020.h
compaction.h mm: compaction: make __compact_pgdat() and compact_pgdat() return void 2013-02-23 17:50:10 -08:00
compat.h Fix breakage in MIPS siginfo handling 2013-03-19 19:15:52 +01:00
compiler-gcc.h compiler-gcc.h: Add gcc-recommended GCC_VERSION macro 2013-02-21 17:22:15 -08:00
compiler-gcc3.h compiler-gcc{3,4}.h: Use GCC_VERSION macro 2013-02-21 17:22:15 -08:00
compiler-gcc4.h compiler{,-gcc4}.h, bug.h: Remove duplicate macros 2013-02-21 17:22:15 -08:00
compiler-intel.h
compiler.h bug.h, compiler.h: introduce compiletime_assert & BUILD_BUG_ON_MSG 2013-02-21 17:22:16 -08:00
completion.h
concap.h
configfs.h
connector.h
console.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2013-02-25 16:46:44 -08:00
console_struct.h
consolemap.h
context_tracking.h
cordic.h
coredump.h
cper.h
cpu.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufreq.h
cpuidle.h
cpumask.h
cpuset.h
cramfs_fs.h
cramfs_fs_sb.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
cred.h
crypto.h
cryptohash.h
cryptouser.h
cs5535.h
ctype.h
cuda.h
cyclades.h
cycx_x25.h
davinci_emac.h
dca.h
dcache.h vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op 2013-02-26 02:46:09 -05:00
dccp.h
dcookies.h
debug_locks.h Revert "lockdep: check that no locks held at freeze time" 2013-03-31 11:38:33 -07:00
debugfs.h
debugobjects.h
delay.h
delayacct.h
devfreq.h PM / devfreq: Fix compiler warnings for CONFIG_PM_DEVFREQ unset 2013-04-02 01:28:41 +02:00
device-mapper.h dm: add target num_write_bios fn 2013-03-01 22:45:49 +00:00
device.h Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
device_cgroup.h
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h dm kcopyd: introduce configurable throttling 2013-03-01 22:45:49 +00:00
dm-region-hash.h
dm9000.h
dma-attrs.h
dma-buf.h dma-buf: implement vmap refcounting in the interface logic 2013-02-27 15:13:36 +05:30
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-mapping.h
dma_remapping.h
dmaengine.h dmaengine: add dma_request_slave_channel_compat() 2013-02-27 22:37:34 +05:30
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.h
ds1286.h
ds2782_battery.h
ds17287rtc.h
dtlk.h
dw_apb_timer.h
dw_dmac.h dmaengine: dw_dmac: move to generic DMA binding 2013-02-28 09:53:21 +05:30
dynamic_debug.h
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h eCryptfs: allow userspace messaging to be disabled 2013-03-03 23:59:59 -08:00
edac.h EDAC: Merge mci.mem_is_per_rank with mci.csbased 2013-03-16 06:32:30 +01:00
edd.h
edma.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h A few fixes to reduce places where pstore might hang 2013-02-21 09:38:18 -08:00
efs_vh.h
eisa.h
elevator.h Merge branch 'for-3.9/core' of git://git.kernel.dk/linux-block 2013-02-28 12:52:24 -08:00
elf-fdpic.h
elf.h default SET_PERSONALITY() in linux/elf.h 2013-02-26 02:46:08 -05:00
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventfd.h include/linux/eventfd.h: fix incorrect filename is a comment 2013-02-27 19:10:23 -08:00
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
file.h
filter.h
fips.h
firewire.h
firmware-map.h memory-hotplug: remove /sys/firmware/memmap/X sysfs 2013-02-23 17:50:12 -08:00
firmware.h
fixp-arith.h
flat.h
flex_array.h
flex_proportions.h
font.h
freezer.h Revert "lockdep: check that no locks held at freeze time" 2013-03-31 11:38:33 -07:00
frontswap.h
fs.h fs: Limit sys_mount to only request filesystem modules. 2013-03-03 19:36:31 -08:00
fs_enet_pd.h
fs_stack.h
fs_struct.h userns: Don't allow creation if the user is chrooted 2013-03-27 07:49:29 -07:00
fs_uart_pd.h
fscache-cache.h
fscache.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsnotify.h new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
fsnotify_backend.h
ftrace.h
ftrace_event.h
ftrace_irq.h
futex.h
gameport.h
gcd.h
genalloc.h
generic_acl.h
genetlink.h
genhd.h block: fix part_pack_uuid() build error 2013-02-26 03:10:52 +11:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
gpio-fan.h
gpio-pxa.h
gpio.h
gpio_keys.h
gpio_mouse.h
gsmmux.h
hardirq.h irq: Remove IRQ_EXIT_OFFSET workaround 2013-02-22 00:05:07 +01:00
hash.h kprobes: Make hash_64() as always inlined 2013-03-18 10:21:23 +01:00
hashtable.h hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
hdlc.h
hdlcdrv.h
hdmi.h video: Add generic HDMI infoframe helpers 2013-02-22 08:20:05 +01:00
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h Merge branches 'for-3.9/logitech', 'for-3.9/multitouch', 'for-3.9/ntrig', 'for-3.9/thingm' and 'for-3.9/upstream' into for-linus 2013-02-21 10:45:01 +01:00
hiddev.h
hidraw.h
highmem.h mm: remove unused memclear_highpage_flush() 2013-02-23 17:50:16 -08:00
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
htirq.h
huge_mm.h mm/rmap: rename anon_vma_unlock() => anon_vma_unlock_write() 2013-02-23 17:50:17 -08:00
hugetlb.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-mux-gpio.h
i2c-mux-pinctrl.h
i2c-mux.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-tegra.h
i2c-xiic.h
i2c.h
i2o.h
i7300_idle.h
i8042.h
i8253.h
i82593.h
icmp.h
icmpv6.h
ide.h
idr.h idr: deprecate idr_pre_get() and idr_get_new[_above]() 2013-03-13 15:21:47 -07:00
ieee80211.h
if_arp.h
if_bridge.h
if_eql.h
if_ether.h
if_fddi.h
if_frad.h
if_link.h
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_team.h hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
if_tun.h
if_tunnel.h
if_vlan.h vlan: adjust vlan_set_encap_proto() for its callers 2013-02-23 21:00:06 -05:00
igmp.h
ihex.h
ima.h
in.h
in6.h
inet.h
inet_diag.h
inet_lro.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_task.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel_mid_dma.h
intel_pmic_gpio.h
interrupt.h
interval_tree.h
interval_tree_generic.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
iommu-helper.h
iommu.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi.h ipmi: remove superfluous kernel/userspace explanation 2013-02-27 19:10:21 -08:00
ipmi_smi.h
ipv6.h
ipv6_route.h
irq.h
irq_cpustat.h
irq_work.h irq_work.h: fix warning when CONFIG_IRQ_WORK=n 2013-03-22 16:41:19 -07:00
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
jbd.h
jbd2.h
jbd_common.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h
jz4740-adc.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kcmp.h
kconfig.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h printk: Provide a wake_up_klogd() off-case 2013-03-22 16:41:20 -07:00
kernel_stat.h
kernelcapi.h
kexec.h
key-type.h
key.h
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmalloc_sizes.h
kmemcheck.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_ns.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h ksm: remove old stable nodes more thoroughly 2013-02-23 17:50:19 -08:00
kthread.h
ktime.h
kvm_host.h KVM: Allow cross page reads and writes from cached translations. 2013-04-07 13:05:35 +03:00
kvm_para.h
kvm_types.h KVM: Allow cross page reads and writes from cached translations. 2013-04-07 13:05:35 +03:00
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
leds_pwm.h
lglock.h
lguest.h
lguest_launcher.h
libata.h
libfdt.h
libfdt_env.h
libps2.h
license.h
linkage.h
linux_logo.h
lis3lv02d.h
list.h list: Fix double fetch of pointer in hlist_entry_safe() 2013-03-14 13:18:30 -07:00
list_bl.h
list_nulls.h
list_sort.h
llc.h
llist.h
lockdep.h Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-02-22 19:25:09 -08:00
log2.h
loop.h
lp.h
lru_cache.h
lsm_audit.h
lzo.h
m48t86.h
mailbox.h
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h
memblock.h x86, ACPI, mm: Revert movablemem_map support 2013-03-02 09:34:39 -08:00
memcontrol.h mm: refactor inactive_file_is_low() to use get_lru_size() 2013-02-23 17:50:20 -08:00
memory.h
memory_hotplug.h memory-hotplug: export the function try_offline_node() 2013-02-23 17:50:13 -08:00
mempolicy.h
mempool.h
memstick.h
mg_disk.h
micrel_phy.h
migrate.h mm: remove offlining arg to migrate_pages 2013-02-23 17:50:19 -08:00
migrate_mode.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm.h Revert "mm: introduce VM_POPULATE flag to better deal with racy userspace programs" 2013-03-28 17:45:51 -07:00
mm_inline.h
mm_types.h mm: fold page->_last_nid into page->flags where possible 2013-02-23 17:50:17 -08:00
mman.h Revert "mm: introduce VM_POPULATE flag to better deal with racy userspace programs" 2013-03-28 17:45:51 -07:00
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: zone_end_pfn is too small 2013-03-22 16:41:20 -07:00
mnt_namespace.h
mod_devicetable.h
module.h
moduleloader.h
moduleparam.h
mount.h vfs: Add a mount flag to lock read only bind mounts 2013-03-27 07:50:04 -07:00
mpage.h
mpi.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h
msm_mdp.h
mutex-debug.h
mutex.h mutex: Queue mutex spinners with MCS lock to reduce cacheline contention 2013-04-19 09:33:36 +02:00
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mxm-wmi.h
mxsfb.h ARM: video: mxs: Fix mxsfb misconfiguring VDCTRL0 2013-03-19 11:07:58 +08:00
n_r3964.h
namei.h
nbd.h
net.h
netdev_features.h
netdevice.h net: count hw_addr syncs so that unsync works properly. 2013-04-05 00:18:46 -04:00
netfilter.h
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
nfs.h
nfs3.h
nfs4.h
nfs_fs.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_idmap.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h NFS client bugfixes for Linux 3.9 2013-03-02 16:46:07 -08:00
nfsacl.h
nilfs2_fs.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h
ntb.h
nubus.h
numa.h
nvme.h
nvram.h
nwpserial.h
nx842.h
of.h
of_address.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_i2c.h
of_iommu.h
of_irq.h
of_mdio.h
of_mtd.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
oid_registry.h
olpc-ec.h
omap-dma.h
omap-iommu.h
omapfb.h
oom.h
openvswitch.h
opp.h PM / OPP: fix condition for empty of_init_opp_table() 2013-02-23 00:30:08 +01:00
oprofile.h
oxu210hp.h
padata.h
page-debug-flags.h
page-flags-layout.h mm: fold page->_last_nid into page->flags where possible 2013-02-23 17:50:17 -08:00
page-flags.h
page-isolation.h mm: remove MIGRATE_ISOLATE check in hotpath 2013-02-23 17:50:15 -08:00
page_cgroup.h
pageblock-flags.h
pagemap.h mm: only enforce stable page writes if the backing device requires it 2013-02-21 17:22:19 -08:00
pagevec.h
parport.h
parport_pc.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h constify path_get/path_put and fs_struct.c stuff 2013-03-01 23:51:07 -05:00
pch_dma.h
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma.h
pci.h PCI: Add PCI ROM helper for platform-provided ROM images 2013-03-26 17:19:41 -06:00
pci_hotplug.h
pci_ids.h Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac 2013-02-28 20:42:33 -08:00
pcieport_if.h
pda_power.h
percpu-defs.h
percpu-rwsem.h
percpu.h
percpu_counter.h
perf_event.h perf,x86: fix link failure for non-Intel configs 2013-03-17 15:59:15 -07:00
perf_regs.h
personality.h
pfn.h
phonedev.h
phonet.h
phy.h
phy_fixed.h
pid.h hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
pid_namespace.h
pim.h
pipe_fs_i.h
pktcdvd.h
platform_device.h
plist.h
pm.h pm / runtime: introduce pm_runtime_set_memalloc_noio() 2013-02-23 17:50:16 -08:00
pm2301_charger.h
pm_clock.h
pm_domain.h
pm_qos.h
pm_runtime.h pm / runtime: introduce pm_runtime_set_memalloc_noio() 2013-02-23 17:50:16 -08:00
pm_wakeup.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix-clock.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
power_supply.h Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps_kernel.h
preempt.h
prefetch.h
printk.h printk: Provide a wake_up_klogd() off-case 2013-03-22 16:41:20 -07:00
prio_heap.h
proc_fs.h tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
profile.h
projid.h
proportions.h
pstore.h
pstore_ram.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptrace.h
pvclock_gtod.h
pwm.h pwm: Changes for v3.9-rc1 2013-02-26 09:34:29 -08:00
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h
range.h
ratelimit.h
rational.h
rbtree.h
rbtree_augmented.h
rculist.h hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
rculist_bl.h
rculist_nulls.h
rcupdate.h
rcutiny.h
rcutree.h
reboot.h
reciprocal_div.h
regmap.h
regset.h
relay.h
remoteproc.h
res_counter.h include/linux/res_counter.h needs errno.h 2013-03-13 15:21:44 -07:00
resource.h
resume-trace.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h mm/rmap: rename anon_vma_unlock() => anon_vma_unlock_write() 2013-02-23 17:50:17 -08:00
rndis.h
root_dev.h
rotary_encoder.h
rpmsg.h
rslib.h
rtc-ds2404.h
rtc-v3020.h
rtc.h Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
rtmutex.h
rtnetlink.h
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
scatterlist.h lib/scatterlist: use page iterator in the mapping iterator 2013-02-27 19:10:10 -08:00
scc.h
sched.h mutex: Move mutex spinning code from sched/core.c back to mutex.c 2013-04-19 09:33:34 +02:00
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdla.h
seccomp.h
securebits.h
security.h
selection.h
selinux.h
sem.h
semaphore.h
seq_file.h
seq_file_net.h
seqlock.h
serial.h
serial_8250.h
serial_core.h
serial_max3100.h
serial_mfd.h
serial_pnx8xxx.h
serial_sci.h
serio.h
sfi.h
sfi_acpi.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h
shrinker.h
signal.h Fix breakage in MIPS siginfo handling 2013-03-19 19:15:52 +01:00
signalfd.h
sirfsoc_dma.h
sizes.h
skbuff.h netfilter: don't reset nf_trace in nf_reset() 2013-04-05 15:38:10 -04:00
slab.h
slab_def.h
slob_def.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h smp: make smp_call_function_many() use logic similar to smp_call_function_single() 2013-02-21 17:22:20 -08:00
smpboot.h stop_machine: Mark per cpu stopper enabled early 2013-02-26 22:25:17 +01:00
smsc911x.h
smscphy.h
sock_diag.h
socket.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
srcu.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
ste_modem_shm.h
stmmac.h
stmp3xxx_rtc_wdt.h rtc: stmp3xxx: add wdt-accessor function 2013-03-01 12:40:36 +01:00
stmp_device.h
stop_machine.h
string.h
string_helpers.h
stringify.h
sungem_phy.h
sunserialcore.h
sunxi_timer.h
superhyway.h
suspend.h
svga.h
swab.h
swap.h vmscan: change type of vm_total_pages to unsigned long 2013-02-23 17:50:22 -08:00
swapfile.h
swapops.h
swiotlb.h
synclink.h
sys.h
sys_soc.h
syscalls.h
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
task_io_accounting.h
task_io_accounting_ops.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tegra-ahb.h
tegra-soc.h
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h thermal: shorten too long mcast group name 2013-03-20 17:56:58 -04:00
thread_info.h
threads.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time-armada-370-xp.h
time.h arm-soc: cleanups 2013-02-21 14:58:40 -08:00
timekeeper_internal.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h
toshiba.h
tpm.h
tpm_command.h
trace_clock.h
trace_seq.h
tracehook.h
tracepoint.h
transport_class.h
tsacct_kern.h
tty.h
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h
uaccess.h
ucb1400.h
udp.h udp: add encap_destroy callback 2013-03-20 12:10:38 -04:00
uidgid.h
uinput.h
uio.h
uio_driver.h
uprobes.h
usb.h
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h userns: Restrict when proc and sysfs can be mounted 2013-03-27 07:50:08 -07:00
uts.h
utsname.h
uuid.h
uwb.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
video_output.h
videodev2.h
virtio.h
virtio_config.h
virtio_console.h
virtio_mmio.h
virtio_ring.h
virtio_scsi.h
vlynq.h
vm_event_item.h mm: don't wait on congested zones in balance_pgdat() 2013-02-23 17:50:15 -08:00
vmalloc.h
vme.h
vmstat.h mm: numa: handle side-effects in count_vm_numa_events() for !CONFIG_NUMA_BALANCING 2013-02-23 17:50:16 -08:00
vmw_vmci_api.h
vmw_vmci_defs.h
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
wait.h
wanrouter.h
watchdog.h watchdog: core: dt: add support for the timeout-sec dt property 2013-03-01 12:48:36 +01:00
wireless.h
wl12xx.h
wm97xx.h
workqueue.h
writeback.h
xattr.h
xilinxfb.h
xz.h
yam.h
z2_battery.h
zconf.h
zlib.h
zorro.h
zorro_ids.h
zutil.h