Tom Herbert
fec5e652e5
rfs: Receive Flow Steering
...
This patch implements receive flow steering (RFS). RFS steers
received packets for layer 3 and 4 processing to the CPU where
the application for the corresponding flow is running. RFS is an
extension of Receive Packet Steering (RPS).
The basic idea of RFS is that when an application calls recvmsg
(or sendmsg) the application's running CPU is stored in a hash
table that is indexed by the connection's rxhash which is stored in
the socket structure. The rxhash is passed in skb's received on
the connection from netif_receive_skb. For each received packet,
the associated rxhash is used to look up the CPU in the hash table,
if a valid CPU is set then the packet is steered to that CPU using
the RPS mechanisms.
The convolution of the simple approach is that it would potentially
allow OOO packets. If threads are thrashing around CPUs or multiple
threads are trying to read from the same sockets, a quickly changing
CPU value in the hash table could cause rampant OOO packets--
we consider this a non-starter.
To avoid OOO packets, this solution implements two types of hash
tables: rps_sock_flow_table and rps_dev_flow_table.
rps_sock_table is a global hash table. Each entry is just a CPU
number and it is populated in recvmsg and sendmsg as described above.
This table contains the "desired" CPUs for flows.
rps_dev_flow_table is specific to each device queue. Each entry
contains a CPU and a tail queue counter. The CPU is the "current"
CPU for a matching flow. The tail queue counter holds the value
of a tail queue counter for the associated CPU's backlog queue at
the time of last enqueue for a flow matching the entry.
Each backlog queue has a queue head counter which is incremented
on dequeue, and so a queue tail counter is computed as queue head
count + queue length. When a packet is enqueued on a backlog queue,
the current value of the queue tail counter is saved in the hash
entry of the rps_dev_flow_table.
And now the trick: when selecting the CPU for RPS (get_rps_cpu)
the rps_sock_flow table and the rps_dev_flow table for the RX queue
are consulted. When the desired CPU for the flow (found in the
rps_sock_flow table) does not match the current CPU (found in the
rps_dev_flow table), the current CPU is changed to the desired CPU
if one of the following is true:
- The current CPU is unset (equal to RPS_NO_CPU)
- Current CPU is offline
- The current CPU's queue head counter >= queue tail counter in the
rps_dev_flow table. This checks if the queue tail has advanced
beyond the last packet that was enqueued using this table entry.
This guarantees that all packets queued using this entry have been
dequeued, thus preserving in order delivery.
Making each queue have its own rps_dev_flow table has two advantages:
1) the tail queue counters will be written on each receive, so
keeping the table local to interrupting CPU s good for locality. 2)
this allows lockless access to the table-- the CPU number and queue
tail counter need to be accessed together under mutual exclusion
from netif_receive_skb, we assume that this is only called from
device napi_poll which is non-reentrant.
This patch implements RFS for TCP and connected UDP sockets.
It should be usable for other flow oriented protocols.
There are two configuration parameters for RFS. The
"rps_flow_entries" kernel init parameter sets the number of
entries in the rps_sock_flow_table, the per rxqueue sysfs entry
"rps_flow_cnt" contains the number of entries in the rps_dev_flow
table for the rxqueue. Both are rounded to power of two.
The obvious benefit of RFS (over just RPS) is that it achieves
CPU locality between the receive processing for a flow and the
applications processing; this can result in increased performance
(higher pps, lower latency).
The benefits of RFS are dependent on cache hierarchy, application
load, and other factors. On simple benchmarks, we don't necessarily
see improvement and sometimes see degradation. However, for more
complex benchmarks and for applications where cache pressure is
much higher this technique seems to perform very well.
Below are some benchmark results which show the potential benfit of
this patch. The netperf test has 500 instances of netperf TCP_RR
test with 1 byte req. and resp. The RPC test is an request/response
test similar in structure to netperf RR test ith 100 threads on
each host, but does more work in userspace that netperf.
e1000e on 8 core Intel
No RFS or RPS 104K tps at 30% CPU
No RFS (best RPS config): 290K tps at 63% CPU
RFS 303K tps at 61% CPU
RPC test tps CPU% 50/90/99% usec latency Latency StdDev
No RFS/RPS 103K 48% 757/900/3185 4472.35
RPS only: 174K 73% 415/993/2468 491.66
RFS 223K 73% 379/651/1382 315.61
Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-04-16 16:01:27 -07:00
..
amba
ARM: 6003/1: removing compilation warning from pl061.h
2010-03-29 17:33:33 +01:00
byteorder
caif
net-caif: add CAIF socket and configuration headers
2010-03-30 19:08:44 -07:00
can
Fix some #includes in CAN drivers (rebased for net-next-2.6)
2010-04-13 03:32:42 -07:00
decompress
decompress: fix new decompressor for PIC
2010-03-12 15:52:44 -08:00
dvb
hdlc
i2c
mfd: Introduce remove_script function for twl4030
2010-03-07 22:17:32 +01:00
input
Input: sh_keysc - update the driver with mode 6
2010-02-10 23:04:18 -08:00
isdn
CAPI: Rework locking of controller data structures
2010-02-16 16:01:22 -08:00
lockd
mfd
mfd: Fix ucb1x00 build failure for collie_defconfig
2010-03-07 22:17:39 +01:00
mlx4
mmc
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
2010-04-15 16:21:34 -04:00
mtd
netfilter
netfilter: ctnetlink: fix reliable event delivery if message building fails
2010-03-20 14:29:03 -07:00
netfilter_arp
netfilter: xtables: replace XT_ENTRY_ITERATE macro
2010-02-24 18:32:59 +01:00
netfilter_bridge
netfilter_ipv4
netfilter: xtables: replace XT_MATCH_ITERATE macro
2010-02-24 18:34:48 +01:00
netfilter_ipv6
netfilter: xtables: replace XT_MATCH_ITERATE macro
2010-02-24 18:34:48 +01:00
nfsd
raid
regulator
regulator: enable max8649 regulator driver
2010-03-03 14:49:24 +00:00
rtc
spi
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
ssb
sunrpc
SUNRPC: Fix a use after free bug with the NFSv4.1 backchannel
2010-03-22 05:32:44 -04:00
tc_act
tc_ematch
unaligned
usb
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
uwb
wimax
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
8250_pci.h
a.out.h
ac97_codec.h
acct.h
sysctl extern cleanup: acct
2010-03-12 15:53:10 -08:00
acpi.h
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h
affs_hardblocks.h
agp_backend.h
agpgart.h
aio.h
aio_abi.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm-emulation.h
apm_bios.h
arcdevice.h
arcfb.h
async.h
async_tx.h
ata.h
libata: Fix accesses at LBA28 boundary (old bug, but nasty) (v2)
2010-04-08 12:53:57 -04:00
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.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
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h
Lose the first argument of audit_inode_child()
2010-02-08 14:38:36 -05:00
auto_dev-ioctl.h
auto_fs.h
auto_fs4.h
auxvec.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h
backlight: Allow properties to be passed at registration
2010-03-16 19:47:54 +00:00
baycom.h
bcd.h
bfs_fs.h
binfmts.h
coredump: pass mm->flags as a coredump parameter for consistency
2010-03-06 11:26:46 -08:00
bio.h
bit_spinlock.h
bitmap.h
bitops.h
bitops: remove temporary for_each_bit()
2010-04-07 08:38:01 -07:00
bitrev.h
blk-iopoll.h
blkdev.h
block: remove 16 bytes of padding from struct request on 64bits
2010-03-19 08:58:16 +01:00
blkpg.h
blktrace_api.h
percpu: add __percpu sparse annotations to core kernel subsystems
2010-02-17 11:17:38 +09:00
blockgroup_lock.h
bootmem.h
x86: Make 64 bit use early_res instead of bootmem before slab
2010-02-12 09:41:59 -08:00
bottom_half.h
bpqether.h
brcmphy.h
tg3: Push phylib definitions to phylib
2010-02-17 17:27:40 -08:00
bsg.h
btree-128.h
btree-type.h
btree.h
buffer_head.h
bug.h
c2port.h
cache.h
can.h
capability.h
capi.h
cb710.h
cciss_defs.h
cciss: Consolidate duplicate bits in cciss_cmd.h & cciss_ioctl.h
2010-02-22 13:44:45 +01:00
cciss_ioctl.h
cciss: Consolidate duplicate bits in cciss_cmd.h & cciss_ioctl.h
2010-02-22 13:44:45 +01:00
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
cgroup.h
cgroups: remove events before destroying subsystem state objects
2010-03-12 15:52:37 -08:00
cgroup_subsys.h
cgroupstats.h
chio.h
circ_buf.h
Document Linux's circular buffering capabilities
2010-03-24 16:31:22 -07:00
clk.h
clockchips.h
clockevents: Sanitize min_delta_ns adjustment and prevent overflows
2010-03-12 19:10:29 +01:00
clocksource.h
cm4000_cs.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_psdev.h
coff.h
com20020.h
compat.h
Add generic sys_old_select()
2010-03-12 15:52:32 -08:00
compiler-gcc.h
compiler-gcc3.h
compiler-gcc4.h
compiler-intel.h
compiler.h
completion.h
comstats.h
concap.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
const.h
coredump.h
coredump: plug a memory leak situation on dump_seek()
2010-03-12 15:52:32 -08:00
cpu.h
cpufreq.h
cpuidle.h
cpumask.h
cpumask: let num_*_cpus() function always return unsigned values
2010-03-06 11:26:29 -08:00
cpuset.h
cramfs_fs.h
cramfs_fs_sb.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc7.h
crc16.h
crc32.h
crc32c.h
cred.h
rcu: Use wrapper function instead of exporting tasklist_lock
2010-03-04 11:46:14 +01:00
crypto.h
cryptohash.h
cs5535.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
davinci_emac.h
dca.h
dcache.h
dcbnl.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
device-mapper.h
dm table: remove unused dm_get_device range parameters
2010-03-06 02:32:27 +00:00
device.h
Driver core: create lock/unlock functions for struct device
2010-03-07 17:04:52 -08:00
device_cgroup.h
devpts_fs.h
dio.h
dirent.h
display.h
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-dirty-log.h
dm-io.h
dm: eliminate some holes data structures
2010-03-06 02:32:33 +00:00
dm-ioctl.h
dm ioctl: introduce flag indicating uevent was generated
2010-03-06 02:32:31 +00:00
dm-kcopyd.h
dm-log-userspace.h
dm-region-hash.h
dm9000.h
dma-attrs.h
dma-debug.h
dma-mapping.h
dma-mapping: dma-mapping.h: add dma_set_coherent_mask
2010-03-12 15:52:42 -08:00
dma_remapping.h
dmaengine.h
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
2010-03-04 08:20:14 -08:00
dmapool.h
dmar.h
dmi.h
dn.h
dnotify.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
drbd.h
drbd: --dry-run option for drbdsetup net ( drbdadm -- --dry-run connect <res> )
2010-03-11 15:51:23 +01:00
drbd_limits.h
drbd_nl.h
drbd: Renamed overwrite_peer to primary_force
2010-03-11 16:32:14 +01:00
drbd_tag_magic.h
ds1286.h
ds17287rtc.h
dtlk.h
dw_dmac.h
dynamic_debug.h
early_res.h
early_res: Add free_early_partial()
2010-02-26 08:25:35 +01:00
edac.h
edd.h
eeprom_93cx6.h
efi.h
efs_fs_sb.h
efs_vh.h
eisa.h
elevator.h
elf-em.h
elf-fdpic.h
elf.h
elf coredump: add extended numbering support
2010-03-06 11:26:46 -08:00
elfcore-compat.h
elfcore.h
elf coredump: add extended numbering support
2010-03-06 11:26:46 -08:00
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
net: fix ethtool coding style errors and warnings
2010-04-07 21:54:42 -07:00
eventfd.h
eventpoll.h
exportfs.h
commit_metadata export operation replacing nfsd_sync_dir
2010-02-20 13:13:44 -08:00
ext2_fs.h
ext2_fs_sb.h
ext3_fs.h
ext3: fix broken handling of EXT3_STATE_NEW
2010-03-29 14:30:19 -07:00
ext3_fs_i.h
ext3: fix broken handling of EXT3_STATE_NEW
2010-03-29 14:30:19 -07:00
ext3_fs_sb.h
ext3_jbd.h
f75375s.h
fadvise.h
falloc.h
fault-inject.h
failslab: add ability to filter slab caches
2010-02-26 19:19:39 +02:00
fb.h
vga_switcheroo: initial implementation (v15)
2010-03-01 16:20:37 +10:00
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdreg.h
fdtable.h
vfs: Abstract rcu_dereference_check for files-fdtable use
2010-02-25 10:34:49 +01:00
fib_rules.h
ipv4: ipmr: support multiple tables
2010-04-13 14:49:34 -07:00
fiemap.h
file.h
filter.h
fips.h
firewire-cdev.h
firewire: cdev: increment ABI version number
2010-02-24 20:36:55 +01:00
firewire-constants.h
firewire.h
firmware-map.h
memory-hotplug: create /sys/firmware/memmap entry for new memory
2010-03-06 11:26:25 -08:00
firmware.h
flat.h
flex_array.h
font.h
freezer.h
Freezer: Fix buggy resume test for tasks frozen with cgroup freezer
2010-03-26 23:51:44 +01:00
fs.h
vfs: rename block_fsync() to blkdev_fsync()
2010-04-07 08:38:04 -07:00
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h
SLOW_WORK: CONFIG_SLOW_WORK_PROC should be CONFIG_SLOW_WORK_DEBUG
2010-03-29 09:14:47 -07:00
fscache.h
fsl_devices.h
fsnotify.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
fsnotify_backend.h
ftrace.h
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2010-02-28 10:20:25 -08:00
ftrace_event.h
perf: Drop the obsolete profile naming for trace events
2010-03-10 14:47:18 +01:00
ftrace_irq.h
fuse.h
futex.h
gameport.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
gcd.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h
netlink: Export genl_lock() API for use by modules
2010-04-03 14:56:05 -07:00
genhd.h
Remove GENHD_FL_DRIVERFS
2010-03-16 08:55:32 +01:00
getcpu.h
gfp.h
mm: add comment about deprecation of __GFP_NOFAIL
2010-03-06 11:26:27 -08:00
gfs2_ondisk.h
GFS2: Remove old, unused linked list code from quota
2010-03-01 14:08:10 +00:00
gigaset_dev.h
gpio.h
gpio_keys.h
gpio_mouse.h
hardirq.h
hash.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h
hid-debug.h
hid.h
Merge branches 'upstream', 'raw_report_modifications' and 'apple_magic_mouse' into for-linus
2010-02-25 17:39:16 +01:00
hiddev.h
hidraw.h
highmem.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/xfs-vipt
2010-02-26 17:05:10 -08:00
highuid.h
hil.h
tree-wide: Assorted spelling fixes
2010-02-09 11:13:56 +01:00
hil_mlc.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
mfd: Add HTCPLD driver
2010-03-07 22:17:09 +01:00
htirq.h
hugetlb.h
hw_breakpoint.h
percpu: Add __percpu sparse annotations to hw_breakpoint
2010-02-27 16:23:39 +01:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hysdn_if.h
i2c-algo-bit.h
i2c-algo-bit: Add pre- and post-xfer hooks
2010-03-13 20:56:56 +01:00
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-id.h
i2c-ocores.h
i2c-pca-platform.h
i2c-pnx.h
ARM: PNX4008: move i2c_adapter structure inside the drivers private data
2010-02-12 17:32:41 +00:00
i2c-pxa.h
i2c-smbus.h
i2c: Add SMBus alert support
2010-03-02 12:23:42 +01:00
i2c-xiic.h
Add the platform data include for the Xilinx XPS IIC Bus Interface
2010-03-14 11:14:58 -07:00
i2c.h
i2c: Document the message size limit
2010-03-02 12:23:49 +01:00
i2o-dev.h
i2o.h
i2o: Remove the dangerous kobj_to_i2o_device macro
2010-03-24 08:20:03 +01:00
i8k.h
i7300_idle.h
i8042.h
i82593.h
ibmtr.h
icmp.h
icmpv6.h
ipv6: drop unused "dev" arg of icmpv6_send()
2010-02-18 14:30:17 -08:00
ide.h
ide: Requeue request after DMA timeout
2010-04-01 01:31:13 -07:00
idr.h
ieee80211.h
mac80211: Moved mesh action codes to a more visible location
2010-04-08 15:24:07 -04:00
if.h
if_addr.h
if_addrlabel.h
if_arcnet.h
if_arp.h
net-caif: add CAIF protocol definitions
2010-03-30 19:08:43 -07:00
if_bonding.h
if_bridge.h
if_cablemodem.h
if_ec.h
if_eql.h
if_ether.h
net-caif: add CAIF protocol definitions
2010-03-30 19:08:43 -07:00
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h
net: core: add IFLA_STATS64 support
2010-03-16 21:23:22 -07:00
if_ltalk.h
if_macvlan.h
net/macvtap: add vhost support
2010-02-18 14:08:38 -08:00
if_packet.h
packet: support for TX time stamps on RAW sockets
2010-04-13 01:30:48 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
l2tp: Update PPP-over-L2TP driver to work over L2TPv3
2010-04-03 14:56:04 -07:00
if_pppox.h
l2tp: Update PPP-over-L2TP driver to work over L2TPv3
2010-04-03 14:56:04 -07:00
if_slip.h
if_strip.h
if_tr.h
if_tun.h
tun: socket filter support
2010-02-17 16:35:17 -08:00
if_tunnel.h
if_tunnel.h: add missing ams/byteorder.h include
2010-03-21 21:19:02 -07:00
if_vlan.h
igmp.h
ihex.h
ima.h
in.h
in6.h
in_route.h
inet.h
inet_diag.h
inet_lro.h
inetdevice.h
net ipv4: Decouple ipv4 interface parameters from binary sysctl numbers
2010-02-16 15:55:17 -08:00
init.h
init_ohci1394_dma.h
init_task.h
nsproxy: remove INIT_NSPROXY()
2010-03-12 15:52:40 -08:00
initrd.h
inotify.h
input-polldev.h
input.h
Input: scancode in get/set_keycodes should be unsigned
2010-03-08 23:19:15 -08:00
intel-iommu.h
interrupt.h
io-mapping.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
io.h
ioc3.h
ioc4.h
iocontext.h
cgroups: blkio subsystem as module
2010-03-12 15:52:36 -08:00
ioctl.h
iommu-helper.h
iommu.h
ioport.h
resources: add interfaces that return conflict information
2010-03-23 13:33:50 -07:00
ioprio.h
iova.h
ip.h
ip6_tunnel.h
ip_vs.h
ipc.h
ipc_namespace.h
nsproxy: remove INIT_NSPROXY()
2010-03-12 15:52:40 -08:00
ipmi.h
ipmi_msgdefs.h
ipmi_smi.h
ipmi: remove ipmi_smi.h self-include
2010-03-12 15:52:40 -08:00
ipsec.h
ipv6.h
ipv6_route.h
ipx.h
irda.h
irq.h
Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2010-03-03 08:15:37 -08:00
irq_cpustat.h
irqflags.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_ibft.h
ibft, x86: Change reserve_ibft_region() to find_ibft_region()
2010-04-01 16:12:48 -07:00
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ivtv.h
ivtvfb.h
ixjuser.h
jbd.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
jbd2.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
Kbuild
Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux
2010-03-02 10:41:26 -08:00
kbuild.h
kd.h
kdebug.h
kdev_t.h
kernel-page-flags.h
kernel.h
kernel.h: fix wrong usage of __ratelimit()
2010-04-07 08:38:04 -07:00
kernel_stat.h
kernelcapi.h
CAPI: Rework controller state notifier
2010-02-16 16:01:21 -08:00
kexec.h
percpu: add __percpu sparse annotations to core kernel subsystems
2010-02-17 11:17:38 +09:00
key-type.h
key.h
keyboard.h
keyctl.h
kfifo.h
include/linux/kfifo.h: fix INIT_KFIFO()
2010-04-07 08:38:02 -07:00
kgdb.h
klist.h
kmalloc_sizes.h
kmemcheck.h
kmemleak.h
kmemtrace.h
kmod.h
sysctl extern cleanup: module
2010-03-12 15:53:10 -08:00
kmsg_dump.h
kobj_map.h
kobject.h
Driver core: Constify struct sysfs_ops in struct kobj_type
2010-03-07 17:04:49 -08:00
kprobes.h
kprobes: Jump optimization sysctl interface
2010-02-25 17:49:25 +01:00
kref.h
ks0108.h
ksm.h
kthread.h
ktime.h
kvm.h
KVM: x86: Add KVM_CAP_X86_ROBUST_SINGLESTEP
2010-03-01 12:36:14 -03:00
kvm_host.h
KVM: Convert kvm->requests_lock to raw_spinlock_t
2010-03-01 12:36:13 -03:00
kvm_para.h
kvm_types.h
l2tp.h
l2tp: Add netlink control API for L2TP
2010-04-03 14:56:05 -07:00
lapb.h
latencytop.h
lcd.h
lcm.h
block: Fix overrun in lcm() and move it to lib
2010-03-15 12:47:59 +01:00
leds-bd2802.h
leds-lp3944.h
leds-pca9532.h
leds-regulator.h
leds.h
leds_pwm.h
lguest.h
lguest_launcher.h
libata.h
libata: unlock HPA if device shrunk
2010-04-06 10:55:33 -04:00
libps2.h
license.h
limits.h
linkage.h
linux_logo.h
lis3lv02d.h
list.h
lib: fix first line of kernel-doc for a few functions
2010-03-06 11:26:35 -08:00
list_nulls.h
list_sort.h
llc.h
lmb.h
lockdep.h
sysctl extern cleanup: lockdep
2010-03-12 15:53:10 -08:00
log2.h
loop.h
lp.h
lru_cache.h
tree-wide: Assorted spelling fixes
2010-02-09 11:13:56 +01:00
lsm_audit.h
lzo.h
m48t86.h
magic.h
switch inotify_user to anon_inode
2010-02-19 03:35:12 -05:00
major.h
map_to_7segment.h
maple.h
math64.h
matroxfb.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mdio-bitbang.h
mdio-gpio.h
mdio.h
memcontrol.h
memcg: fix oom kill behavior
2010-03-12 15:52:38 -08:00
memory.h
memory hotplug: allow setting of phys_device
2010-03-17 18:43:47 -07:00
memory_hotplug.h
mempolicy.h
mempool.h
memstick.h
meye.h
mg_disk.h
migrate.h
mii.h
minix_fs.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm.h
pagemap: fix pfn calculation for hugepage
2010-04-07 08:38:04 -07:00
mm_inline.h
mm_types.h
nommu: fix build breakage
2010-03-12 15:52:28 -08:00
mman.h
mmdebug.h
mmiotrace.h
mmtimer.h
mmu_context.h
mmu_notifier.h
mmzone.h
Merge branch 'for-next' into for-linus
2010-03-08 16:55:37 +01:00
mnt_namespace.h
take check for new events in namespace (guts of mounts_poll()) to namespace.c
2010-03-03 14:07:59 -05:00
mod_devicetable.h
phylib: Support phy module autoloading
2010-04-02 14:30:39 -07:00
module.h
Fix up possibly racy module refcounting
2010-04-05 19:50:02 -07:00
moduleloader.h
moduleparam.h
mount.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
2010-03-04 08:15:33 -08:00
mpage.h
mqueue.h
mroute.h
ipv4: ipmr: support multiple tables
2010-04-13 14:49:34 -07:00
mroute6.h
msdos_fs.h
fat: Fix stat->f_namelen
2010-02-10 23:49:08 +09:00
msg.h
msi.h
mtio.h
mutex-debug.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
n_r3964.h
namei.h
nbd.h
ncp.h
ncp_fs.h
ncp_fs_i.h
ncp_fs_sb.h
ncp_mount.h
ncp_no.h
neighbour.h
net.h
net_dropmon.h
net_tstamp.h
netdevice.h
rfs: Receive Flow Steering
2010-04-16 16:01:27 -07:00
netfilter.h
netfilter: restore POST_ROUTING hook in NF_HOOK_COND
2010-02-19 08:03:28 +01:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter: ip6table_raw: fix table priority
2010-03-25 11:17:26 +01:00
netlink.h
netlink: fix NETLINK_RECV_NO_ENOBUFS in netlink_set_err()
2010-03-20 14:29:03 -07:00
netpoll.h
netrom.h
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_acl.h
nfs4_mount.h
nfs_fs.h
NFS: Remove requirement for inode->i_mutex from nfs_invalidate_mapping
2010-03-05 15:44:56 -05:00
nfs_fs_i.h
nfs_fs_sb.h
Merge branch 'writeback-for-2.6.34' into nfs-for-2.6.34
2010-03-05 15:46:18 -05:00
nfs_idmap.h
nfs_iostat.h
nfs_mount.h
nfs_page.h
nfs_xdr.h
nfsacl.h
nfsd_idmap.h
nilfs2_fs.h
nilfs2: issue discard request after cleaning segments
2010-02-13 12:26:02 +09:00
nl80211.h
cfg80211: Add local-state-change-only auth/deauth/disassoc
2010-04-07 14:37:56 -04:00
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
nodemask: fix the declaration of NODEMASK_ALLOC()
2010-03-12 15:52:38 -08:00
notifier.h
net: rtnetlink: ignore NETDEV_PRE_TYPE_CHANGE in rtnetlink_event()
2010-03-21 18:31:34 -07:00
nsc_gpio.h
nsproxy.h
nubus.h
numa.h
nvram.h
nwpserial.h
of.h
of: Fix comparison of "compatible" properties
2010-03-18 07:30:31 -06:00
of_device.h
of_fdt.h
of/flattree: Don't assume HAVE_LMB
2010-02-14 07:13:47 -07:00
of_gpio.h
of_i2c.h
of_mdio.h
of_platform.h
of_spi.h
omapfb.h
OMAP: DSS2: OMAPFB: implement OMAPFB_GET_DISPLAY_INFO
2010-02-15 15:14:34 +02:00
oom.h
oprofile.h
oxu210hp.h
padata.h
page-debug-flags.h
page-flags.h
page-isolation.h
page_cgroup.h
memcg: fix race in file_mapped accounting
2010-04-07 08:38:05 -07:00
pageblock-flags.h
pagemap.h
pagevec.h
param.h
parport.h
parport_pc.h
parser.h
patchkey.h
path.h
pci-acpi.h
PCI / ACPI / PM: Platform support for PCI PME wake-up
2010-02-22 16:21:02 -08:00
pci-aspm.h
pci-dma.h
dma-mapping.h: add the dma_unmap state API
2010-03-12 15:52:42 -08:00
pci.h
dma-mapping: pci: move pci_set_dma_mask and pci_set_consistent_dma_mask to pci-dma-compat.h
2010-03-12 15:52:42 -08:00
pci_hotplug.h
PCI: Make current and maximum bus speeds part of the PCI core
2010-02-22 16:15:17 -08:00
pci_ids.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6
2010-03-03 08:47:22 -08:00
pci_regs.h
x86/PCI: Moorestown PCI support
2010-02-23 23:14:47 -08:00
pcieport_if.h
pda_power.h
percpu-defs.h
percpu.h
Merge branch 'slabh' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc
2010-04-05 09:39:11 -07:00
percpu_counter.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu
2010-03-03 07:34:18 -08:00
perf_event.h
perf: Use hot regs with software sched switch/migrate events
2010-04-01 08:26:31 +02:00
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h
phonedev.h
phonet.h
phy.h
phylib: Support phy module autoloading
2010-04-02 14:30:39 -07:00
phy_fixed.h
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h
pktcdvd.h
pktcdvd: use BIO list management functions
2010-02-24 08:30:08 +01:00
platform_device.h
Driver core: make struct platform_driver.id_table const
2010-03-07 17:04:49 -08:00
plist.h
pm.h
PM: Provide generic subsystem-level callbacks
2010-03-06 21:28:37 +01:00
pm_qos_params.h
pm_runtime.h
PM: Provide generic subsystem-level callbacks
2010-03-06 21:28:37 +01:00
pm_wakeup.h
pmu.h
pnp.h
poison.h
poll.h
sysctl extern cleanup: poll
2010-03-12 15:53:11 -08:00
posix-timers.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
power_supply.h
ppdev.h
ppp-comp.h
ppp_channel.h
ppp: Add ppp_dev_name() exported function
2010-04-03 14:56:02 -07:00
ppp_defs.h
pps.h
pps_kernel.h
prctl.h
preempt.h
prefetch.h
prio_heap.h
prio_tree.h
proc_fs.h
profile.h
proportions.h
ptrace.h
ptrace: move user_enable_single_step & co prototypes to linux/ptrace.h
2010-03-12 15:52:38 -08:00
pwm.h
pwm_backlight.h
qnx4_fs.h
qnxtypes.h
quicklist.h
quota.h
quota: stop using QUOTA_OK / NO_QUOTA
2010-03-05 00:20:31 +01:00
quotaops.h
dquot: cleanup dquot initialize routine
2010-03-05 00:20:30 +01:00
radeonfb.h
radix-tree.h
radix_tree_tag_get() is not as safe as the docs make out [ver #2 ]
2010-04-09 10:12:03 -07:00
raid_class.h
[SCSI] mpt2sas: Added raid transport support
2010-02-08 18:19:41 -06:00
ramfs.h
random.h
range.h
x86/pci: Add cap_resource()
2010-02-10 17:47:17 -08:00
ratelimit.h
rational.h
raw.h
rbtree.h
doc: fix typo in comment explaining rb_tree usage
2010-02-25 11:45:20 +01:00
rculist.h
IPv6: convert addrconf hash list to RCU
2010-03-20 15:44:35 -07:00
rculist_nulls.h
rcu: Disable lockdep checking in RCU list-traversal primitives
2010-02-25 09:41:02 +01:00
rcupdate.h
rcu: Fix local_irq_disable() CONFIG_PROVE_RCU=y false positives
2010-03-18 21:25:32 +01:00
rcutiny.h
rcu: Make rcu_read_lock_sched_held() take boot time into account
2010-02-26 08:20:46 +01:00
rcutree.h
rcu: Make rcu_read_lock_sched_held() take boot time into account
2010-02-26 08:20:46 +01:00
rds.h
reboot.h
sysctl extern cleanup: C_A_D
2010-03-12 15:52:44 -08:00
reciprocal_div.h
regset.h
reiserfs_acl.h
reiserfs_fs.h
pass writeback_control to ->write_inode
2010-03-05 13:25:52 -05:00
reiserfs_fs_i.h
reiserfs_fs_sb.h
reiserfs_xattr.h
reiserfs: fix oops while creating privroot with selinux enabled
2010-03-24 16:31:21 -07:00
relay.h
res_counter.h
resource.h
resume-trace.h
PM: Asynchronous suspend and resume of devices
2010-02-26 20:39:09 +01:00
rfkill.h
rfkill: Add support for KEY_RFKILL
2010-03-02 14:28:49 -05:00
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
vmscan: detect mapped file pages used only once
2010-03-06 11:26:27 -08:00
romfs_fs.h
root_dev.h
rose.h
rotary_encoder.h
route.h
rslib.h
rtc-v3020.h
rtc.h
rtc/hctosys: only claim the RTC provided the system time if it did
2010-03-12 15:52:28 -08:00
rtmutex.h
sysctl extern cleanup: rtmutex
2010-03-12 15:53:10 -08:00
rtnetlink.h
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
2010-02-28 19:23:06 -08:00
rwlock.h
locking: Make sparse work with inline spinlocks and rwlocks
2010-03-13 01:21:21 +01:00
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
sc26198.h
scatterlist.h
scc.h
sched.h
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2010-03-13 14:43:01 -08:00
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdla.h
seccomp.h
securebits.h
security.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
selection.h
selinux.h
selinux_netlink.h
sem.h
semaphore.h
seq_file.h
seq_file: add RCU versions of new hlist/list iterators (v3)
2010-02-22 15:45:54 -08:00
seq_file_net.h
seqlock.h
serial.h
serial167.h
serial_8250.h
serial_core.h
pps: serial clients support
2010-03-12 15:52:43 -08:00
serial_max3100.h
serial_pnx8xxx.h
serial_reg.h
serial_sci.h
serial: sh-sci: Fix build failure for non-sh architectures.
2010-03-10 11:55:05 +09:00
serialP.h
serio.h
sfi.h
sfi_acpi.h
sh_intc.h
sh: extend INTC with force_disable
2010-02-16 13:38:56 +09:00
sh_pfc.h
sh_timer.h
shm.h
shmem_fs.h
sht15.h
signal.h
sysctl extern cleanup: signal
2010-03-12 15:52:44 -08:00
signalfd.h
skbuff.h
skbuff: remove unused dev_consume_skb macro definition
2010-04-13 02:58:24 -07:00
slab.h
slab: Generify kernel pointer validation
2010-04-09 10:09:50 -07:00
slab_def.h
slob_def.h
slow-work.h
slub_def.h
sm501-regs.h
sm501.h
smb.h
smb_fs.h
smb_fs_i.h
smb_fs_sb.h
smb_mount.h
smbno.h
smc91x.h
smc911x.h
smp.h
smp: fix documentation in include/linux/smp.h
2010-03-06 11:26:32 -08:00
smp_lock.h
smsc911x.h
snmp.h
icmp: Account for ICMP out errors
2010-04-03 15:09:04 -07:00
socket.h
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2010-04-06 23:53:30 -07:00
sockios.h
som.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
locking: Make sparse work with inline spinlocks and rwlocks
2010-03-13 01:21:21 +01:00
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
srcu.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu
2010-03-03 07:34:18 -08:00
stackprotector.h
stacktrace.h
stallion.h
start_kernel.h
stat.h
statfs.h
stddef.h
stmmac.h
stmmac: new descriptor field for the driver's platform
2010-04-14 04:49:51 -07:00
stop_machine.h
string.h
string_helpers.h
stringify.h
superhyway.h
suspend.h
suspend_ioctls.h
svga.h
swab.h
swap.h
memcg: move charges of anonymous swap
2010-03-12 15:52:36 -08:00
swapops.h
swiotlb.h
synclink.h
sys.h
syscalls.h
Fix up prototype for sys_ipc breakage
2010-03-22 13:12:33 -07:00
sysctl.h
net neigh: Decouple per interface neighbour table controls from binary sysctls
2010-02-16 15:55:18 -08:00
sysdev.h
sysdev: Add sysdev_create/remove_files
2010-03-07 17:04:47 -08:00
sysfs.h
sysfs: fix for thinko with sysfs_bin_attr_init()
2010-03-07 17:04:52 -08:00
syslog.h
sysrq.h
sysv_fs.h
task_io_accounting.h
task_io_accounting_ops.h
taskstats.h
taskstats_kern.h
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
tboot.h
tc.h
tcp.h
net: TCP thin dupack
2010-02-18 15:43:09 -08:00
telephony.h
termios.h
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
thread_info.h
threads.h
tick.h
tifm.h
timb_gpio.h
time.h
timecompare.h
timer.h
timerfd.h
timeriomem-rng.h
times.h
timex.h
tiocl.h
tipc.h
TIPC: Updated topology subscription protocol according to latest spec
2010-04-06 19:50:19 -07:00
tipc_config.h
topology.h
toshiba.h
tpm.h
trace_clock.h
trace_seq.h
tracehook.h
tracepoint.h
rcu: Fix tracepoints & lockdep false positive
2010-03-16 10:10:40 +01:00
transport_class.h
trdevice.h
tsacct_kern.h
tty.h
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2010-04-06 23:53:30 -07:00
tty_driver.h
tty_flip.h
USB: tty: Add a function to insert a string of characters with the same flag
2010-03-02 14:55:11 -08:00
tty_ldisc.h
ldisc: new dcd_change() method for line disciplines
2010-03-12 15:52:43 -08:00
typecheck.h
types.h
uaccess.h
ucb1400.h
udf_fs_i.h
udp.h
uinput.h
uio.h
uio_driver.h
ultrasound.h
un.h
unistd.h
usb.h
USB: Fix usb_fill_int_urb for SuperSpeed devices
2010-03-19 07:24:23 -07:00
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h
utime.h
uts.h
utsname.h
uwb.h
vermagic.h
veth.h
vfs.h
vga_switcheroo.h
vga_switcheroo: fix build on platforms with no ACPI
2010-03-01 22:21:58 +11:00
vgaarb.h
vhost.h
via.h
video_output.h
videodev.h
videodev2.h
V4L/DVB (14003): gspca_cpai1: New gspca subdriver for CPIA CPiA version 1 cams
2010-02-26 15:10:40 -03:00
videotext.h
virtio.h
net/9p: Add sysfs mount_tag file for virtio 9P device
2010-03-13 08:57:29 -06:00
virtio_9p.h
net/9p: Use the tag name in the config space for identifying mount point
2010-03-13 08:57:28 -06:00
virtio_balloon.h
virtio: Add memory statistics reporting to the balloon driver (V4)
2010-02-24 14:22:08 +10:30
virtio_blk.h
virtio_blk: add block topology support
2010-02-24 14:22:26 +10:30
virtio_config.h
virtio_console.h
virtio: disable multiport console support.
2010-04-08 09:46:19 +09:30
virtio_ids.h
virtio_net.h
virtio_pci.h
virtio_ring.h
virtio_rng.h
vlynq.h
vmalloc.h
vmstat.h
vt.h
Revert "tty: Add a new VT mode which is like VT_PROCESS but doesn't require a VT_RELDISP ioctl call"
2010-03-19 07:17:52 -07:00
vt_buffer.h
vt_kern.h
w1-gpio.h
wait.h
wanrouter.h
watchdog.h
wimax.h
wireless.h
wireless.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for range check
2010-03-23 16:50:26 -04:00
wlp.h
wm97xx.h
wm97xx_batt.h
workqueue.h
writeback.h
vfs: improve writeback_inodes_wb()
2010-03-12 10:03:42 +01:00
x25.h
xattr.h
xfrm.h
xfrm: introduce basic mark infrastructure
2010-02-22 16:19:45 -08:00
xilinxfb.h
yam.h
zconf.h
zlib.h
zorro.h
zorro_ids.h
zutil.h