kernel-ark/include/linux
Paul E. McKenney 64db4cfff9 "Tree RCU": scalable classic RCU implementation
This patch fixes a long-standing performance bug in classic RCU that
results in massive internal-to-RCU lock contention on systems with
more than a few hundred CPUs.  Although this patch creates a separate
flavor of RCU for ease of review and patch maintenance, it is intended
to replace classic RCU.

This patch still handles stress better than does mainline, so I am still
calling it ready for inclusion.  This patch is against the -tip tree.
Nevertheless, experience on an actual 1000+ CPU machine would still be
most welcome.

Most of the changes noted below were found while creating an rcutiny
(which should permit ejecting the current rcuclassic) and while doing
detailed line-by-line documentation.

Updates from v9 (http://lkml.org/lkml/2008/12/2/334):

o	Fixes from remainder of line-by-line code walkthrough,
	including comment spelling, initialization, undesirable
	narrowing due to type conversion, removing redundant memory
	barriers, removing redundant local-variable initialization,
	and removing redundant local variables.

	I do not believe that any of these fixes address the CPU-hotplug
	issues that Andi Kleen was seeing, but please do give it a whirl
	in case the machine is smarter than I am.

	A writeup from the walkthrough may be found at the following
	URL, in case you are suffering from terminal insomnia or
	masochism:

	http://www.kernel.org/pub/linux/kernel/people/paulmck/tmp/rcutree-walkthrough.2008.12.16a.pdf

o	Made rcutree tracing use seq_file, as suggested some time
	ago by Lai Jiangshan.

o	Added a .csv variant of the rcudata debugfs trace file, to allow
	people having thousands of CPUs to drop the data into
	a spreadsheet.	Tested with oocalc and gnumeric.  Updated
	documentation to suit.

Updates from v8 (http://lkml.org/lkml/2008/11/15/139):

o	Fix a theoretical race between grace-period initialization and
	force_quiescent_state() that could occur if more than three
	jiffies were required to carry out the grace-period
	initialization.  Which it might, if you had enough CPUs.

o	Apply Ingo's printk-standardization patch.

o	Substitute local variables for repeated accesses to global
	variables.

o	Fix comment misspellings and redundant (but harmless) increments
	of ->n_rcu_pending (this latter after having explicitly added it).

o	Apply checkpatch fixes.

Updates from v7 (http://lkml.org/lkml/2008/10/10/291):

o	Fixed a number of problems noted by Gautham Shenoy, including
	the cpu-stall-detection bug that he was having difficulty
	convincing me was real.  ;-)

o	Changed cpu-stall detection to wait for ten seconds rather than
	three in order to reduce false positive, as suggested by Ingo
	Molnar.

o	Produced a design document (http://lwn.net/Articles/305782/).
	The act of writing this document uncovered a number of both
	theoretical and "here and now" bugs as noted below.

o	Fix dynticks_nesting accounting confusion, simplify WARN_ON()
	condition, fix kerneldoc comments, and add memory barriers
	in dynticks interface functions.

o	Add more data to tracing.

o	Remove unused "rcu_barrier" field from rcu_data structure.

o	Count calls to rcu_pending() from scheduling-clock interrupt
	to use as a surrogate timebase should jiffies stop counting.

o	Fix a theoretical race between force_quiescent_state() and
	grace-period initialization.  Yes, initialization does have to
	go on for some jiffies for this race to occur, but given enough
	CPUs...

Updates from v6 (http://lkml.org/lkml/2008/9/23/448):

o	Fix a number of checkpatch.pl complaints.

o	Apply review comments from Ingo Molnar and Lai Jiangshan
	on the stall-detection code.

o	Fix several bugs in !CONFIG_SMP builds.

o	Fix a misspelled config-parameter name so that RCU now announces
	at boot time if stall detection is configured.

o	Run tests on numerous combinations of configurations parameters,
	which after the fixes above, now build and run correctly.

Updates from v5 (http://lkml.org/lkml/2008/9/15/92, bad subject line):

o	Fix a compiler error in the !CONFIG_FANOUT_EXACT case (blew a
	changeset some time ago, and finally got around to retesting
	this option).

o	Fix some tracing bugs in rcupreempt that caused incorrect
	totals to be printed.

o	I now test with a more brutal random-selection online/offline
	script (attached).  Probably more brutal than it needs to be
	on the people reading it as well, but so it goes.

o	A number of optimizations and usability improvements:

	o	Make rcu_pending() ignore the grace-period timeout when
		there is no grace period in progress.

	o	Make force_quiescent_state() avoid going for a global
		lock in the case where there is no grace period in
		progress.

	o	Rearrange struct fields to improve struct layout.

	o	Make call_rcu() initiate a grace period if RCU was
		idle, rather than waiting for the next scheduling
		clock interrupt.

	o	Invoke rcu_irq_enter() and rcu_irq_exit() only when
		idle, as suggested by Andi Kleen.  I still don't
		completely trust this change, and might back it out.

	o	Make CONFIG_RCU_TRACE be the single config variable
		manipulated for all forms of RCU, instead of the prior
		confusion.

	o	Document tracing files and formats for both rcupreempt
		and rcutree.

Updates from v4 for those missing v5 given its bad subject line:

o	Separated dynticks interface so that NMIs and irqs call separate
	functions, greatly simplifying it.  In particular, this code
	no longer requires a proof of correctness.  ;-)

o	Separated dynticks state out into its own per-CPU structure,
	avoiding the duplicated accounting.

o	The case where a dynticks-idle CPU runs an irq handler that
	invokes call_rcu() is now correctly handled, forcing that CPU
	out of dynticks-idle mode.

o	Review comments have been applied (thank you all!!!).
	For but one example, fixed the dynticks-ordering issue that
	Manfred pointed out, saving me much debugging.  ;-)

o	Adjusted rcuclassic and rcupreempt to handle dynticks changes.

Attached is an updated patch to Classic RCU that applies a hierarchy,
greatly reducing the contention on the top-level lock for large machines.
This passes 10-hour concurrent rcutorture and online-offline testing on
128-CPU ppc64 without dynticks enabled, and exposes some timekeeping
bugs in presence of dynticks (exciting working on a system where
"sleep 1" hangs until interrupted...), which were fixed in the
2.6.27 kernel.  It is getting more reliable than mainline by some
measures, so the next version will be against -tip for inclusion.
See also Manfred Spraul's recent patches (or his earlier work from
2004 at http://marc.info/?l=linux-kernel&m=108546384711797&w=2).
We will converge onto a common patch in the fullness of time, but are
currently exploring different regions of the design space.  That said,
I have already gratefully stolen quite a few of Manfred's ideas.

This patch provides CONFIG_RCU_FANOUT, which controls the bushiness
of the RCU hierarchy.  Defaults to 32 on 32-bit machines and 64 on
64-bit machines.  If CONFIG_NR_CPUS is less than CONFIG_RCU_FANOUT,
there is no hierarchy.  By default, the RCU initialization code will
adjust CONFIG_RCU_FANOUT to balance the hierarchy, so strongly NUMA
architectures may choose to set CONFIG_RCU_FANOUT_EXACT to disable
this balancing, allowing the hierarchy to be exactly aligned to the
underlying hardware.  Up to two levels of hierarchy are permitted
(in addition to the root node), allowing up to 16,384 CPUs on 32-bit
systems and up to 262,144 CPUs on 64-bit systems.  I just know that I
am going to regret saying this, but this seems more than sufficient
for the foreseeable future.  (Some architectures might wish to set
CONFIG_RCU_FANOUT=4, which would limit such architectures to 64 CPUs.
If this becomes a real problem, additional levels can be added, but I
doubt that it will make a significant difference on real hardware.)

In the common case, a given CPU will manipulate its private rcu_data
structure and the rcu_node structure that it shares with its immediate
neighbors.  This can reduce both lock and memory contention by multiple
orders of magnitude, which should eliminate the need for the strange
manipulations that are reported to be required when running Linux on
very large systems.

Some shortcomings:

o	More bugs will probably surface as a result of an ongoing
	line-by-line code inspection.

	Patches will be provided as required.

o	There are probably hangs, rcutorture failures, &c.  Seems
	quite stable on a 128-CPU machine, but that is kind of small
	compared to 4096 CPUs.  However, seems to do better than
	mainline.

	Patches will be provided as required.

o	The memory footprint of this version is several KB larger
	than rcuclassic.

	A separate UP-only rcutiny patch will be provided, which will
	reduce the memory footprint significantly, even compared
	to the old rcuclassic.  One such patch passes light testing,
	and has a memory footprint smaller even than rcuclassic.
	Initial reaction from various embedded guys was "it is not
	worth it", so am putting it aside.

Credits:

o	Manfred Spraul for ideas, review comments, and bugs spotted,
	as well as some good friendly competition.  ;-)

o	Josh Triplett, Ingo Molnar, Peter Zijlstra, Mathieu Desnoyers,
	Lai Jiangshan, Andi Kleen, Andy Whitcroft, and Andrew Morton
	for reviews and comments.

o	Thomas Gleixner for much-needed help with some timer issues
	(see patches below).

o	Jon M. Tollefson, Tim Pepper, Andrew Theurer, Jose R. Santos,
	Andy Whitcroft, Darrick Wong, Nishanth Aravamudan, Anton
	Blanchard, Dave Kleikamp, and Nathan Lynch for keeping machines
	alive despite my heavy abuse^Wtesting.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-12-18 21:56:04 +01:00
..
amba
byteorder byteorder: provide swabb.h generically in asm/byteorder.h 2008-10-20 08:52:40 -07:00
can can: Fix CAN_(EFF|RTR)_FLAG handling in can_filter 2008-12-03 15:52:35 -08:00
dvb V4L/DVB (9196): Add support for DSS delivery 2008-10-17 17:15:43 -03:00
hdlc
i2c mfd: twl4030 IRQ handling update 2008-10-22 01:19:37 +02:00
isdn
lockd NLM: Remove "proto" argument from lockd_up() 2008-10-04 17:12:27 -04:00
mfd rtc: rtc-wm8350: add support for WM8350 RTC 2008-11-12 17:17:18 -08:00
mlx4 mlx4_core: Save/restore default port IB capability mask 2008-11-28 21:29:46 -08:00
mmc mmc: struct device - replace bus_id with dev_name(), dev_set_name() 2008-11-08 21:37:46 +01:00
mtd [MTD] [NOR] Fix cfi_send_gen_cmd handling of x16 devices in x8 mode (v4) 2008-11-05 14:40:25 +01:00
netfilter netfilter: xtables: add missing const qualifier to xt_tgchk_param 2008-11-24 16:06:17 -08:00
netfilter_arp
netfilter_bridge netfilter: xtables: move extension arguments into compound structure (5/6) 2008-10-08 11:35:19 +02:00
netfilter_ipv4 netfilter: rename ipt_recent to xt_recent 2008-10-08 11:35:00 +02:00
netfilter_ipv6
nfsd nfsd: permit unauthenticated stat of export root 2008-09-29 17:56:56 -04:00
raid md: use sysfs_notify_dirent to notify changes to md/dev-xxx/state 2008-10-21 13:25:28 +11:00
regulator regulator: Fix typo 2008-10-13 21:51:51 +01:00
rtc
spi spi: fix compile error 2008-10-30 11:38:47 -07:00
ssb ssb: Fix DMA-API compilation for non-PCI systems 2008-11-10 13:50:19 -08:00
sunrpc Merge branch 'next' 2008-10-15 15:54:56 -04:00
tc_act pkt_action: add new action skbedit 2008-09-12 16:30:20 -07:00
tc_ematch
unaligned
usb USB: fix comment about endianness of descriptors 2008-12-17 10:49:14 -08:00
uwb uwb: add the driver to enumerate WHCI capabilities 2008-09-17 16:54:26 +01:00
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi_pmtmr.h
acpi.h Merge branch 'video' into release 2008-11-11 21:15:50 -05:00
adb.h
adfs_fs_i.h
adfs_fs_sb.h
adfs_fs.h
aer.h PCI: fix AER capability check 2008-10-20 11:01:52 -07:00
affs_hardblocks.h
agp_backend.h
agpgart.h
aio_abi.h
aio.h Configure out AIO support 2008-10-16 11:21:51 -07:00
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm_bios.h
apm-emulation.h
arcdevice.h
arcfb.h
async_tx.h
ata_platform.h
ata.h ide: lba_capacity_is_ok() -> ata_id_is_lba_capacity_ok() 2008-10-10 22:39:31 +02: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
atmel_pwm.h
atmel_serial.h
atmel_tc.h
atmel-pwm-bl.h
atmel-ssc.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h [PATCH] fix broken timestamps in AVC generated by kernel threads 2008-12-09 02:27:41 -05:00
auto_dev-ioctl.h autofs4: add miscellaneous device for ioctls 2008-10-16 11:21:39 -07:00
auto_fs4.h autofs4: add miscellaneous device for ioctls 2008-10-16 11:21:39 -07:00
auto_fs.h
auxvec.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h vmscan: split LRU lists into anon & file sets 2008-10-20 08:50:25 -07:00
backlight.h
baycom.h
bcd.h include/linux/bcd.h: remove comments 2008-10-20 08:52:42 -07:00
bfs_fs.h
binfmts.h Allow recursion in binfmt_script and binfmt_misc 2008-10-16 11:21:38 -07:00
bio.h bio: define __BIOVEC_PHYS_MERGEABLE 2008-11-06 08:41:55 +01:00
bit_spinlock.h
bitmap.h Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb 2008-10-23 08:20:34 -07:00
bitops.h
bitrev.h
blkdev.h Enforce a minimum SG_IO timeout 2008-12-05 14:49:18 -08:00
blkpg.h
blktrace_api.h blktrace: add support for driver data 2008-10-17 08:46:57 +02:00
blockgroup_lock.h
bootmem.h
bottom_half.h
bpqether.h
brcmphy.h
bsg.h
buffer_head.h fs: buffer lock use lock bitops 2008-10-20 08:52:32 -07:00
bug.h
byteorder.h
c2port.h Add c2 port support 2008-11-12 17:17:18 -08:00
cache.h
can.h
capability.h
capi.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h [PATCH] switch cdrom_{open,release,ioctl} to sane APIs 2008-10-21 07:47:22 -04:00
cfag12864b.h
cgroup_subsys.h container freezer: implement freezer cgroup subsystem 2008-10-20 08:52:34 -07:00
cgroup.h cgroups: tiny cleanups 2008-10-30 11:38:45 -07:00
cgroupstats.h
chio.h
circ_buf.h
clk.h include/linux/clk.h: fix comment 2008-10-16 11:21:32 -07:00
clockchips.h
clocksource.h
cm4000_cs.h
cn_proc.h
cnt32_to_63.h clarify usage expectations for cnt32_to_63() 2008-11-09 11:17:33 -08:00
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_psdev.h
coda.h
coff.h
com20020.h
compat.h remove __ARCH_WANT_COMPAT_SYS_PTRACE 2008-11-30 11:00:15 -08:00
compiler-gcc3.h
compiler-gcc4.h
compiler-gcc.h
compiler-intel.h
compiler.h ftrace: move notrace to compiler.h 2008-10-14 10:35:08 +02:00
completion.h
comstats.h
concap.h
configfs.h
connector.h
console_struct.h Revert "vt: fix background color on line feed" 2008-10-14 12:12:02 -07:00
console.h
consolemap.h
const.h
cpu.h kernel/cpu.c: create a CPU_STARTING cpu_chain notifier 2008-09-08 19:25:24 +02:00
cpufreq.h [CPUFREQ][1/6] cpufreq: Add cpu number parameter to __cpufreq_driver_getavg() 2008-10-09 13:52:43 -04:00
cpuidle.h
cpumask.h cpumask: introduce new API, without changing anything, v3 2008-11-09 21:09:54 +01:00
cpuset.h cpuset: update top cpuset's mems after adding a node 2008-11-19 18:49:58 -08:00
cramfs_fs_sb.h
cramfs_fs.h
crash_dump.h proc: move /proc/vmcore creation to fs/proc/vmcore.c 2008-10-23 18:51:22 +04:00
crc7.h
crc16.h
crc32.h
crc32c.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h
crypto.h
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dca.h
dcache.h [PATCH vfs-2.6 2/6] vfs: add d_ancestor() 2008-10-23 05:13:16 -04:00
dccp.h This reverts "Merge branch 'dccp' of git://eden-feed.erg.abdn.ac.uk/dccp_exp" 2008-09-09 13:27:22 +02:00
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
device_cgroup.h
device-mapper.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev 2008-10-23 10:23:07 -07:00
device.h i2c: Constify i2c_get_clientdata's parameter 2008-10-22 20:21:31 +02:00
devpts_fs.h Add an instance parameter devpts interfaces 2008-10-13 09:51:43 -07:00
dio.h
dirent.h
display.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h
dm9000.h
dm-dirty-log.h
dm-io.h
dm-ioctl.h
dm-kcopyd.h
dm-region-hash.h dm raid1: separate region_hash interface part1 2008-10-21 17:45:06 +01:00
dma_remapping.h intel-iommu: IA64 support 2008-10-18 14:29:15 +01:00
dma-attrs.h
dma-mapping.h convert swiotlb to use dma_get_mask 2008-09-19 10:20:41 +02:00
dmaengine.h
dmapool.h
dmar.h dmar: fix using early fixmap mapping for DMAR table parsing 2008-10-16 16:53:04 +02:00
dmi.h Automatic MODULE_ALIAS() for DMI match tables. 2008-10-13 16:05:06 +01:00
dn.h
dnotify.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1wm.h
ds1286.h MIPS: IP22/28: Switch over to RTC class driver 2008-10-15 12:46:51 +01:00
ds17287rtc.h
dtlk.h
dw_dmac.h
dynamic_printk.h driver core: basic infrastructure for per-module dynamic debug messages 2008-10-16 09:24:47 -07:00
edac.h
edd.h
eeprom_93cx6.h
efi.h x86: Add UV EFI table entry v4 2008-10-16 16:53:13 +02:00
efs_fs_sb.h
efs_vh.h
eisa.h
elevator.h block: Add interface to abort queued requests 2008-10-09 08:56:13 +02:00
elf-em.h
elf-fdpic.h
elf.h x86: ioperm user_regset 2008-10-12 12:05:55 +02:00
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventfd.h
eventpoll.h
exportfs.h
ext2_fs_sb.h
ext2_fs.h include: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
ext3_fs_i.h
ext3_fs_sb.h
ext3_fs.h ext3: add an option to control error handling on file data 2008-10-20 08:52:37 -07:00
ext3_jbd.h include: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
f75375s.h
fadvise.h
falloc.h
fault-inject.h
fb.h fb: convert lock/unlock_kernel() into local fb mutex 2008-10-20 08:52:36 -07:00
fcdevice.h
fcntl.h
fd.h floppy: support arbitrary first-sector numbers 2008-10-09 08:56:19 +02:00
fddidevice.h
fdreg.h
fdtable.h
fib_rules.h
fiemap.h vfs: vfs-level fiemap interface 2008-10-08 19:44:18 -04:00
file.h [PATCH] introduce fmode_t, do annotations 2008-10-21 07:47:06 -04:00
filter.h
firewire-cdev.h firewire: Add more documentation to firewire-cdev.h 2008-10-15 22:21:11 +02:00
firewire-constants.h
firmware-map.h
firmware.h
flat.h
font.h
freezer.h freezer_cg: use thaw_process() in unfreeze_cgroup() 2008-10-30 11:38:45 -07:00
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h [PATCH 2/2] documnt FMODE_ constants 2008-12-04 04:22:58 -05:00
fsl_devices.h gianfar: Fix race in TBI/SerDes configuration 2008-10-31 00:59:46 -04:00
fsnotify.h [PATCH] introduce fmode_t, do annotations 2008-10-21 07:47:06 -04:00
ftrace.h KSYM_SYMBOL_LEN fixes 2008-12-10 08:01:54 -08:00
fuse.h fuse: implement nonseekable open 2008-10-16 16:08:57 +02:00
futex.h
gameport.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h
genhd.h block: make add_partition() return pointer to hd_struct 2008-11-18 15:08:56 +01:00
getcpu.h
gfp.h
gfs2_ondisk.h GFS2: Add UUID to GFS2 sb 2008-09-22 07:29:31 +01:00
gigaset_dev.h
gpio_keys.h
gpio_mouse.h
gpio.h gpio_free might sleep, generic part 2008-10-16 11:21:40 -07:00
hardirq.h "Tree RCU": scalable classic RCU implementation 2008-12-18 21:56:04 +01:00
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h
hid-debug.h
hid.h HID: fix oops during suspend of unbound HID devices 2008-10-27 15:06:01 +01:00
hiddev.h HID: hiddev.h: Fix example code. 2008-10-14 23:51:02 +02:00
hidraw.h
highmem.h Allow architectures to override copy_user_highpage() 2008-11-27 23:39:48 +00:00
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h hrtimer: clean up unused callback modes 2008-11-12 09:54:40 +01:00
htirq.h
hugetlb.h proc: switch /proc/meminfo to seq_file 2008-10-23 13:52:40 +04:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hysdn_if.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h i2c-algo-pcf: Add adapter hooks around xfer begin and end 2008-10-22 20:21:30 +02:00
i2c-algo-sgi.h
i2c-dev.h
i2c-gpio.h
i2c-id.h V4L/DVB (9240): saa7127: Fix two typos 2008-10-17 17:25:11 -03:00
i2c-ocores.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c.h i2c: Add info->archdata field 2008-10-22 20:21:33 +02:00
i2o-dev.h
i2o.h i2o: Fix 32/64bit DMA locking 2008-10-16 11:21:38 -07:00
i8k.h
i7300_idle.h i7300_idle: Disable ioat channel only on platforms where ile driver can load 2008-10-24 12:54:18 -04:00
i8042.h
ibmtr.h
icmp.h
icmpv6.h IPV6: Fix default gateway criteria wrt. HIGH/LOW preference radv option 2008-10-15 16:03:01 -07:00
ide.h amd74xx: workaround unreliable AltStatus register for nVidia controllers 2008-12-02 20:40:03 +01:00
idr.h lib/idr.c: fix rcu related race with idr_find 2008-12-01 19:55:25 -08:00
ieee80211.h mac80211: mesh portal functionality support 2008-09-24 16:18:02 -04:00
if_addr.h
if_addrlabel.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h
if_cablemodem.h
if_ec.h
if_eql.h
if_ether.h net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
if_fc.h
if_fddi.h net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
if_frad.h
if_hippi.h net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
if_infiniband.h
if_link.h net: network device name ifalias support 2008-09-22 21:28:11 -07:00
if_ltalk.h
if_macvlan.h
if_packet.h
if_phonet.h phonet: Protect if_phonet.h against multiple inclusions. 2008-10-01 01:30:19 -07:00
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_strip.h
if_tr.h
if_tun.h
if_tunnel.h gre: Add netlink interface 2008-10-09 11:59:55 -07:00
if_vlan.h net: fix packet socket delivery in rx irq handler 2008-11-04 14:49:57 -08:00
if.h net: network device name ifalias support 2008-09-22 21:28:11 -07:00
igmp.h net: Rationalise email address: Network Specific Parts 2008-10-13 19:01:08 -07:00
ihex.h
in6.h
in_route.h
in.h ipv4: Implement IP_TRANSPARENT socket option 2008-10-01 07:30:02 -07:00
inet_diag.h
inet_lro.h
inet.h
inetdevice.h ipv4: add mc_count to in_device. 2008-10-07 15:34:37 -07:00
init_ohci1394_dma.h
init_task.h
init.h adjust init section definitions 2008-10-29 22:02:09 +01:00
initrd.h
inotify.h Fix inotify watch removal/umount races 2008-11-15 12:26:44 -08:00
input-polldev.h
input.h HID: map macbook keys for "Expose" and "Dashboard" 2008-11-13 10:31:36 +01:00
intel-iommu.h intel-iommu: IA64 support 2008-10-18 14:29:15 +01:00
interrupt.h Merge branch 'genirq-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-20 13:23:01 -07:00
io-mapping.h io mapping: clean up #ifdefs 2008-11-03 18:21:45 +01:00
io.h
ioc3.h
ioc4.h
iocontext.h
ioctl.h
iommu-helper.h introduce generic iommu_num_pages function 2008-10-16 11:21:33 -07:00
ioport.h Merge branch 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-16 15:17:40 -07:00
ioprio.h
iova.h VT-d: Changes to support KVM 2008-10-15 14:24:08 +02:00
ip6_tunnel.h
ip_vs.h
ip.h
ipc_namespace.h
ipc.h
ipmi_msgdefs.h
ipmi_smi.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h
ipx.h
irda.h
irq_cpustat.h
irq.h irq.h: fix missing/extra kernel-doc 2008-11-23 10:52:45 +01:00
irqflags.h
irqnr.h genirq: fix off by one and coding style 2008-10-21 15:54:40 +02:00
irqreturn.h
isa.h
isapnp.h
iscsi_ibft.h
isdn_divertif.h
isdn_ppp.h isdn: isdn_ppp: Use SKB list facilities instead of home-grown implementation. 2008-09-22 01:15:02 -07:00
isdn.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ivtv.h V4L/DVB (8959): include <linux/videodev2.h> into linux/ivtv.h 2008-10-12 09:37:01 -02:00
ivtvfb.h
ixjuser.h
jbd2.h ext4: Replace hackish ext4_mb_poll_new_transaction with commit callback 2008-10-16 20:00:24 -04:00
jbd.h jbd: fix error handling for checkpoint io 2008-10-23 08:55:01 -07:00
jffs2.h
jhash.h
jiffies.h
journal-head.h Remove Andrew Morton's old email accounts 2008-10-16 11:21:32 -07:00
joystick.h
kallsyms.h vsprintf: use new vsprintf symbolic function pointer format 2008-10-16 11:21:31 -07:00
kbd_diacr.h
kbd_kern.h
Kbuild byteorder: add new headers for make headers-install 2008-10-20 08:52:40 -07:00
kbuild.h
kd.h
kdebug.h
kdev_t.h
kernel_stat.h Merge branch 'genirq-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-20 13:23:01 -07:00
kernel.h Add 'pr_fmt()' format modifier to pr_xyz macros. 2008-11-15 11:43:37 -08:00
kernelcapi.h
kexec.h
key-type.h
key-ui.h
key.h add key_revoke() dummy for KEYS=n 2008-10-12 11:44:37 -07:00
keyboard.h
keyctl.h
kfifo.h
kgdb.h
klist.h klist: don't iterate over deleted entries 2008-10-09 08:56:04 +02:00
kmalloc_sizes.h
kmod.h pm: rework disabling of user mode helpers during suspend/hibernation 2008-10-16 11:21:29 -07:00
kobj_map.h
kobject.h
kprobes.h ftrace: ignore functions that cannot be kprobe-ed 2008-10-14 10:34:22 +02:00
kref.h
ks0108.h
kthread.h
ktime.h
kvm_host.h KVM: Fix guest shared interrupt with in-kernel irqchip 2008-10-28 14:21:34 +02:00
kvm_para.h
kvm_types.h
kvm.h KVM: Future-proof device assignment ABI 2008-10-28 14:22:15 +02:00
lapb.h
latencytop.h
lcd.h lcd: allow lcd device to handle mode change events 2008-09-23 22:01:33 +01:00
leds-pca9532.h
leds.h leds: Make default trigger fields const 2008-10-20 22:34:12 +01:00
lguest_launcher.h
lguest.h
libata.h libata: blacklist Seagate drives which time out FLUSH_CACHE when used with NCQ 2008-12-01 13:49:27 -05:00
libps2.h
license.h
limits.h
linkage.h ftrace: move notrace to compiler.h 2008-10-14 10:35:08 +02:00
linux_logo.h
list.h
llc.h
lm_interface.h
lmb.h
lockdep.h lockdep: include/linux/lockdep.h - fix warning in net/bluetooth/af_bluetooth.c 2008-11-13 23:19:10 -08:00
log2.h
loop.h
lp.h
lzo.h
m48t86.h
magic.h integrity: special fs magic 2008-10-13 09:47:43 +11:00
major.h block: implement extended dev numbers 2008-10-09 08:56:06 +02:00
map_to_7segment.h Input: move map_to_7segment.h to include/linux 2008-10-10 23:16:16 -04:00
maple.h
marker.h markers: fix synchronize marker unregister static inline 2008-10-14 10:39:28 +02:00
math64.h
matroxfb.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mdio-bitbang.h
memcontrol.h memcg: allocate all page_cgroup at boot 2008-10-20 08:52:39 -07:00
memory_hotplug.h
memory.h hotplug_memory_notifier section annotation 2008-11-30 10:03:38 -08:00
mempolicy.h
mempool.h
memstick.h memstick: fix MSProHG 8-bit interface mode support 2008-09-13 14:41:52 -07:00
meye.h
migrate.h vmscan: move isolate_lru_page() to vmscan.c 2008-10-20 08:50:25 -07:00
mii.h
minix_fs.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h vmscan: kill unused lru functions 2008-10-20 08:52:31 -07:00
mm_types.h memcg: allocate all page_cgroup at boot 2008-10-20 08:52:39 -07:00
mm.h mlock: mlocked pages are unevictable 2008-10-20 08:52:30 -07:00
mman.h
mmdebug.h
mmiotrace.h mmiotrace: remove left-over marker cruft 2008-10-14 10:37:17 +02:00
mmtimer.h
mmu_notifier.h
mmzone.h memcg: allocate all page_cgroup at boot 2008-10-20 08:52:39 -07:00
mnt_namespace.h
mod_devicetable.h HID: fix hid_device_id for cross compiling 2008-10-29 00:51:25 +01:00
module.h param: Fix duplicate module prefixes 2008-10-22 10:00:23 +11:00
moduleloader.h
moduleparam.h core_param() for genuinely core kernel parameters 2008-10-22 10:00:23 +11:00
mount.h include/linux/mount.h: remove CVS keyword 2008-10-16 11:21:30 -07:00
mpage.h
mqueue.h
mroute6.h
mroute.h
msdos_fs.h fat: Cleanup FAT attribute stuff 2008-11-06 15:41:21 -08:00
msg.h
msi.h
mtio.h
mutex-debug.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
n_r3964.h
namei.h [PATCH vfs-2.6 6/6] vfs: add LOOKUP_RENAME_TARGET intent 2008-10-23 05:13:20 -04: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 reintroduce accept4 2008-11-19 18:49:57 -08:00
netdevice.h netpoll: fix race on poll_list resulting in garbage entry 2008-12-09 23:22:26 -08:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h netfilter: netns: remove nf_*_net() wrappers 2008-10-08 11:35:01 +02:00
netlink.h ipsec: Put dumpers on the dump list 2008-10-01 07:03:24 -07:00
netpoll.h
netrom.h
nfs2.h
nfs3.h
nfs4_acl.h
nfs4_mount.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h NFS: Clean up nfs_sb_active/nfs_sb_deactive 2008-10-06 20:08:26 -04:00
nfs_fs.h Make nfs_file_cred more robust. 2008-10-17 13:06:45 -04:00
nfs_idmap.h
nfs_iostat.h
nfs_mount.h NFS: Add options for finer control of the lookup cache 2008-10-07 17:22:20 -04:00
nfs_page.h
nfs_xdr.h NFS: Fix the resolution problem with nfs_inode_attrs_need_update() 2008-10-14 19:23:17 -04:00
nfs.h
nfsacl.h
nfsd_idmap.h
nl80211.h cfg80211: Add new wireless regulatory infrastructure 2008-09-15 16:48:19 -04:00
nls.h
nmi.h
node.h
nodemask.h
notifier.h kernel/cpu.c: create a CPU_STARTING cpu_chain notifier 2008-09-08 19:25:24 +02:00
nsc_gpio.h
nsproxy.h
nubus.h
numa.h
nvram.h
of_device.h
of_gpio.h
of_i2c.h
of_platform.h
of_spi.h
of.h of: Add new helper of_parse_phandles_with_args() 2008-10-13 10:55:47 +11:00
oom.h
oprofile.h powerpc/oprofile: Fix mutex locking for cell spu-oprofile 2008-10-21 15:17:48 +11:00
page_cgroup.h meminit section warnings 2008-11-30 10:03:35 -08:00
page-flags.h mlock: mlocked pages are unevictable 2008-10-20 08:52:30 -07:00
page-isolation.h
pageblock-flags.h
pagemap.h mm: page lock use lock bitops 2008-10-20 08:52:32 -07:00
pagevec.h Unevictable LRU Infrastructure 2008-10-20 08:50:26 -07:00
param.h
parport_pc.h
parport.h parport: remove CVS keywords 2008-10-16 11:21:49 -07:00
parser.h vfs: Use const for kernel parser table 2008-10-13 10:10:37 -07:00
patchkey.h
path.h
pci_hotplug.h PCI: Hotplug core: remove 'name' 2008-10-22 16:42:43 -07:00
pci_ids.h Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2008-10-23 10:20:36 -07:00
pci_regs.h PCI: add support for function level reset 2008-10-22 16:42:35 -07:00
pci-acpi.h
pci-aspm.h
pci.h PCI: annotate return value of pci_ioremap_bar with __iomem 2008-11-03 14:31:18 -08:00
pcieport_if.h
pda_power.h
percpu_counter.h revert "percpu_counter: new function percpu_counter_sum_and_set" 2008-12-10 08:01:52 -08:00
percpu.h
personality.h
pfkeyv2.h xfrm: MIGRATE enhancements (draft-ebalard-mext-pfkey-enhanced-migrate) 2008-10-05 13:33:42 -07:00
pfn.h generic: make PFN_PHYS explicitly return phys_addr_t 2008-09-14 17:24:26 +02:00
pg.h
phantom.h
phonedev.h
phonet.h Phonet: do not reply to indication reset packets 2008-10-26 23:07:25 -07:00
phy_fixed.h
phy.h phylib: add mdiobus_{read,write} 2008-10-08 16:38:41 -07:00
pid_namespace.h pid_ns: kill the now unused task_child_reaper() 2008-10-16 11:21:48 -07:00
pid.h
pim.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h pkt_sched: Add multiqueue scheduler support 2008-09-12 16:29:34 -07:00
pktcdvd.h
platform_device.h platform: add new device registration helper 2008-10-16 09:24:51 -07:00
plist.h
pm_qos_params.h
pm_wakeup.h
pm.h include: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
pmu.h
pnp.h Merge branch 'linus' into test 2008-10-23 00:11:07 -04:00
poison.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
posix-timers.h posix-timers: kill ->it_sigev_signo and ->it_sigev_value 2008-09-24 15:45:48 +02:00
power_supply.h
ppdev.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
prctl.h
preempt.h
prefetch.h
prio_heap.h
prio_tree.h
proc_fs.h proc: remove fs/proc/proc_misc.c 2008-10-23 18:54:05 +04:00
profile.h profiling: fix up CONFIG_PROC_FS=n build 2008-10-23 08:55:01 -07:00
proportions.h
ptrace.h make ptrace_untrace() static 2008-10-20 08:52:39 -07:00
pwm_backlight.h
pwm.h
qnx4_fs.h
qnxtypes.h
quicklist.h
quota.h quota: remove CVS keywords 2008-10-16 11:21:46 -07:00
quotaio_v1.h
quotaio_v2.h
quotaops.h quota: remove CVS keywords 2008-10-16 11:21:46 -07:00
radeonfb.h
radix-tree.h
raid_class.h
ramfs.h mm: tiny-shmem nommu fix 2008-10-02 15:53:13 -07:00
random.h
ratelimit.h remove ratelimt() 2008-11-12 17:17:17 -08:00
raw.h
rbtree.h
rcuclassic.h rcu: increase RCU stall-check timeouts 2008-11-03 18:36:48 +01:00
rculist.h
rcupdate.h "Tree RCU": scalable classic RCU implementation 2008-12-18 21:56:04 +01:00
rcupreempt_trace.h
rcupreempt.h
rcutree.h "Tree RCU": scalable classic RCU implementation 2008-12-18 21:56:04 +01:00
reboot.h
reciprocal_div.h
regset.h
reiserfs_acl.h
reiserfs_fs_i.h
reiserfs_fs_sb.h [PATCH] remember mode of reiserfs journal 2008-10-21 07:49:04 -04:00
reiserfs_fs.h include: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
reiserfs_xattr.h
relay.h
res_counter.h
resource.h mm: increase the default mlock limit from 32k to 64k 2008-10-30 11:38:45 -07:00
resume-trace.h
rfkill.h
ring_buffer.h ring-buffer: buffer record on/off switch 2008-11-11 15:02:04 -05:00
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h make mm/rmap.c:anon_vma_cachep static 2008-10-20 08:52:40 -07:00
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc-v3020.h
rtc.h
rtmutex.h include: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
rtnetlink.h Phonet: global definitions 2008-09-22 19:51:15 -07:00
rwsem-spinlock.h
rwsem.h
rxrpc.h
sc26198.h
scatterlist.h
scc.h
sched.h epoll: introduce resource usage limits 2008-12-01 19:55:24 -08:00
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdla.h
seccomp.h
securebits.h
security.h nfsd: fix vm overcommit crash fix #2 2008-12-02 15:50:40 -08:00
selection.h
selinux_netlink.h
selinux.h
sem.h
semaphore.h
seq_file_net.h
seq_file.h seq_file: add seq_cpumask_list(), seq_nodemask_list() 2008-10-20 08:52:39 -07:00
seqlock.h
serial167.h
serial_8250.h
serial_core.h serial: sh-sci: fix cannot work SH7723 SCIFA 2008-11-12 12:29:56 +09:00
serial_pnx8xxx.h
serial_reg.h
serial_sci.h
serial.h tty: Cris has a nice RS485 ioctl so we should steal it 2008-10-13 09:51:40 -07:00
serialP.h
serio.h
sh_intc.h sh: Move the shared INTC code out to drivers/sh/ 2008-10-01 16:13:54 +09:00
shm.h
shmem_fs.h
signal.h
signalfd.h
skbuff.h net: packet split receive api 2008-10-07 14:22:33 -07:00
slab_def.h
slab.h slab: document SLAB_DESTROY_BY_RCU 2008-11-13 20:49:02 +02:00
slob_def.h
slub_def.h
sm501-regs.h
sm501.h
smb_fs_i.h
smb_fs_sb.h
smb_fs.h
smb_mount.h
smb.h smb.h: do not include linux/time.h in userspace 2008-09-23 08:09:13 -07:00
smbno.h
smc91x.h Export smc91x led definitions 2008-09-09 17:41:42 +02:00
smc911x.h smc911x: Add IRQ polarity configuration 2008-10-22 07:00:38 -04:00
smp_lock.h
smp.h Define smp_call_function_many for UP 2008-12-15 16:28:57 -08:00
snmp.h
socket.h Phonet: implement GPRS virtual interface over PEP socket 2008-10-05 11:16:16 -07:00
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
spinlock_types.h
spinlock_up.h
spinlock.h
splice.h
srcu.h
stacktrace.h include/linux/stacktrace.h: declare struct task_struct 2008-10-03 18:22:18 -07:00
stallion.h
start_kernel.h
stat.h
statfs.h
stddef.h
stop_machine.h
string_helpers.h [SCSI] lib: add generic helper to print sizes rounded to the correct SI range 2008-10-03 11:46:14 -05:00
string.h linux/string.h: fix comment typo 2008-11-02 10:15:07 -08:00
stringify.h
superhyway.h
suspend_ioctls.h
suspend.h
svga.h
swab.h byteorder: use generic C version for value byteswapping 2008-10-20 08:52:40 -07:00
swap.h vmscan: unevictable LRU scan sysctl 2008-10-20 08:52:31 -07:00
swapops.h
swiotlb.h introduce generic header file for the software IO/TLB 2008-10-16 11:21:28 -07:00
synclink.h
sys.h
syscalls.h reintroduce accept4 2008-11-19 18:49:57 -08:00
sysctl.h sysctl: simplify ->strategy 2008-10-16 11:21:47 -07:00
sysdev.h
sysfs.h x86: sysfs: kill owner field from attribute 2008-10-20 08:52:42 -07:00
sysrq.h
sysv_fs.h
task_io_accounting_ops.h
task_io_accounting.h Remove Andrew Morton's old email accounts 2008-10-16 11:21:32 -07:00
taskstats_kern.h
taskstats.h
tc.h
tcp.h tcp: kill pointless urg_mode 2008-10-07 14:43:06 -07:00
telephony.h telephony: trivial: fix up email address 2008-11-11 09:30:23 -08:00
termios.h tty: Add termiox 2008-10-13 09:51:40 -07:00
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thread_info.h
threads.h
tick.h NOHZ: unify the nohz function calls in irq_enter() 2008-10-17 18:13:38 +02:00
tifm.h
time.h Merge branch 'timers/range-hrtimers' into v28-range-hrtimers-for-linus-v2 2008-10-22 09:48:06 +02:00
timer.h Add round_jiffies_up and related routines 2008-11-06 08:42:48 +01:00
timerfd.h
times.h
timex.h ntp: improve adjtimex frequency rounding 2008-09-24 17:33:13 +02:00
tiocl.h
tipc_config.h
tipc.h
topology.h sched: fine-tune SD_SIBLING_INIT 2008-11-07 16:09:23 +01:00
toshiba.h
tracehook.h
tracepoint.h tracepoints: synchronize unregister static inline 2008-10-14 10:39:31 +02:00
transport_class.h
trdevice.h
tsacct_kern.h
tty_driver.h Add an instance parameter devpts interfaces 2008-10-13 09:51:43 -07:00
tty_flip.h
tty_ldisc.h
tty.h tty: some ICANON magic is in the wrong places 2008-10-13 09:51:44 -07:00
typecheck.h
types.h [PATCH] introduce fmode_t, do annotations 2008-10-21 07:47:06 -04:00
uaccess.h
ucb1400.h
udf_fs_i.h
udp.h
uinput.h
uio_driver.h
uio.h
ultrasound.h
un.h
unistd.h
unwind.h
usb_usual.h
usb.h USB: don't register endpoints for interfaces that are going away 2008-11-13 14:45:00 -08:00
usbdevice_fs.h
user_namespace.h
user.h
utime.h
uts.h
utsname.h
uwb.h uwb: add symlinks in sysfs between radio controllers and PALs 2008-09-17 16:54:35 +01:00
vermagic.h
veth.h
vfs.h
via.h
video_decoder.h
video_encoder.h
video_output.h
videodev2.h V4L/DVB (9320): v4l2: Add 10-bit RAW Bayer formats 2008-10-21 14:31:15 -02:00
videodev.h
videotext.h
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_config.h
virtio_console.h
virtio_net.h
virtio_pci.h
virtio_ring.h
virtio_rng.h
virtio.h
vmalloc.h proc: move /proc/vmallocinfo to mm/vmalloc.c 2008-10-23 15:48:28 +04:00
vmstat.h proc: move /proc/zoneinfo boilerplate to mm/vmstat.c 2008-10-23 17:35:04 +04:00
vt_buffer.h
vt_kern.h tty: Remove more special casing and out of place code 2008-10-13 09:51:42 -07:00
vt.h
w1-gpio.h
wait.h wait: kill is_sync_wait() 2008-10-16 11:21:31 -07:00
wanrouter.h
watchdog.h
wireless.h
wlp.h uwb: add the uwb include files 2008-09-17 16:54:23 +01:00
wm97xx_batt.h [ARM] 5248/1: wm97xx generic battery driver 2008-10-02 22:48:34 +01:00
wm97xx.h
workqueue.h cpumask: introduce new API, without changing anything 2008-11-06 09:05:33 +01:00
writeback.h vfs: Add no_nrwrite_index_update writeback control flag 2008-10-16 10:09:17 -04:00
x25.h
xattr.h
xfrm.h xfrm: MIGRATE enhancements (draft-ebalard-mext-pfkey-enhanced-migrate) 2008-10-05 13:33:42 -07:00
xilinxfb.h
yam.h
zconf.h
zlib.h
zorro_ids.h
zorro.h
zutil.h