twx-linux/include/linux
Christoph Lameter dfb4f09609 SLUB: Avoid page struct cacheline bouncing due to remote frees to cpu slab
A remote free may access the same page struct that also contains the lockless
freelist for the cpu slab. If objects have a short lifetime and are freed by
a different processor then remote frees back to the slab from which we are
currently allocating are frequent. The cacheline with the page struct needs
to be repeately acquired in exclusive mode by both the allocating thread and
the freeing thread. If this is frequent enough then performance will suffer
because of cacheline bouncing.

This patchset puts the lockless_freelist pointer in its own cacheline. In
order to make that happen we introduce a per cpu structure called
kmem_cache_cpu.

Instead of keeping an array of pointers to page structs we now keep an array
to a per cpu structure that--among other things--contains the pointer to the
lockless freelist. The freeing thread can then keep possession of exclusive
access to the page struct cacheline while the allocating thread keeps its
exclusive access to the cacheline containing the per cpu structure.

This works as long as the allocating cpu is able to service its request
from the lockless freelist. If the lockless freelist runs empty then the
allocating thread needs to acquire exclusive access to the cacheline with
the page struct lock the slab.

The allocating thread will then check if new objects were freed to the per
cpu slab. If so it will keep the slab as the cpu slab and continue with the
recently remote freed objects. So the allocating thread can take a series
of just freed remote pages and dish them out again. Ideally allocations
could be just recycling objects in the same slab this way which will lead
to an ideal allocation / remote free pattern.

The number of objects that can be handled in this way is limited by the
capacity of one slab. Increasing slab size via slub_min_objects/
slub_max_order may increase the number of objects and therefore performance.

If the allocating thread runs out of objects and finds that no objects were
put back by the remote processor then it will retrieve a new slab (from the
partial lists or from the page allocator) and start with a whole
new set of objects while the remote thread may still be freeing objects to
the old cpu slab. This may then repeat until the new slab is also exhausted.
If remote freeing has freed objects in the earlier slab then that earlier
slab will now be on the partial freelist and the allocating thread will
pick that slab next for allocation. So the loop is extended. However,
both threads need to take the list_lock to make the swizzling via
the partial list happen.

It is likely that this kind of scheme will keep the objects being passed
around to a small set that can be kept in the cpu caches leading to increased
performance.

More code cleanups become possible:

- Instead of passing a cpu we can now pass a kmem_cache_cpu structure around.
  Allows reducing the number of parameters to various functions.
- Can define a new node_match() function for NUMA to encapsulate locality
  checks.

Effect on allocations:

Cachelines touched before this patch:

	Write:	page cache struct and first cacheline of object

Cachelines touched after this patch:

	Write:	kmem_cache_cpu cacheline and first cacheline of object
	Read: page cache struct (but see later patch that avoids touching
		that cacheline)

The handling when the lockless alloc list runs empty gets to be a bit more
complicated since another cacheline has now to be written to. But that is
halfway out of the hot path.

Effect on freeing:

Cachelines touched before this patch:

	Write: page_struct and first cacheline of object

Cachelines touched after this patch depending on how we free:

  Write(to cpu_slab):	kmem_cache_cpu struct and first cacheline of object
  Write(to other):	page struct and first cacheline of object

  Read(to cpu_slab):	page struct to id slab etc. (but see later patch that
  			avoids touching the page struct on free)
  Read(to other):	cpu local kmem_cache_cpu struct to verify its not
  			the cpu slab.

Summary:

Pro:
	- Distinct cachelines so that concurrent remote frees and local
	  allocs on a cpuslab can occur without cacheline bouncing.
	- Avoids potential bouncing cachelines because of neighboring
	  per cpu pointer updates in kmem_cache's cpu_slab structure since
	  it now grows to a cacheline (Therefore remove the comment
	  that talks about that concern).

Cons:
	- Freeing objects now requires the reading of one additional
	  cacheline. That can be mitigated for some cases by the following
	  patches but its not possible to completely eliminate these
	  references.

	- Memory usage grows slightly.

	The size of each per cpu object is blown up from one word
	(pointing to the page_struct) to one cacheline with various data.
	So this is NR_CPUS*NR_SLABS*L1_BYTES more memory use. Lets say
	NR_SLABS is 100 and a cache line size of 128 then we have just
	increased SLAB metadata requirements by 12.8k per cpu.
	(Another later patch reduces these requirements)

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16 09:43:01 -07:00
..
amba
byteorder
dvb V4L/DVB (5893): DVB: fix includes of video.h when __KERNEL__ is undefined 2007-07-30 16:26:27 -03:00
hdlc
isdn
lockd knfsd: lockd: nfsd4: use same grace period for lockd and nfsd4 2007-07-17 10:23:07 -07:00
mlx4 IB/mlx4: Implement FMRs 2007-10-09 19:59:16 -07:00
mmc mmc: add led trigger 2007-09-24 07:15:48 +02:00
mtd [MTD] [NOR] fix ctrl-alt-del can't reboot for intel flash bug 2007-10-13 14:36:18 +01:00
netfilter [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_arp [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_bridge [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_ipv4 [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_ipv6 [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
nfsd knfsd: 64 bit ino support for NFS server 2007-10-09 18:31:57 -04:00
raid [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
rtc rtc: add support for the ST M48T59 RTC 2007-07-17 10:23:09 -07:00
spi mmc_spi host driver 2007-09-23 22:17:27 +02:00
ssb [SSB]: add Sonics Silicon Backplane bus support 2007-10-10 16:51:36 -07:00
sunrpc Merge git://git.linux-nfs.org/pub/linux/nfs-2.6 2007-10-15 10:47:35 -07:00
tc_act [PKT_SCHED]: Add stateless NAT 2007-10-10 16:53:11 -07:00
tc_ematch
usb docbook: fix usb content 2007-10-15 17:56:36 -07:00
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi_pmtmr.h
acpi.h ACPI: autoload modules - Create ACPI alias interface 2007-07-23 13:56:16 -04:00
adb.h
adfs_fs_i.h
adfs_fs_sb.h
adfs_fs.h
aer.h PCI AER: fix warnings when PCIEAER=n 2007-09-11 04:22:16 -07:00
affs_hardblocks.h
agp_backend.h
agpgart.h long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
aio_abi.h
aio.h AIO sparse fix (type of ki_flags) 2007-07-19 10:04:43 -07:00
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm_bios.h [x86 setup] Make struct apm_bios_info cross-architecture 2007-07-25 12:02:21 -07:00
apm-emulation.h
arcdevice.h arcnet endianness annotations 2007-10-10 16:51:59 -07:00
arcfb.h
async_tx.h async_tx: fix kmap_atomic usage in async_memcpy 2007-07-20 08:44:19 -07:00
ata.h libata: add human-readable error value decoding 2007-10-12 14:55:45 -04:00
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmel_pdc.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h [XFRM]: xfrm audit calls 2007-10-10 16:49:02 -07:00
auto_fs4.h
auto_fs.h
auxvec.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h backlight: Convert corgi backlight driver into a more generic driver 2007-10-11 22:24:13 +01:00
baycom.h
bcd.h
bfs_fs.h
binfmts.h mm: variable length argument support 2007-07-19 10:04:45 -07:00
bio.h Drop 'size' argument from bio_endio and bi_end_io 2007-10-10 09:25:57 +02:00
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blkdev.h [BLOCK] Move sector_div() from blkdev.h to kernel.h 2007-10-12 12:40:38 +02:00
blkpg.h
blktrace_api.h [BLOCK] Better fix for do_blk_trace_setup() for !CONFIG_BLOCK 2007-10-12 12:50:07 +02:00
blockgroup_lock.h
bootmem.h
bottom_half.h
bpqether.h
bsg.h [SCSI] bsg: update sg_io_v4 structure 2007-07-31 10:43:05 -05:00
buffer_head.h fs: restore nobh 2007-10-16 09:42:58 -07:00
bug.h
cache.h
calc64.h
capability.h
capi.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
chio.h
circ_buf.h
clk.h
clockchips.h clockevents: introduce force broadcast notifier 2007-10-14 22:57:45 +02:00
clocksource.h [IA64] Convert to generic timekeeping/clocksource 2007-07-20 11:22:30 -07:00
cm4000_cs.h
cn_proc.h
coda_cache.h
coda_fs_i.h
coda_linux.h coda: remove CODA_STORE/CODA_RELEASE upcalls 2007-07-21 17:49:14 -07:00
coda_psdev.h coda: remove CODA_STORE/CODA_RELEASE upcalls 2007-07-21 17:49:14 -07:00
coda.h
coff.h
com20020.h
compat.h
compiler-gcc3.h
compiler-gcc4.h x86: Support __attribute__((__cold__)) in gcc 4.3 2007-07-21 18:37:08 -07:00
compiler-gcc.h
compiler-intel.h
compiler.h make __chk_{user,io}_ptr() accept pointers to volatile 2007-07-26 11:11:57 -07:00
completion.h
comstats.h
concap.h
configfs.h
connector.h [NET]: make netlink user -> kernel interface synchronious 2007-10-10 21:15:29 -07:00
console_struct.h
console.h
consolemap.h
const.h
cpu.h PM: Fix dependencies of CONFIG_SUSPEND and CONFIG_HIBERNATION 2007-08-31 01:42:22 -07:00
cpufreq.h [CPUFREQ] implement !CONFIG_CPU_FREQ stub for cpufreq_unregister_notifier() 2007-10-04 18:40:57 -04:00
cpumask.h
cpuset.h Memoryless nodes: Use N_HIGH_MEMORY for cpusets 2007-10-16 09:42:59 -07:00
cramfs_fs_sb.h
cramfs_fs.h
crash_dump.h
crc7.h CRC7 support 2007-07-17 10:23:04 -07:00
crc16.h
crc32.h
crc32c.h
crc-ccitt.h
crc-itu-t.h
crypto.h [CRYPTO] api: Fixed crypto_*_reqsize return type 2007-10-10 16:55:42 -07:00
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dcache.h
dccp.h [DCCP]: Tidy-up -- minisock initialisation 2007-10-10 16:54:36 -07:00
dcookies.h [CELL] oprofile: add support to OProfile for profiling CELL BE SPUs 2007-07-20 21:42:24 +02:00
debug_locks.h
debugfs.h debugfs: helper for decimal challenged 2007-10-12 14:51:03 -07:00
delay.h
delayacct.h
device-mapper.h
device.h Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
devpts_fs.h
dio.h
dirent.h
display.h
dlm_device.h
dlm_netlink.h
dlm.h
dm9000.h
dm-ioctl.h
dma-mapping.h introduce DMA_MASK_NONE as a signal for unable to do DMA 2007-10-16 09:42:50 -07:00
dmaengine.h
dmapool.h
dmi.h drivers/firmware: const-ify DMI API and internals 2007-10-09 20:22:20 -04:00
dn.h
dnotify.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1wm.h
ds1286.h
ds17287rtc.h
dtlk.h
edac.h drivers/edac: mod assert_error check 2007-07-19 10:04:54 -07:00
edd.h
eeprom_93cx6.h ax88796: add 93cx6 eeprom support 2007-10-10 16:53:56 -07:00
efi.h
efs_dir.h
efs_fs_i.h
efs_fs_sb.h
efs_fs.h knfsd: exportfs: remove iget abuse 2007-07-17 10:23:06 -07:00
efs_vh.h
eisa.h
elevator.h [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
elf-em.h [CELL] oprofile: add support to OProfile for profiling CELL BE SPUs 2007-07-20 21:42:24 +02:00
elf-fdpic.h
elf.h [POWERPC] spufs: Cleanup ELF coredump extra notes logic 2007-09-19 15:12:19 +10:00
elfcore.h
elfnote.h use elfnote.h to generate vsyscall notes. 2007-07-18 08:47:40 -07:00
err.h
errno.h
errqueue.h
etherdevice.h [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
ethtool.h [ETHTOOL]: Introduce ->{get,set}_priv_flags, ETHTOOL_[GS]PFLAGS 2007-10-10 16:48:08 -07:00
eventfd.h
eventpoll.h
exportfs.h knfsd: exportfs: add procedural interface for NFSD 2007-07-17 10:23:06 -07:00
ext2_fs_sb.h
ext2_fs.h
ext3_fs_i.h
ext3_fs_sb.h
ext3_fs.h
ext3_jbd.h
ext4_fs_extents.h Change on-disk format to support 2^15 uninitialized extents 2007-07-18 09:02:56 -04:00
ext4_fs_i.h ext4: Add nanosecond timestamps 2007-07-18 09:15:20 -04:00
ext4_fs_sb.h ext4: Add nanosecond timestamps 2007-07-18 09:15:20 -04:00
ext4_fs.h ext4: Expand extra_inodes space per the s_{want,min}_extra_isize fields 2007-07-18 09:19:57 -04:00
ext4_jbd2.h
fadvise.h
falloc.h sys_fallocate() implementation on i386, x86_64 and powerpc 2007-07-17 21:42:44 -04:00
fault-inject.h
fb.h OMAP: add TI OMAP1610 accelerator entry. 2007-07-17 10:23:13 -07:00
fcdevice.h
fcntl.h
fd1772.h
fd.h
fddidevice.h
fdreg.h
fib_rules.h
file.h
filter.h
firewire-cdev.h
firewire-constants.h
firmware.h
flat.h
font.h
freezer.h Introduce CONFIG_SUSPEND for suspend-to-Ram and standby 2007-07-29 16:45:38 -07:00
fs_enet_pd.h fs_enet: Be an of_platform device when CONFIG_PPC_CPM_NEW_BINDING is set. 2007-10-10 16:54:03 -07:00
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h fs: remove some AOP_TRUNCATED_PAGE 2007-10-16 09:42:58 -07:00
fsl_devices.h Fix RGMII-ID handling in gianfar 2007-07-18 18:29:37 -04:00
fsnotify.h
fuse.h
futex.h
gameport.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h [GENETLINK]: Dynamic multicast groups. 2007-07-18 15:47:52 -07:00
genhd.h [PARTITION] MSDOS: Fix Sun num_partitions handling. 2007-07-30 00:27:28 -07:00
getcpu.h
gfp.h Print out statistics in relation to fragmentation avoidance to /proc/pagetypeinfo 2007-10-16 09:43:00 -07:00
gfs2_ondisk.h [GFS2] Fix quota do_list operation hang 2007-10-10 08:55:27 +01:00
gigaset_dev.h
gpio_keys.h Input: gpio-keys - add suspend/resume support 2007-09-26 00:01:17 -04:00
gpio_mouse.h
hardirq.h
harrier_defs.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
hdpu_features.h
hdreg.h
hdsmart.h
hid-debug.h
hid.h HID: fix HIDIOCGRDESC memory access in hidraw 2007-10-15 08:12:00 -07:00
hiddev.h
hidraw.h HID: fix HIDIOCGRDESC memory access in hidraw 2007-10-15 08:12:00 -07:00
highmem.h Remove alloc_zeroed_user_highpage() 2007-07-19 10:04:41 -07:00
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htirq.h
hugetlb.h hugepage: fix broken check for offset alignment in hugepage mappings 2007-08-31 01:42:23 -07:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h hwmon: Convert from class_device to device 2007-10-09 22:56:30 -04:00
hysdn_if.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-algo-sgi.h
i2c-dev.h i2c: Move i2c-dev interfaces to i2c-dev.h 2007-10-13 23:56:32 +02:00
i2c-gpio.h
i2c-id.h V4L/DVB (6149): Add I2C_HW_B_CX23885 for Conexant 23885/23887 PCIe bridge 2007-10-09 22:07:51 -03:00
i2c-ocores.h
i2c-pnx.h
i2c-pxa.h
i2c.h i2c: Rename the PEC functionality bit 2007-10-13 23:56:33 +02:00
i2o-dev.h
i2o.h mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
i8k.h
ibmtr.h
icmp.h
icmpv6.h
ide.h ide: move ide_config_drive_speed() calls to upper layers (take 2) 2007-10-13 17:47:51 +02:00
idr.h
ieee80211.h [PATCH] wireless networking: move frame inline functions to generic header 2007-10-10 16:52:59 -07:00
if_addr.h
if_arcnet.h arcnet endianness annotations 2007-10-10 16:51:59 -07:00
if_arp.h
if_bonding.h
if_bridge.h [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
if_cablemodem.h
if_ec.h
if_eql.h [NET] drivers/net: statistics cleanup #1 -- save memory and shrink code 2007-10-10 16:51:16 -07:00
if_ether.h [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h [NET]: netlink support for moving devices between network namespaces. 2007-10-10 16:49:13 -07:00
if_ltalk.h
if_macvlan.h
if_packet.h
if_plip.h
if_ppp.h
if_pppol2tp.h [PPPOL2TP]: Fix endianness annotations. 2007-08-26 18:35:42 -07:00
if_pppox.h pppoe: endianness 2007-10-10 16:52:04 -07:00
if_shaper.h [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
if_slip.h
if_strip.h
if_tr.h
if_tun.h [NET] drivers/net: statistics cleanup #1 -- save memory and shrink code 2007-10-10 16:51:16 -07:00
if_tunnel.h
if_vlan.h [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
if_wanpipe.h
if.h
igmp.h
in6.h
in_route.h
in.h
inet_diag.h
inet_lro.h fix endianness bug in inet_lro 2007-10-14 12:41:52 -07:00
inet.h
inetdevice.h
init_task.h [NETNS]: Fix allnoconfig compilation error. 2007-10-10 16:49:21 -07:00
init.h Add assembler equivalents to __init{,date}_refok 2007-10-16 09:42:49 -07:00
initrd.h
inotify.h
input-polldev.h
input.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2007-10-15 13:41:39 -07:00
interrupt.h provide stubs for enable_irq_wake() and disable_irq_wake() 2007-10-16 09:42:50 -07:00
io.h
ioc3.h
ioc4.h
ioctl.h
ioport.h
ioprio.h cfq: async queue allocation per priority 2007-07-20 10:06:38 +02:00
ip6_tunnel.h
ip.h
ipc.h
ipmi_msgdefs.h
ipmi_smi.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h [IPSEC]: Get rid of ipv6_{auth,esp,comp}_hdr 2007-10-10 16:55:55 -07:00
ipx.h
irda.h [IrDA]: EP7211 IR driver port to the latest SIR API 2007-07-21 19:07:33 -07:00
irq_cpustat.h
irq.h irq.h fix kernel-doc 2007-07-31 15:39:41 -07:00
irqflags.h
irqreturn.h
isa.h Fix non-ISA link error in drivers/scsi/advansys.c 2007-09-16 21:13:58 -07:00
isapnp.h
isdn_divertif.h
isdn_ppp.h
isdn.h [ISDN]: Remove local copy of device name to make sure renames work. 2007-10-15 12:26:37 -07:00
isdnif.h
isicom.h
iso_fs.h
istallion.h
ivtv.h V4L/DVB (6123): ivtv: move ivtv.h public header to include/linux 2007-10-09 22:07:28 -03:00
ivtvfb.h V4L/DVB (6119): ivtvfb: renamed ivtv-fb to ivtvfb, move header to include/linux 2007-10-09 22:07:23 -03:00
ixjuser.h
jbd2.h jbd2: Fix CONFIG_JBD_DEBUG ifdef to be CONFIG_JBD2_DEBUG 2007-07-18 08:57:06 -04:00
jbd.h docbook: fix filesystems content 2007-10-15 17:56:36 -07:00
jffs2.h
jhash.h
jiffies.h slow down printk during boot 2007-10-16 09:42:49 -07:00
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h m68k/mac: Make mac_hid_mouse_emulate_buttons() declaration visible 2007-08-22 19:52:45 -07:00
Kbuild [KBUILD]: Sanitize tc_ematch headers. 2007-08-26 18:35:34 -07:00
kd.h
kdebug.h kdebug.h: forward-declare struct struct notifier_block 2007-07-31 15:39:40 -07:00
kdev_t.h
kernel_stat.h sched: guest CPU accounting: add guest-CPU /proc/stat field 2007-10-15 17:00:19 +02:00
kernel.h [BLOCK] Move sector_div() from blkdev.h to kernel.h 2007-10-12 12:40:38 +02:00
kernelcapi.h Use mutex instead of semaphore in CAPI 2.0 driver 2007-07-17 10:23:05 -07:00
kexec.h
key-ui.h
key.h
keyboard.h Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2007-10-12 21:27:47 -04:00
keyctl.h
kfifo.h
klist.h
kmalloc_sizes.h
kmod.h usermodehelper: Tidy up waiting 2007-07-18 08:47:40 -07:00
kobj_map.h
kobject.h kobject: update the copyrights 2007-10-12 14:51:12 -07:00
kprobes.h jprobes: make jprobes a little safer for users 2007-07-19 10:04:44 -07:00
kref.h
ks0108.h
kthread.h
ktime.h [KTIME]: Introduce ktime_sub_ns and ktime_sub_us 2007-10-10 16:48:12 -07:00
kvm_para.h
kvm.h KVM: Replace enum by #define 2007-10-13 10:18:29 +02:00
lapb.h
latency.h
lcd.h
leds.h leds: Add missing include for leds.h 2007-09-11 22:24:45 +01:00
lguest_bus.h lguest: documentation III: Drivers 2007-07-26 11:35:17 -07:00
lguest_launcher.h lguest: documentation III: Drivers 2007-07-26 11:35:17 -07:00
lguest.h Provide timespec to guests rather than jiffies clock. 2007-07-28 19:54:33 -07:00
libata.h [libata] struct pci_dev related cleanups 2007-10-12 14:55:47 -04:00
libps2.h
license.h
limits.h
linkage.h
linux_logo.h fbdev: Add fb_append_extra_logo() 2007-07-17 10:23:13 -07:00
list.h [NETNS]: Cleanup list walking in setup_net and cleanup_net 2007-10-10 16:51:35 -07:00
llc.h
lm_interface.h
lock_dlm_plock.h
lockdep.h lockdep: annotate rcu_read_{,un}lock{,_bh} 2007-10-11 22:11:12 +02:00
log2.h
loop.h loop.h build fix 2007-07-24 12:24:59 -07:00
lp.h
lzo.h
m41t00.h
m48t86.h
magic.h
major.h xen: add virtual block device driver. 2007-07-18 08:47:45 -07:00
maple.h sh: Add maple bus support for the SEGA Dreamcast. 2007-09-21 15:55:55 +09:00
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mdio-bitbang.h Generic bitbanged MDIO library 2007-10-10 16:54:03 -07:00
memory_hotplug.h Clean up duplicate includes in include/linux/memory_hotplug.h 2007-10-16 09:42:52 -07:00
memory.h
mempolicy.h Mem Policy: add MPOL_F_MEMS_ALLOWED get_mempolicy() flag 2007-10-16 09:42:54 -07:00
mempool.h
meye.h
migrate.h
mii.h
minix_fs.h
miscdevice.h
mm_inline.h
mm_types.h move mm_struct and vm_area_struct 2007-10-16 09:42:53 -07:00
mm.h move mm_struct and vm_area_struct 2007-10-16 09:42:53 -07:00
mman.h
mmtimer.h
mmzone.h Print out statistics in relation to fragmentation avoidance to /proc/pagetypeinfo 2007-10-16 09:43:00 -07:00
mnt_namespace.h
mod_devicetable.h i2c: Kill struct i2c_device_id 2007-10-13 23:56:29 +02:00
module.h
moduleloader.h
moduleparam.h
mount.h
mpage.h
mqueue.h
mroute.h
msdos_fs.h
msg.h
msi.h
mtio.h
mutex-debug.h
mutex.h lockdep: fixup mutex annotations 2007-10-11 22:11:12 +02:00
mv643xx.h [WATCHDOG] mv64x60_wdt: Add arch/powerpc platform support 2007-07-24 21:16:02 +00:00
n_r3964.h
namei.h fs: remove path_walk export 2007-07-19 10:04:45 -07:00
nbd.h
ncp_fs_i.h
ncp_fs_sb.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
neighbour.h
net.h [NET]: Make socket creation namespace safe. 2007-10-10 16:49:07 -07:00
netdevice.h net core: fix kernel-doc for new function parameters 2007-10-13 09:52:26 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_ipv6.h
netfilter.h [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netlink.h [NET]: make netlink user -> kernel interface synchronious 2007-10-10 21:15:29 -07:00
netpoll.h [NET] netconsole: Support dynamic reconfiguration using configfs 2007-10-10 16:48:06 -07:00
netrom.h
nfs2.h
nfs3.h
nfs4_acl.h
nfs4_mount.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h NFS: Add a boot parameter to disable 64 bit inode numbers 2007-10-09 17:20:52 -04:00
nfs_idmap.h
nfs_mount.h
nfs_page.h NFS: Clean up write code... 2007-10-09 17:15:11 -04:00
nfs_xdr.h NFS: Fake up 'wcc' attributes to prevent cache invalidation after write 2007-10-09 17:19:15 -04:00
nfs.h
nfsacl.h
nfsd_idmap.h
nl80211.h [NL80211]: add netlink interface to cfg80211 2007-10-10 16:52:14 -07:00
nls.h
nmi.h
node.h
nodemask.h Memoryless nodes: Add N_CPU node state 2007-10-16 09:42:58 -07:00
notifier.h [NET]: Allow netdev REGISTER/CHANGENAME events to fail 2007-07-31 02:28:15 -07:00
nsc_gpio.h
nsproxy.h [NET]: Add a network namespace parameter to tasks 2007-10-10 16:49:04 -07:00
nubus.h
numa.h
nvram.h
of_device.h Begin consolidation of of_device.h 2007-07-20 13:41:56 +10:00
of_platform.h [POWERPC] Constify of_platform_driver match_table 2007-07-22 21:30:59 +10:00
of.h [POWERPC] Remove get_property and device_is_compatible 2007-08-17 11:01:58 +10:00
oom.h
oprofile.h [CELL] oprofile: add support to OProfile for profiling CELL BE SPUs 2007-07-20 21:42:24 +02:00
page-flags.h move page writeback acounting out of macros 2007-07-19 10:04:52 -07:00
pageblock-flags.h Do not depend on MAX_ORDER when grouping pages by mobility 2007-10-16 09:43:00 -07:00
pagemap.h fs: introduce write_begin, write_end, and perform_write aops 2007-10-16 09:42:55 -07:00
pagevec.h
param.h
parport_pc.h
parport.h
parser.h
pata_platform.h
patchkey.h
pci_hotplug.h
pci_ids.h 8250_pci: Autodetect mainpine cards 2007-10-16 09:42:50 -07:00
pci_regs.h PCI: modify PCI bridge control ISA flag for clarity 2007-10-12 15:03:18 -07:00
pci-acpi.h
pci.h PCI: Add 'nodomains' boot option, and pci_domains_supported global 2007-10-12 15:03:18 -07:00
pcieport_if.h
pda_power.h
percpu_counter.h
percpu.h
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h
phonedev.h
phy_fixed.h PHY fixed driver: rework release path and update phy_id notation 2007-10-10 16:53:50 -07:00
phy.h PHYLIB: IRQ event workqueue handling fixes 2007-10-10 16:53:55 -07:00
pid_namespace.h
pid.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h [NET_SCHED]: Making rate table lookups more flexible. 2007-10-10 16:49:20 -07:00
pktcdvd.h
platform_device.h Driver core: Make platform_device.id an int 2007-10-12 14:51:07 -07:00
plist.h
pm_legacy.h
pm.h Fallout from "Remove fs.h from mm.h" patch 2007-07-30 12:25:49 -07:00
pmu.h [POWERPC] Fix undefined reference to device_power_up/resume 2007-08-25 16:58:27 +10:00
pnp.h PNP: fix up after Lindent 2007-07-26 11:35:21 -07:00
pnpbios.h PNP: fix up after Lindent 2007-07-26 11:35:21 -07:00
poison.h
poll.h Fix select on /proc files without ->poll 2007-09-11 17:21:20 -07:00
posix_acl_xattr.h
posix_acl.h
posix_types.h
posix-timers.h
power_supply.h
ppdev.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
prctl.h
preempt.h [PATCH] sched: arch preempt notifier mechanism 2007-07-26 13:40:43 +02:00
prefetch.h
prio_tree.h
proc_fs.h [NET]: Fix race when opening a proc file while a network namespace is exiting. 2007-10-10 16:49:22 -07:00
profile.h
ps2esdi.h
ptrace.h
qnx4_fs.h
qnxtypes.h
quicklist.h
quota.h
quotaio_v1.h
quotaio_v2.h
quotaops.h
radeonfb.h
radix-tree.h radix-tree: use indirect bit 2007-10-16 09:42:53 -07:00
raid_class.h
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h lockdep: annotate rcu_read_{,un}lock{,_bh} 2007-10-11 22:11:12 +02:00
reboot.h Add common orderly_poweroff() 2007-07-18 08:47:40 -07:00
reciprocal_div.h
reiserfs_acl.h
reiserfs_fs_i.h
reiserfs_fs_sb.h more low-hanging fruits - kernel, fs, lib signedness 2007-10-14 12:41:52 -07:00
reiserfs_fs.h fix preprocessor idiocy in reiserfs 2007-07-28 19:42:22 -07:00
reiserfs_xattr.h
relay.h
resource.h
resume-trace.h x86: PM_TRACE support 2007-07-21 18:37:10 -07:00
rfkill.h [RFKILL]: Add support for hardware-only rfkill buttons 2007-10-10 16:54:11 -07:00
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h [IPv6]: Export userland ND options through netlink (RDNSS support) 2007-10-10 21:22:05 -07:00
rwsem-spinlock.h
rwsem.h
rxrpc.h
sc26198.h
scatterlist.h
scc.h
sched.h move mm_struct and vm_area_struct 2007-10-16 09:42:53 -07:00
screen_info.h
sctp.h [SCTP]: protocol definitions for SCTP-AUTH implementation 2007-10-10 16:51:28 -07:00
scx200_gpio.h long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
scx200.h
sdla.h
seccomp.h
securebits.h
security.h fix NULL pointer dereference in __vm_enough_memory() 2007-08-22 19:52:45 -07:00
selection.h selection.h: add tty_struct forward declaration 2007-08-22 19:52:47 -07:00
selinux_netlink.h
selinux.h
sem.h
seq_file.h [FS] seq_file: Introduce the seq_open_private() 2007-10-10 16:55:33 -07:00
seqlock.h
serial167.h
serial_8250.h Use resource_size_t for serial port IO addresses 2007-07-24 12:24:58 -07:00
serial_core.h wake up from a serial port 2007-10-16 09:42:50 -07:00
serial_pnx8xxx.h
serial_reg.h Serial 8250: handle saving the clear-on-read bits from the LSR and MSR 2007-08-22 19:52:44 -07:00
serial.h
serialP.h
serio.h Input: add driver for Fujitsu serial touchscreens 2007-07-18 00:37:01 -04:00
shm.h
shmem_fs.h
signal.h x86: i386-show-unhandled-signals-v3 2007-07-22 11:03:37 -07:00
signalfd.h signalfd simplification 2007-09-20 13:19:59 -07:00
skbuff.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2007-10-15 14:06:58 -07:00
slab_def.h
slab.h Group short-lived and reclaimable kernel allocations 2007-10-16 09:43:00 -07:00
slob_def.h slob: Kill off duplicate kzalloc() definition. 2007-07-17 17:26:43 -07:00
slub_def.h SLUB: Avoid page struct cacheline bouncing due to remote frees to cpu slab 2007-10-16 09:43:01 -07:00
sm501-regs.h
sm501.h
smb_fs_i.h
smb_fs_sb.h
smb_fs.h
smb_mount.h
smb.h
smbno.h
smp_lock.h
smp.h smp_call_function_single() should be a macro on UP 2007-07-17 14:39:19 -07:00
snmp.h [TCP] MIB: Count FRTO's successfully detected spurious RTOs 2007-10-10 16:52:39 -07:00
socket.h
sockios.h
som.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types_up.h fix raw_spinlock_t vs lockdep 2007-07-19 10:04:49 -07:00
spinlock_types.h fix raw_spinlock_t vs lockdep 2007-07-19 10:04:49 -07:00
spinlock_up.h
spinlock.h
splice.h
srcu.h
stacktrace.h stacktrace: fix header file for !CONFIG_STACKTRACE 2007-07-19 10:04:49 -07:00
stallion.h long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
start_kernel.h
stat.h
statfs.h
stddef.h
stop_machine.h
string.h add argv_split() 2007-07-18 08:47:40 -07:00
stringify.h
superhyway.h
suspend.h Introduce CONFIG_SUSPEND for suspend-to-Ram and standby 2007-07-29 16:45:38 -07:00
svga.h
swap.h Drop 'size' argument from bio_endio and bi_end_io 2007-10-10 09:25:57 +02:00
swapops.h
synclink.h
sys.h
syscalls.h [CELL] spufs: extension of spu_create to support affinity definition 2007-07-20 21:42:15 +02:00
sysctl.h Add CTL_PROC back 2007-07-31 15:39:39 -07:00
sysdev.h
sysfs.h sysfs: add copyrights 2007-10-12 14:51:12 -07:00
sysrq.h
sysv_fs.h
task_io_accounting_ops.h
task_io_accounting.h
taskstats_kern.h
taskstats.h
tc.h
tcp.h [TCP]: Make snd_cwnd_cnt 32-bit 2007-10-15 12:59:43 -07:00
telephony.h
termios.h
textsearch_fsm.h
textsearch.h
tfrc.h
thread_info.h
threads.h
ticable.h
tick.h
tifm.h
time.h Cache xtime every call to update_wall_time 2007-07-25 10:17:44 -07:00
timer.h
timerfd.h
times.h
timex.h [IA64] remove time interpolator 2007-07-20 11:23:02 -07:00
tiocl.h
tipc_config.h
tipc.h
topology.h sched: enable wake-idle on CONFIG_SCHED_MC=y 2007-10-15 17:00:19 +02:00
toshiba.h
transport_class.h
trdevice.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h PTY: add kernel parameter to overwrite legacy pty count 2007-10-12 14:51:09 -07:00
types.h
uaccess.h
udf_fs_i.h
udf_fs_sb.h
udf_fs.h
udp.h
ufs_fs_i.h
ufs_fs_sb.h
ufs_fs.h
uinput.h
uio_driver.h UIO: Add the User IO core code 2007-07-18 15:57:15 -07:00
uio.h
ultrasound.h
un.h
unistd.h
unwind.h
usb_usual.h
usb.h USB: skip autosuspended devices during system resume 2007-10-12 14:55:34 -07:00
usbdevice_fs.h
user_namespace.h Convert uid hash to hlist 2007-09-19 11:24:18 -07:00
user.h
utime.h
uts.h
utsname.h
vermagic.h
vfs.h
via.h
video_decoder.h
video_encoder.h
video_output.h Convert from class_device to device for drivers/video 2007-10-12 14:51:04 -07:00
videodev2.h V4L/DVB (6108): videodev2.h: add new pixel formats for the cx23415 OSD 2007-10-09 22:07:04 -03:00
videodev.h
videotext.h
vmalloc.h i386: fix iounmap's use of vm_struct's size field 2007-07-21 18:37:14 -07:00
vmstat.h
vt_buffer.h
vt_kern.h vt: add comment for unbind_con_driver() 2007-07-17 10:23:11 -07:00
vt.h
wait.h
wanrouter.h
watchdog.h
wireless.h
workqueue.h
writeback.h Merge git://git.linux-nfs.org/pub/linux/nfs-2.6 2007-10-15 10:47:35 -07:00
x25.h
xattr.h
xfrm.h
xilinxfb.h [POWERPC] XilinxFB: Allow fixed framebuffer base address 2007-10-12 14:05:17 +10:00
yam.h
zconf.h
zlib.h [ZLIB]: Move bnx2 driver gzip unpacker into zlib. 2007-10-10 16:53:57 -07:00
zorro_ids.h
zorro.h
zutil.h