mirror-linux/include/linux
Mathieu Desnoyers 97e1c18e8d tracing: Kernel Tracepoints
Implementation of kernel tracepoints. Inspired from the Linux Kernel
Markers. Allows complete typing verification by declaring both tracing
statement inline functions and probe registration/unregistration static
inline functions within the same macro "DEFINE_TRACE". No format string
is required. See the tracepoint Documentation and Samples patches for
usage examples.

Taken from the documentation patch :

"A tracepoint placed in code provides a hook to call a function (probe)
that you can provide at runtime. A tracepoint can be "on" (a probe is
connected to it) or "off" (no probe is attached). When a tracepoint is
"off" it has no effect, except for adding a tiny time penalty (checking
a condition for a branch) and space penalty (adding a few bytes for the
function call at the end of the instrumented function and adds a data
structure in a separate section).  When a tracepoint is "on", the
function you provide is called each time the tracepoint is executed, in
the execution context of the caller. When the function provided ends its
execution, it returns to the caller (continuing from the tracepoint
site).

You can put tracepoints at important locations in the code. They are
lightweight hooks that can pass an arbitrary number of parameters, which
prototypes are described in a tracepoint declaration placed in a header
file."

Addition and removal of tracepoints is synchronized by RCU using the
scheduler (and preempt_disable) as guarantees to find a quiescent state
(this is really RCU "classic"). The update side uses rcu_barrier_sched()
with call_rcu_sched() and the read/execute side uses
"preempt_disable()/preempt_enable()".

We make sure the previous array containing probes, which has been
scheduled for deletion by the rcu callback, is indeed freed before we
proceed to the next update. It therefore limits the rate of modification
of a single tracepoint to one update per RCU period. The objective here
is to permit fast batch add/removal of probes on _different_
tracepoints.

Changelog :
- Use #name ":" #proto as string to identify the tracepoint in the
  tracepoint table. This will make sure not type mismatch happens due to
  connexion of a probe with the wrong type to a tracepoint declared with
  the same name in a different header.
- Add tracepoint_entry_free_old.
- Change __TO_TRACE to get rid of the 'i' iterator.

Masami Hiramatsu <mhiramat@redhat.com> :
Tested on x86-64.

Performance impact of a tracepoint : same as markers, except that it
adds about 70 bytes of instructions in an unlikely branch of each
instrumented function (the for loop, the stack setup and the function
call). It currently adds a memory read, a test and a conditional branch
at the instrumentation site (in the hot path). Immediate values will
eventually change this into a load immediate, test and branch, which
removes the memory read which will make the i-cache impact smaller
(changing the memory read for a load immediate removes 3-4 bytes per
site on x86_32 (depending on mov prefixes), or 7-8 bytes on x86_64, it
also saves the d-cache hit).

About the performance impact of tracepoints (which is comparable to
markers), even without immediate values optimizations, tests done by
Hideo Aoki on ia64 show no regression. His test case was using hackbench
on a kernel where scheduler instrumentation (about 5 events in code
scheduler code) was added.

Quoting Hideo Aoki about Markers :

I evaluated overhead of kernel marker using linux-2.6-sched-fixes git
tree, which includes several markers for LTTng, using an ia64 server.

While the immediate trace mark feature isn't implemented on ia64, there
is no major performance regression. So, I think that we don't have any
issues to propose merging marker point patches into Linus's tree from
the viewpoint of performance impact.

I prepared two kernels to evaluate. The first one was compiled without
CONFIG_MARKERS. The second one was enabled CONFIG_MARKERS.

I downloaded the original hackbench from the following URL:
http://devresources.linux-foundation.org/craiger/hackbench/src/hackbench.c

I ran hackbench 5 times in each condition and calculated the average and
difference between the kernels.

    The parameter of hackbench: every 50 from 50 to 800
    The number of CPUs of the server: 2, 4, and 8

Below is the results. As you can see, major performance regression
wasn't found in any case. Even if number of processes increases,
differences between marker-enabled kernel and marker- disabled kernel
doesn't increase. Moreover, if number of CPUs increases, the differences
doesn't increase either.

Curiously, marker-enabled kernel is better than marker-disabled kernel
in more than half cases, although I guess it comes from the difference
of memory access pattern.

* 2 CPUs

Number of | without      | with         | diff     | diff    |
processes | Marker [Sec] | Marker [Sec] |   [Sec]  |   [%]   |
--------------------------------------------------------------
       50 |      4.811   |       4.872  |  +0.061  |  +1.27  |
      100 |      9.854   |      10.309  |  +0.454  |  +4.61  |
      150 |     15.602   |      15.040  |  -0.562  |  -3.6   |
      200 |     20.489   |      20.380  |  -0.109  |  -0.53  |
      250 |     25.798   |      25.652  |  -0.146  |  -0.56  |
      300 |     31.260   |      30.797  |  -0.463  |  -1.48  |
      350 |     36.121   |      35.770  |  -0.351  |  -0.97  |
      400 |     42.288   |      42.102  |  -0.186  |  -0.44  |
      450 |     47.778   |      47.253  |  -0.526  |  -1.1   |
      500 |     51.953   |      52.278  |  +0.325  |  +0.63  |
      550 |     58.401   |      57.700  |  -0.701  |  -1.2   |
      600 |     63.334   |      63.222  |  -0.112  |  -0.18  |
      650 |     68.816   |      68.511  |  -0.306  |  -0.44  |
      700 |     74.667   |      74.088  |  -0.579  |  -0.78  |
      750 |     78.612   |      79.582  |  +0.970  |  +1.23  |
      800 |     85.431   |      85.263  |  -0.168  |  -0.2   |
--------------------------------------------------------------

* 4 CPUs

Number of | without      | with         | diff     | diff    |
processes | Marker [Sec] | Marker [Sec] |   [Sec]  |   [%]   |
--------------------------------------------------------------
       50 |      2.586   |       2.584  |  -0.003  |  -0.1   |
      100 |      5.254   |       5.283  |  +0.030  |  +0.56  |
      150 |      8.012   |       8.074  |  +0.061  |  +0.76  |
      200 |     11.172   |      11.000  |  -0.172  |  -1.54  |
      250 |     13.917   |      14.036  |  +0.119  |  +0.86  |
      300 |     16.905   |      16.543  |  -0.362  |  -2.14  |
      350 |     19.901   |      20.036  |  +0.135  |  +0.68  |
      400 |     22.908   |      23.094  |  +0.186  |  +0.81  |
      450 |     26.273   |      26.101  |  -0.172  |  -0.66  |
      500 |     29.554   |      29.092  |  -0.461  |  -1.56  |
      550 |     32.377   |      32.274  |  -0.103  |  -0.32  |
      600 |     35.855   |      35.322  |  -0.533  |  -1.49  |
      650 |     39.192   |      38.388  |  -0.804  |  -2.05  |
      700 |     41.744   |      41.719  |  -0.025  |  -0.06  |
      750 |     45.016   |      44.496  |  -0.520  |  -1.16  |
      800 |     48.212   |      47.603  |  -0.609  |  -1.26  |
--------------------------------------------------------------

* 8 CPUs

Number of | without      | with         | diff     | diff    |
processes | Marker [Sec] | Marker [Sec] |   [Sec]  |   [%]   |
--------------------------------------------------------------
       50 |      2.094   |       2.072  |  -0.022  |  -1.07  |
      100 |      4.162   |       4.273  |  +0.111  |  +2.66  |
      150 |      6.485   |       6.540  |  +0.055  |  +0.84  |
      200 |      8.556   |       8.478  |  -0.078  |  -0.91  |
      250 |     10.458   |      10.258  |  -0.200  |  -1.91  |
      300 |     12.425   |      12.750  |  +0.325  |  +2.62  |
      350 |     14.807   |      14.839  |  +0.032  |  +0.22  |
      400 |     16.801   |      16.959  |  +0.158  |  +0.94  |
      450 |     19.478   |      19.009  |  -0.470  |  -2.41  |
      500 |     21.296   |      21.504  |  +0.208  |  +0.98  |
      550 |     23.842   |      23.979  |  +0.137  |  +0.57  |
      600 |     26.309   |      26.111  |  -0.198  |  -0.75  |
      650 |     28.705   |      28.446  |  -0.259  |  -0.9   |
      700 |     31.233   |      31.394  |  +0.161  |  +0.52  |
      750 |     34.064   |      33.720  |  -0.344  |  -1.01  |
      800 |     36.320   |      36.114  |  -0.206  |  -0.57  |
--------------------------------------------------------------

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Acked-by: Masami Hiramatsu <mhiramat@redhat.com>
Acked-by: 'Peter Zijlstra' <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-10-14 10:28:28 +02:00
..
amba
byteorder
can
dvb
hdlc
i2c gpio: max732x driver 2008-07-25 10:53:30 -07:00
isdn
lockd
mfd mfd: tc6393 cleanup and update 2008-08-10 23:32:07 +02:00
mlx4 IB/mlx4: Fix up fast register page list format 2008-09-15 14:25:23 -07:00
mmc Fix comment in include/linux/mmc/host.h 2008-10-12 11:04:34 +02:00
mtd Support 'discard sectors' operation in translation layer support core 2008-10-09 08:56:01 +02:00
netfilter netfilter: xtables: provide invoked family value to extensions 2008-10-08 11:35:20 +02: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 remove unused #include <linux/dirent.h>'s 2008-07-25 10:53:34 -07:00
raid
regulator regulator: TI bq24022 Li-Ion Charger driver 2008-07-30 10:10:23 +01:00
rtc rtc-m48t59: allow externally mapped ioaddr 2008-09-03 15:41:57 -07:00
spi [ARM] corgi_lcd: use GPIO API for BACKLIGHT_ON and BACKLIGHT_CONT 2008-09-25 09:38:14 +01:00
ssb ssb: Clean up extraction of MAC addresses from SPROM 2008-08-29 16:24:07 -04:00
sunrpc svcrdma: Fix race between svc_rdma_recvfrom thread and the dto_tasklet 2008-08-13 16:57:31 -04:00
tc_act pkt_action: add new action skbedit 2008-09-12 16:30:20 -07:00
tc_ematch
unaligned
usb Merge branches 'x86/xen', 'x86/build', 'x86/microcode', 'x86/mm-debug-v2', 'x86/memory-corruption-check', 'x86/early-printk', 'x86/xsave', 'x86/ptrace-v2', 'x86/quirks', 'x86/setup', 'x86/spinlocks' and 'x86/signal' into x86/core-v2 2008-10-12 15:50:02 +02:00
8250_pci.h
Kbuild Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-10-11 09:33:18 -07:00
a.out.h
ac97_codec.h
acct.h bsdacct: switch from global bsd_acct_struct instance to per-pidns one 2008-07-25 10:53:47 -07:00
acpi.h
acpi_pmtmr.h
adb.h
adfs_fs.h
adfs_fs_i.h
adfs_fs_sb.h
aer.h
affs_hardblocks.h
agp_backend.h intel/agp: rewrite GTT on resume 2008-08-12 10:13:38 +10:00
agpgart.h
aio.h include/linux/aio.h: removed duplicated include 2008-07-26 12:00:04 -07:00
aio_abi.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm-emulation.h
apm_bios.h
arcdevice.h
arcfb.h
async_tx.h
ata.h ide: lba_capacity_is_ok() -> ata_id_is_lba_capacity_ok() 2008-10-10 22:39:31 +02:00
ata_platform.h
atalk.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-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
auto_fs.h
auto_fs4.h
auxvec.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h
baycom.h
bcd.h
bfs_fs.h
binfmts.h
bio.h block: add some comments around the bio read-write flags 2008-10-09 09:01:10 +02:00
bit_spinlock.h
bitmap.h seq_file: add seq_cpumask(), seq_nodemask() 2008-08-12 16:07:30 -07:00
bitops.h
bitrev.h
blkdev.h block: gendisk integrity wrapper 2008-10-09 08:56:22 +02:00
blkpg.h
blktrace_api.h blktrace: use BLKTRACE_BDEV_SIZE as the name size for setup structure 2008-10-09 08:56:20 +02:00
blockgroup_lock.h
bootmem.h page allocator: use no-panic variant of alloc_bootmem() in alloc_large_system_hash() 2008-08-12 16:07:27 -07:00
bottom_half.h
bpqether.h
brcmphy.h
bsg.h
buffer_head.h fs: rename buffer trylock 2008-08-04 21:56:09 -07:00
bug.h
byteorder.h byteorder: add include/linux/byteorder.h to define endian helpers 2008-08-12 16:07:30 -07:00
cache.h
can.h
capability.h security: Fix setting of PF_SUPERPRIV by __capable() 2008-08-14 22:59:43 +10:00
capi.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
cgroup.h cgroup_clone: use pid of newly created task for new cgroup 2008-07-25 10:53:37 -07:00
cgroup_subsys.h
cgroupstats.h
chio.h
circ_buf.h
clk.h
clockchips.h clockevents: prevent clockevent event_handler ending up handler_noop 2008-09-05 11:11:51 +02:00
clocksource.h
cm4000_cs.h
cn_proc.h
cnt32_to_63.h MN10300: Move asm-arm/cnt32_to_63.h to include/linux/ 2008-09-24 16:38:17 -07:00
coda.h coda: remove CODA_FS_OLD_API 2008-07-25 10:53:33 -07:00
coda_cache.h
coda_fs_i.h
coda_linux.h [PATCH] sanitize ->permission() prototype 2008-07-26 20:53:14 -04:00
coda_psdev.h
coff.h
com20020.h
compat.h
compiler-gcc.h
compiler-gcc3.h
compiler-gcc4.h
compiler-intel.h
compiler.h rcu: remove redundant ACCESS_ONCE definition from rcupreempt.c 2008-08-18 09:45:22 +02:00
completion.h sched: add kernel doc for the completion, fix kernel-doc-nano-HOWTO.txt 2008-08-26 10:26:54 +02:00
comstats.h
concap.h
configfs.h [PATCH] configfs: Convenience macros for attribute definition. 2008-07-31 16:21:13 -07:00
connector.h connector: add a BlackBoard user to connector 2008-07-30 09:41:45 -07:00
console.h
console_struct.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: statement expressions confuse some versions of gcc 2008-07-30 10:35:49 -07:00
cpuset.h sched: arch_reinit_sched_domains() must destroy domains to force rebuild 2008-09-06 19:22:15 +02:00
cramfs_fs.h
cramfs_fs_sb.h
crash_dump.h crashdump: fix undefined reference to `elfcorehdr_addr' 2008-07-26 11:26:23 +02:00
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc7.h
crc16.h
crc32.h
crc32c.h
cred.h CRED: Introduce credential access wrappers 2008-08-14 09:35:23 +10:00
crypto.h crypto: rng - RNG interface and implementation 2008-08-29 15:50:04 +10:00
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dca.h
dcache.h [PATCH] change d_add_ci argument ordering 2008-08-25 01:18:05 -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 per-task-delay-accounting: add memory reclaim delay 2008-07-25 10:53:47 -07:00
device-mapper.h dm: publish dm_vcalloc 2008-10-10 13:37:12 +01:00
device.h driver-core: use klist for class device list and implement iterator 2008-10-09 08:56:04 +02:00
device_cgroup.h
devpts_fs.h Add an instance parameter devpts interfaces 2008-10-13 09:51:43 -07:00
dio.h
dirent.h remove the in-kernel struct dirent{,64} 2008-07-25 10:53:34 -07:00
display.h
dlm.h dlm: allow multiple lockspace creates 2008-08-28 11:49:15 -05:00
dlm_device.h dlm: allow multiple lockspace creates 2008-08-28 11:49:15 -05:00
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-dirty-log.h
dm-io.h
dm-ioctl.h
dm-kcopyd.h
dm9000.h dm9000: Support MAC address setting through platform data. 2008-08-07 02:22:54 -04: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
dmi.h
dn.h
dnotify.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1wm.h
ds1286.h
ds17287rtc.h
dtlk.h
dw_dmac.h
edac.h
edd.h
eeprom_93cx6.h
efi.h
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 ethtool: Expand ethtool_cmd.speed to 32 bits 2008-08-07 02:22:08 -04:00
eventfd.h
eventpoll.h
exportfs.h Reserve NFS fileid values for btrfs 2008-08-20 13:19:51 -07:00
ext2_fs.h ext2: fix typo in Hurd part of include/linux/ext2_fs.h 2008-07-25 10:53:31 -07:00
ext2_fs_sb.h
ext3_fs.h generic block based fiemap implementation 2008-10-03 17:32:43 -04:00
ext3_fs_i.h
ext3_fs_sb.h
ext3_jbd.h
f75375s.h
fadvise.h
falloc.h
fault-inject.h
fb.h fbdefio: add set_page_dirty handler to deferred IO FB 2008-08-20 15:40:32 -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] merge locate_fd() and get_unused_fd() 2008-08-01 11:25:23 -04:00
filter.h
firewire-cdev.h
firewire-constants.h
firmware-map.h firmware/memmap: cleanup 2008-08-12 16:07:31 -07:00
firmware.h
flat.h
font.h
freezer.h
fs.h Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 2008-10-11 13:23:48 -07:00
fs_enet_pd.h
fs_stack.h
fs_struct.h [PATCH] kill altroot 2008-07-26 20:53:20 -04:00
fs_uart_pd.h removed unused #include <linux/version.h>'s 2008-08-23 12:14:12 -07:00
fsl_devices.h
fsnotify.h
ftrace.h kexec jump: __ftrace_enabled_save/restore 2008-08-15 08:35:42 -07:00
fuse.h fuse: nfs export special lookups 2008-07-25 10:53:48 -07:00
futex.h
gameport.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h
genhd.h block: allow disk to have extended device number 2008-10-09 08:56:08 +02: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.h
gpio_keys.h
gpio_mouse.h
hardirq.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h
hid-debug.h
hid.h
hiddev.h
hidraw.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hp_sdc.h
hpet.h hpet: /dev/hpet - fixes and cleanup 2008-07-31 18:45:41 +02:00
hrtimer.h hrtimer: prevent migration of per CPU hrtimers 2008-09-29 17:09:14 +02:00
htirq.h
hugetlb.h hugetlb: remove unused variable warning 2008-07-26 20:16:47 -07: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-sgi.h
i2c-dev.h
i2c-gpio.h
i2c-id.h matrox maven: convert to a new-style i2c driver 2008-08-12 16:07:29 -07:00
i2c-ocores.h
i2c-pca-platform.h
i2c-pnx.h [ARM] fix pnx4008 build errors 2008-08-08 15:13:27 +01:00
i2c-pxa.h
i2c.h i2c: Add missing kerneldoc descriptions 2008-08-28 08:33:23 +02:00
i2o-dev.h
i2o.h dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
i8k.h
i8042.h
ibmtr.h
icmp.h
icmpv6.h
ide.h ide: Remove ide_spin_wait_hwgroup() and use special requests instead 2008-10-10 22:39:40 +02:00
idr.h idr: make idr_find rcu-safe 2008-07-25 10:53:42 -07:00
ieee80211.h mac80211: mesh portal functionality support 2008-09-24 16:18:02 -04:00
if.h net: network device name ifalias support 2008-09-22 21:28:11 -07: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 gre: Add Transparent Ethernet Bridging 2008-10-09 12:00:17 -07:00
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
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 tun: TUNGETIFF interface to query name and flags 2008-08-15 19:52:19 -07:00
if_tunnel.h gre: Add netlink interface 2008-10-09 11:59:55 -07:00
if_vlan.h
igmp.h
ihex.h Fix IHEX firmware generation/loading 2008-08-02 18:36:10 +01:00
in.h ipv4: Implement IP_TRANSPARENT socket option 2008-10-01 07:30:02 -07:00
in6.h
in_route.h
inet.h
inet_diag.h
inet_lro.h
inetdevice.h ipv4: add mc_count to in_device. 2008-10-07 15:34:37 -07:00
init.h modules: extend initcall_debug functionality to the module loader 2008-08-12 17:52:54 +10:00
init_ohci1394_dma.h
init_task.h introduce PF_KTHREAD flag 2008-07-25 10:53:39 -07:00
initrd.h
inotify.h
input-polldev.h
input.h
interrupt.h Remove the deprecated cli() sti() functions 2008-08-05 14:33:48 -07:00
io.h
ioc3.h
ioc4.h
iocontext.h
ioctl.h
iommu-helper.h AMD IOMMU: use iommu_device_max_index, fix 2008-10-06 16:51:30 +02:00
ioport.h Merge branch 'x86/unify-cpu-detect' into x86-v28-for-linus-phase4-D 2008-10-11 20:23:20 +02:00
ioprio.h
ip.h
ip6_tunnel.h
ip_vs.h IPVS: Add genetlink interface definitions to ip_vs.h 2008-08-15 09:26:14 +10:00
ipc.h
ipc_namespace.h ipc: do not use a negative value to re-enable msgmni automatic recomputing 2008-07-25 10:53:42 -07:00
ipmi.h
ipmi_msgdefs.h
ipmi_smi.h
ipsec.h
ipv6.h
ipv6_route.h
ipx.h
irda.h
irq.h
irq_cpustat.h
irqflags.h
irqreturn.h
isa.h
isapnp.h
iscsi_ibft.h
isdn.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
isdnif.h
isicom.h
iso_fs.h
istallion.h
ivtv.h Fix header export of videodev2.h, ivtv.h, ivtvfb.h 2008-08-16 16:46:57 -07:00
ivtvfb.h Fix header export of videodev2.h, ivtv.h, ivtvfb.h 2008-08-16 16:46:57 -07:00
ixjuser.h
jbd.h
jbd2.h ext4: add an option to control error handling on file data 2008-10-10 22:12:43 -04:00
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
kallsyms.h print_ip_sym(): use %pS 2008-07-30 09:41:45 -07:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kd.h
kdebug.h
kdev_t.h
kernel.h x86: memory corruption check - cleanup 2008-10-12 15:09:23 +02:00
kernel_stat.h
kernelcapi.h
kexec.h kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
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
kobj_map.h
kobject.h
kprobes.h
kref.h
ks0108.h
kthread.h
ktime.h
kvm.h KVM: fix userspace ABI breakage 2008-08-25 17:28:25 +03:00
kvm_host.h KVM: Synchronize guest physical memory map to host virtual memory map 2008-07-29 12:33:53 +03:00
kvm_para.h
kvm_types.h
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
lguest.h
lguest_launcher.h
libata.h libata: reorder ata_device to remove 8 bytes of padding on 64 bits 2008-09-29 00:28:36 -04:00
libps2.h
license.h
limits.h
linkage.h
linux_logo.h
list.h debugobjects: fix lockdep warning 2008-09-01 09:47:16 +02:00
llc.h
lm_interface.h
lmb.h
lockdep.h lockdep: increase MAX_LOCKDEP_KEYS 2008-08-11 15:25:07 +02:00
log2.h
loop.h
lp.h
lzo.h
m48t86.h
mISDNdsp.h Add mISDN DSP 2008-07-27 01:56:38 +02:00
mISDNhw.h Add mISDN core files 2008-07-27 01:54:58 +02:00
mISDNif.h mISDN cleanup user interface 2008-08-02 16:28:50 +02:00
magic.h
major.h block: implement extended dev numbers 2008-10-09 08:56:06 +02:00
maple.h maple: Kill useless private_data pointer. 2008-08-04 10:58:24 +09:00
marker.h
math64.h
matroxfb.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mdio-bitbang.h
memcontrol.h memcg: helper function for relcaim from shmem. 2008-07-25 10:53:37 -07:00
memory.h
memory_hotplug.h
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
mii.h
minix_fs.h
miscdevice.h
mm.h Merge branches 'x86/xen', 'x86/build', 'x86/microcode', 'x86/mm-debug-v2', 'x86/memory-corruption-check', 'x86/early-printk', 'x86/xsave', 'x86/ptrace-v2', 'x86/quirks', 'x86/setup', 'x86/spinlocks' and 'x86/signal' into x86/core-v2 2008-10-12 15:50:02 +02:00
mm_inline.h
mm_types.h mm: define USE_SPLIT_PTLOCKS rather than repeating expression 2008-09-10 14:04:59 +02:00
mman.h
mmdebug.h
mmiotrace.h
mmtimer.h
mmu_notifier.h mmu-notifiers: core 2008-07-28 16:30:21 -07:00
mmzone.h mm: mark the correct zone as full when scanning zonelists 2008-09-13 14:41:52 -07:00
mnt_namespace.h
mod_devicetable.h
module.h tracing: Kernel Tracepoints 2008-10-14 10:28:28 +02:00
moduleloader.h
moduleparam.h
mount.h [PATCH] pass struct path * to do_add_mount() 2008-08-01 11:25:32 -04:00
mpage.h
mqueue.h
mroute.h net: Unbreak userspace usage of linux/mroute.h 2008-08-29 14:37:23 -07:00
mroute6.h net: Unbreak userspace usage of linux/mroute.h 2008-08-29 14:37:23 -07:00
msdos_fs.h fatfs: add UTC timestamp option 2008-07-25 10:53:34 -07:00
msg.h
msi.h
mtio.h
mutex-debug.h
mutex.h
mv643xx.h
mv643xx_eth.h mv643xx_eth: remove force_phy_addr field 2008-09-05 06:33:59 +02:00
mv643xx_i2c.h
n_r3964.h
namei.h [PATCH] get rid of __user_path_lookup_open 2008-07-26 20:53:41 -04:00
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 Fix userspace export of <linux/net.h> 2008-08-26 10:37:20 -07:00
netdevice.h dsa: add support for Trailer tagging format 2008-10-08 17:24:16 -07:00
netfilter.h netfilter: netns: remove nf_*_net() wrappers 2008-10-08 11:35:01 +02:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h ipsec: Put dumpers on the dump list 2008-10-01 07:03:24 -07:00
netpoll.h
netrom.h
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_acl.h
nfs4_mount.h
nfs_fs.h [PATCH] get rid of indirect users of namei.h 2008-07-26 20:53:42 -04:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_idmap.h
nfs_iostat.h
nfs_mount.h
nfs_page.h
nfs_xdr.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 cgroup_clone: use pid of newly created task for new cgroup 2008-07-25 10:53:37 -07:00
nubus.h
numa.h
nvram.h
of.h of: adapt of_find_i2c_driver() to be usable by SPI also 2008-07-25 22:25:13 -04:00
of_device.h
of_gpio.h
of_i2c.h
of_platform.h
of_spi.h spi: Add OF binding support for SPI busses 2008-07-25 22:34:40 -04:00
oom.h
oprofile.h OProfile: add IBS code macros 2008-07-26 11:48:04 +02:00
page-flags.h mm: rename page trylock 2008-08-04 21:31:34 -07:00
page-isolation.h
pageblock-flags.h
pagemap.h mm: rename page trylock 2008-08-04 21:31:34 -07:00
pagevec.h
param.h
parport.h parport/share.c: proper externs 2008-07-26 12:00:03 -07:00
parport_pc.h
parser.h Revert "UFS: add const to parser token table" 2008-08-04 16:50:38 -07:00
patchkey.h
path.h
pci-acpi.h PCI: add acpi_find_root_bridge_handle 2008-08-18 13:48:04 -07:00
pci-aspm.h PCI: disable ASPM per ACPI FADT setting 2008-07-28 14:56:09 -07:00
pci.h PCI: fix compiler warnings in pci_get_subsys() 2008-09-16 15:52:08 -07:00
pci_hotplug.h
pci_ids.h Merge phase #3 (IOMMU) of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-11 11:03:12 -07:00
pci_regs.h PCI: disable ASPM on pre-1.1 PCIe devices 2008-07-28 14:56:57 -07:00
pcieport_if.h
pda_power.h
percpu.h Merge commit '63cc8c75156462d4b42cbdd76c293b7eee7ddbfe': 2008-09-05 09:24:30 +02:00
percpu_counter.h percpu counter: clean up percpu_counter_sum_and_set() 2008-10-09 12:50:59 -04:00
personality.h
pfkeyv2.h xfrm: MIGRATE enhancements (draft-ebalard-mext-pfkey-enhanced-migrate) 2008-10-05 13:33:42 -07:00
pfn.h
pg.h
phantom.h
phonedev.h
phonet.h Phonet: implement GPRS virtual interface over PEP socket 2008-10-05 11:16:16 -07:00
phy.h phylib: add mdiobus_{read,write} 2008-10-08 16:38:41 -07:00
phy_fixed.h
pid.h fix setpriority(PRIO_PGRP) thread iterator breakage 2008-08-20 15:40:32 -07:00
pid_namespace.h pidns: add the struct bsd_acct_struct pointer on pid_namespace struct 2008-07-25 10:53:46 -07:00
pim.h net: Unbreak userspace usage of linux/mroute.h 2008-08-29 14:37:23 -07:00
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
plist.h
pm.h
pm_qos_params.h pm_qos: spelling fixes 2008-08-05 14:33:50 -07:00
pm_wakeup.h
pmu.h
pnp.h Fix PNP build failure, bugzilla #11276 2008-09-16 19:35:05 -07:00
poison.h
poll.h
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_defs.h
prctl.h
preempt.h
prefetch.h
prio_heap.h
prio_tree.h
proc_fs.h [PATCH] sanitize proc_sysctl 2008-07-26 20:53:12 -04:00
profile.h
proportions.h reorder struct prop_local_single to remove padding on 64 bit builds 2008-08-15 17:15:23 +02:00
ptrace.h tracehook: fix CLONE_PTRACE 2008-08-07 17:18:47 -07:00
pwm.h
pwm_backlight.h
qnx4_fs.h
qnxtypes.h
quicklist.h mm: show quicklist usage in /proc/meminfo 2008-09-02 19:21:38 -07:00
quota.h quota: implement sending information via netlink about user below quota 2008-07-25 10:53:35 -07:00
quotaio_v1.h
quotaio_v2.h
quotaops.h [PATCH] fix races and leaks in vfs_quota_on() users 2008-08-01 11:25:25 -04:00
radeonfb.h
radix-tree.h radix-tree: add gang_lookup_slot, gang_lookup_slot_tag 2008-07-26 12:00:06 -07:00
raid_class.h
ramfs.h mm: tiny-shmem nommu fix 2008-10-02 15:53:13 -07:00
random.h
ratelimit.h
raw.h
rbtree.h
rcuclassic.h rcu: RCU-based detection of stalled CPUs for Classic RCU 2008-10-03 10:36:08 +02:00
rculist.h rcu: remove list_for_each_rcu() 2008-08-15 17:03:06 +02:00
rcupdate.h rcu: add rcu_read_lock_sched() / rcu_read_unlock_sched() 2008-09-30 12:08:41 +02:00
rcupreempt.h rcu: just rename call_rcu_bh instead of making it a macro 2008-08-15 17:54:39 +02:00
rcupreempt_trace.h
reboot.h kexec jump: remove duplication of kexec_restart_prepare() 2008-08-15 08:35:42 -07:00
reciprocal_div.h
regset.h
reiserfs_acl.h
reiserfs_fs.h
reiserfs_fs_i.h
reiserfs_fs_sb.h reiserfs: convert j_commit_lock to mutex 2008-07-25 10:53:33 -07:00
reiserfs_xattr.h [PATCH] sanitize ->permission() prototype 2008-07-26 20:53:14 -04:00
relay.h relay: add buffer-only channels; useful for early logging 2008-07-26 12:00:04 -07:00
res_counter.h res_counter: fix off-by-one bug in setting limit 2008-09-05 14:39:37 -07:00
resource.h
resume-trace.h
rfkill.h rfkill: introduce RFKILL_STATE_MAX 2008-08-22 16:29:57 -04:00
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h mm: dirty page tracking race fix 2008-08-20 15:40:32 -07:00
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc-v3020.h
rtc.h drivers/char/rtc.c: make 2 functions static 2008-07-26 12:00:12 -07:00
rtmutex.h
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 Merge branch 'linus' into x86/xen 2008-10-12 12:37:32 +02:00
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdla.h
seccomp.h
securebits.h
security.h securityfs: do not depend on CONFIG_SECURITY 2008-08-28 10:47:42 +10:00
selection.h
selinux.h
selinux_netlink.h
sem.h ipc/sem.c: rewrite undo list locking 2008-07-25 10:53:42 -07:00
semaphore.h
seq_file.h seq_file: add seq_cpumask(), seq_nodemask() 2008-08-12 16:07:30 -07:00
seq_file_net.h
seqlock.h
serial.h tty: Cris has a nice RS485 ioctl so we should steal it 2008-10-13 09:51:40 -07:00
serial167.h
serialP.h
serial_8250.h
serial_core.h serial: Make uart_port's ioport "unsigned long". 2008-10-13 09:51:39 -07:00
serial_pnx8xxx.h
serial_reg.h
serial_sci.h
serio.h
shm.h
shmem_fs.h [PATCH] sanitize ->permission() prototype 2008-07-26 20:53:14 -04:00
signal.h
signalfd.h
skbuff.h net: packet split receive api 2008-10-07 14:22:33 -07:00
slab.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-07-26 20:17:56 -07:00
slab_def.h
slob_def.h
slub_def.h SLUB: dynamic per-cache MIN_PARTIAL 2008-08-05 09:28:47 +03:00
sm501-regs.h
sm501.h
smb.h smb.h: do not include linux/time.h in userspace 2008-09-23 08:09:13 -07:00
smb_fs.h
smb_fs_i.h
smb_fs_sb.h
smb_mount.h
smbno.h
smc91x.h Export smc91x led definitions 2008-09-09 17:41:42 +02:00
smc911x.h
smp.h Full conversion to early_initcall() interface, remove old interface 2008-07-26 12:00:04 -07:00
smp_lock.h
snmp.h tcp: MD5: Use MIB counter instead of warning for MD5 mismatch. 2008-07-30 03:27:25 -07:00
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.h lockdep: spin_lock_nest_lock() 2008-08-11 09:30:24 +02:00
spinlock_api_smp.h lockdep: spin_lock_nest_lock() 2008-08-11 09:30:24 +02:00
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.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 stop_machine: Remove deprecated stop_machine_run 2008-08-26 00:19:27 +10:00
string.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
stringify.h
superhyway.h
suspend.h suspend: fix section mismatch warning - register_nosave_region 2008-08-15 08:35:42 -07:00
suspend_ioctls.h
svga.h
swab.h byteorder: add a new include/linux/swab.h to define byteswapping functions 2008-08-12 16:07:30 -07:00
swap.h mm/swapfile.c: make code static 2008-07-26 12:00:12 -07:00
swapops.h
synclink.h
sys.h
syscalls.h sys_paccept definition missing __user annotation 2008-07-25 17:28:49 -07:00
sysctl.h [PATCH] sanitize proc_sysctl 2008-07-26 20:53:12 -04:00
sysdev.h
sysfs.h
sysrq.h
sysv_fs.h
task_io_accounting.h task IO accounting: move all IO statistics in struct task_io_accounting 2008-07-27 16:12:28 -07:00
task_io_accounting_ops.h task IO accounting: move all IO statistics in struct task_io_accounting 2008-07-27 16:12:28 -07:00
taskstats.h per-task-delay-accounting: update taskstats for memory reclaim delay 2008-07-25 10:53:47 -07:00
taskstats_kern.h
tc.h
tcp.h tcp: kill pointless urg_mode 2008-10-07 14:43:06 -07:00
telephony.h
termios.h tty: Add termiox 2008-10-13 09:51:40 -07:00
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
thread_info.h
threads.h
tick.h [CPUFREQ][5/6] cpufreq: Changes to get_cpu_idle_time_us(), used by ondemand governor 2008-10-09 13:52:44 -04:00
tifm.h
time.h
timer.h
timerfd.h
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
topology.h
toshiba.h
tracehook.h tracehook: comment pasto fixes 2008-09-05 14:39:38 -07:00
tracepoint.h tracing: Kernel Tracepoints 2008-10-14 10:28:28 +02:00
transport_class.h
trdevice.h
tsacct_kern.h
tty.h tty: some ICANON magic is in the wrong places 2008-10-13 09:51:44 -07:00
tty_driver.h Add an instance parameter devpts interfaces 2008-10-13 09:51:43 -07:00
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
uaccess.h
ucb1400.h [ARM] 5184/1: Split ucb1400_ts into core and touchscreen 2008-08-20 23:22:22 +01:00
udf_fs_i.h
udp.h
uinput.h
uio.h
uio_driver.h
ultrasound.h
un.h
unistd.h
unwind.h
usb.h USB: Defer Set-Interface for suspended devices 2008-08-21 10:26:36 -07:00
usb_usual.h
usbdevice_fs.h
user.h
user_namespace.h
utime.h
uts.h
utsname.h
vermagic.h
veth.h
vfs.h
via.h
video_decoder.h
video_encoder.h
video_output.h
videodev.h V4L/DVB (8524): videodev: copy the VID_TYPE defines to videodev.h 2008-07-27 11:07:12 -03:00
videodev2.h V4L/DVB (8832): gspca: Bad pixelformat of vc0321 webcams. 2008-09-03 18:37:45 -03:00
videotext.h V4L/DVB (8500a): videotext.h: whitespace cleanup 2008-07-26 13:25:25 -03:00
virtio.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
vmalloc.h mm: VM_flags comment fixes 2008-08-16 16:45:56 -07:00
vmstat.h
vt.h
vt_buffer.h
vt_kern.h tty: Remove more special casing and out of place code 2008-10-13 09:51:42 -07:00
w1-gpio.h
wait.h
wanrouter.h
watchdog.h
wireless.h
wm97xx.h
wm97xx_batt.h [ARM] 5248/1: wm97xx generic battery driver 2008-10-02 22:48:34 +01:00
workqueue.h workqueues: implement flush_work() 2008-07-25 10:53:40 -07:00
writeback.h
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.h
zorro_ids.h
zutil.h