kernel-ark/include/linux
Jiri Pirko 1f10206cf8 getrusage: fill ru_maxrss value
Make ->ru_maxrss value in struct rusage filled accordingly to rss hiwater
mark.  This struct is filled as a parameter to getrusage syscall.
->ru_maxrss value is set to KBs which is the way it is done in BSD
systems.  /usr/bin/time (gnu time) application converts ->ru_maxrss to KBs
which seems to be incorrect behavior.  Maintainer of this util was
notified by me with the patch which corrects it and cc'ed.

To make this happen we extend struct signal_struct by two fields.  The
first one is ->maxrss which we use to store rss hiwater of the task.  The
second one is ->cmaxrss which we use to store highest rss hiwater of all
task childs.  These values are used in k_getrusage() to actually fill
->ru_maxrss.  k_getrusage() uses current rss hiwater value directly if mm
struct exists.

Note:
exec() clear mm->hiwater_rss, but doesn't clear sig->maxrss.
it is intetionally behavior. *BSD getrusage have exec() inheriting.

test programs
========================================================

getrusage.c
===========
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/resource.h>
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <unistd.h>
 #include <signal.h>
 #include <sys/mman.h>

 #include "common.h"

 #define err(str) perror(str), exit(1)

int main(int argc, char** argv)
{
	int status;

	printf("allocate 100MB\n");
	consume(100);

	printf("testcase1: fork inherit? \n");
	printf("  expect: initial.self ~= child.self\n");
	show_rusage("initial");
	if (__fork()) {
		wait(&status);
	} else {
		show_rusage("fork child");
		_exit(0);
	}
	printf("\n");

	printf("testcase2: fork inherit? (cont.) \n");
	printf("  expect: initial.children ~= 100MB, but child.children = 0\n");
	show_rusage("initial");
	if (__fork()) {
		wait(&status);
	} else {
		show_rusage("child");
		_exit(0);
	}
	printf("\n");

	printf("testcase3: fork + malloc \n");
	printf("  expect: child.self ~= initial.self + 50MB\n");
	show_rusage("initial");
	if (__fork()) {
		wait(&status);
	} else {
		printf("allocate +50MB\n");
		consume(50);
		show_rusage("fork child");
		_exit(0);
	}
	printf("\n");

	printf("testcase4: grandchild maxrss\n");
	printf("  expect: post_wait.children ~= 300MB\n");
	show_rusage("initial");
	if (__fork()) {
		wait(&status);
		show_rusage("post_wait");
	} else {
		system("./child -n 0 -g 300");
		_exit(0);
	}
	printf("\n");

	printf("testcase5: zombie\n");
	printf("  expect: pre_wait ~= initial, IOW the zombie process is not accounted.\n");
	printf("          post_wait ~= 400MB, IOW wait() collect child's max_rss. \n");
	show_rusage("initial");
	if (__fork()) {
		sleep(1); /* children become zombie */
		show_rusage("pre_wait");
		wait(&status);
		show_rusage("post_wait");
	} else {
		system("./child -n 400");
		_exit(0);
	}
	printf("\n");

	printf("testcase6: SIG_IGN\n");
	printf("  expect: initial ~= after_zombie (child's 500MB alloc should be ignored).\n");
	show_rusage("initial");
	signal(SIGCHLD, SIG_IGN);
	if (__fork()) {
		sleep(1); /* children become zombie */
		show_rusage("after_zombie");
	} else {
		system("./child -n 500");
		_exit(0);
	}
	printf("\n");
	signal(SIGCHLD, SIG_DFL);

	printf("testcase7: exec (without fork) \n");
	printf("  expect: initial ~= exec \n");
	show_rusage("initial");
	execl("./child", "child", "-v", NULL);

	return 0;
}

child.c
=======
 #include <sys/types.h>
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/resource.h>

 #include "common.h"

int main(int argc, char** argv)
{
	int status;
	int c;
	long consume_size = 0;
	long grandchild_consume_size = 0;
	int show = 0;

	while ((c = getopt(argc, argv, "n:g:v")) != -1) {
		switch (c) {
		case 'n':
			consume_size = atol(optarg);
			break;
		case 'v':
			show = 1;
			break;
		case 'g':

			grandchild_consume_size = atol(optarg);
			break;
		default:
			break;
		}
	}

	if (show)
		show_rusage("exec");

	if (consume_size) {
		printf("child alloc %ldMB\n", consume_size);
		consume(consume_size);
	}

	if (grandchild_consume_size) {
		if (fork()) {
			wait(&status);
		} else {
			printf("grandchild alloc %ldMB\n", grandchild_consume_size);
			consume(grandchild_consume_size);

			exit(0);
		}
	}

	return 0;
}

common.c
========
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/resource.h>
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <unistd.h>
 #include <signal.h>
 #include <sys/mman.h>

 #include "common.h"
 #define err(str) perror(str), exit(1)

void show_rusage(char *prefix)
{
    	int err, err2;
    	struct rusage rusage_self;
    	struct rusage rusage_children;

    	printf("%s: ", prefix);
    	err = getrusage(RUSAGE_SELF, &rusage_self);
    	if (!err)
    		printf("self %ld ", rusage_self.ru_maxrss);
    	err2 = getrusage(RUSAGE_CHILDREN, &rusage_children);
    	if (!err2)
    		printf("children %ld ", rusage_children.ru_maxrss);

    	printf("\n");
}

/* Some buggy OS need this worthless CPU waste. */
void make_pagefault(void)
{
	void *addr;
	int size = getpagesize();
	int i;

	for (i=0; i<1000; i++) {
		addr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
		if (addr == MAP_FAILED)
			err("make_pagefault");
		memset(addr, 0, size);
		munmap(addr, size);
	}
}

void consume(int mega)
{
    	size_t sz = mega * 1024 * 1024;
    	void *ptr;

    	ptr = malloc(sz);
    	memset(ptr, 0, sz);
	make_pagefault();
}

pid_t __fork(void)
{
	pid_t pid;

	pid = fork();
	make_pagefault();

	return pid;
}

common.h
========
void show_rusage(char *prefix);
void make_pagefault(void);
void consume(int mega);
pid_t __fork(void);

FreeBSD result (expected result)
========================================================
allocate 100MB
testcase1: fork inherit?
  expect: initial.self ~= child.self
initial: self 103492 children 0
fork child: self 103540 children 0

testcase2: fork inherit? (cont.)
  expect: initial.children ~= 100MB, but child.children = 0
initial: self 103540 children 103540
child: self 103564 children 0

testcase3: fork + malloc
  expect: child.self ~= initial.self + 50MB
initial: self 103564 children 103564
allocate +50MB
fork child: self 154860 children 0

testcase4: grandchild maxrss
  expect: post_wait.children ~= 300MB
initial: self 103564 children 154860
grandchild alloc 300MB
post_wait: self 103564 children 308720

testcase5: zombie
  expect: pre_wait ~= initial, IOW the zombie process is not accounted.
          post_wait ~= 400MB, IOW wait() collect child's max_rss.
initial: self 103564 children 308720
child alloc 400MB
pre_wait: self 103564 children 308720
post_wait: self 103564 children 411312

testcase6: SIG_IGN
  expect: initial ~= after_zombie (child's 500MB alloc should be ignored).
initial: self 103564 children 411312
child alloc 500MB
after_zombie: self 103624 children 411312

testcase7: exec (without fork)
  expect: initial ~= exec
initial: self 103624 children 411312
exec: self 103624 children 411312

Linux result (actual test result)
========================================================
allocate 100MB
testcase1: fork inherit?
  expect: initial.self ~= child.self
initial: self 102848 children 0
fork child: self 102572 children 0

testcase2: fork inherit? (cont.)
  expect: initial.children ~= 100MB, but child.children = 0
initial: self 102876 children 102644
child: self 102572 children 0

testcase3: fork + malloc
  expect: child.self ~= initial.self + 50MB
initial: self 102876 children 102644
allocate +50MB
fork child: self 153804 children 0

testcase4: grandchild maxrss
  expect: post_wait.children ~= 300MB
initial: self 102876 children 153864
grandchild alloc 300MB
post_wait: self 102876 children 307536

testcase5: zombie
  expect: pre_wait ~= initial, IOW the zombie process is not accounted.
          post_wait ~= 400MB, IOW wait() collect child's max_rss.
initial: self 102876 children 307536
child alloc 400MB
pre_wait: self 102876 children 307536
post_wait: self 102876 children 410076

testcase6: SIG_IGN
  expect: initial ~= after_zombie (child's 500MB alloc should be ignored).
initial: self 102876 children 410076
child alloc 500MB
after_zombie: self 102880 children 410076

testcase7: exec (without fork)
  expect: initial ~= exec
initial: self 102880 children 410076
exec: self 102880 children 410076

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-23 07:39:30 -07:00
..
amba ARM: 5636/1: Move vendor enum to AMBA include 2009-09-12 11:51:14 +01:00
byteorder
can can: add can_free_echo_skb() for upcoming drivers 2009-09-04 02:16:14 -07:00
decompress bzip2/lzma/gzip: fix comments describing decompressor API 2009-08-07 10:39:56 -07:00
dvb V4L/DVB (12997): Add the DTV_ISDB_TS_ID property for ISDB_S 2009-09-19 00:51:34 -03:00
hdlc
i2c mfd: Add support for TWL4030/5030 dynamic power switching 2009-09-17 09:47:22 +02:00
input Input: matrix-keypad - add function to build device keymap 2009-08-27 22:05:39 -07:00
isdn ISDN: Add support for none reverse bitstreams to isdnhdc 2009-07-25 20:16:01 +02:00
lockd Merge branch 'for-2.6.32' of git://linux-nfs.org/~bfields/linux 2009-09-22 07:54:33 -07:00
mfd Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog 2009-09-18 09:47:25 -07:00
mlx4
mmc imwc3200: move iwmc3200 SDIO ids to sdio_ids.h 2009-07-26 19:25:47 -07:00
mtd Nicolas Pitre has a new email address 2009-09-15 09:37:12 -07:00
netfilter netfilter: nfnetlink: constify message attributes and headers 2009-08-25 16:07:58 +02:00
netfilter_arp netfilter: xtables: mark initial tables constant 2009-08-24 14:56:30 +02:00
netfilter_bridge netfilter: xtables: mark initial tables constant 2009-08-24 14:56:30 +02:00
netfilter_ipv4 netfilter: xtables: mark initial tables constant 2009-08-24 14:56:30 +02:00
netfilter_ipv6 netfilter: xtables: mark initial tables constant 2009-08-24 14:56:30 +02:00
nfsd seq_file: constify seq_operations 2009-09-23 07:39:29 -07:00
raid
regulator regulator: Provide mode to status conversion function 2009-09-17 09:47:05 +02:00
rtc
spi
ssb ssb: Implement SDIO host bus support 2009-09-09 11:19:00 -04:00
sunrpc SUNRPC: Defer the auth_gss upcall when the RPC call is asynchronous 2009-09-15 20:49:33 -04:00
tc_act
tc_ematch
unaligned
usb tty: USB serial termios bits 2009-09-19 13:13:33 -07:00
uwb
wimax
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi_pmtmr.h
acpi.h
adb.h
adfs_fs.h
aer.h
affs_hardblocks.h
agp_backend.h intel-agp: fix sglist allocation to avoid vmalloc() 2009-08-03 09:04:57 +01:00
agpgart.h
aio_abi.h
aio.h includecheck fix: include/linux, aio.h 2009-09-20 16:09:20 +05:30
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h anonfd: split interface into file creation and install 2009-09-23 07:39:29 -07:00
apm_bios.h
apm-emulation.h
arcdevice.h netdev: convert bulk of drivers to netdev_tx_t 2009-09-01 01:14:07 -07:00
arcfb.h
async_tx.h
async.h
ata_platform.h
ata.h libata: add command name parsing for error output 2009-09-01 19:47:20 -04:00
atalk.h
ath9k_platform.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-mci.h
atmel-pwm-bl.h
atmel-ssc.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h driver model: constify attribute groups 2009-09-15 09:50:47 -07:00
audit.h
auto_dev-ioctl.h
auto_fs4.h
auto_fs.h
auxvec.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h writeback: separate starting of sync vs opportunistic writeback 2009-09-16 15:18:52 +02:00
backlight.h
baycom.h
bcd.h
bfs_fs.h
binfmts.h exec: do not sleep in TASK_TRACED under ->cred_guard_mutex 2009-09-05 11:30:42 -07:00
bio.h bio: first step in sanitizing the bio->bi_rw flag testing 2009-09-11 14:33:31 +02:00
bit_spinlock.h
bitmap.h Make bitmask 'and' operators return a result code 2009-08-21 09:26:15 -07:00
bitops.h
bitrev.h
blk-iopoll.h block: make blk_iopoll_prep_sched() follow normal 0/1 return convention 2009-09-11 14:33:32 +02:00
blkdev.h block: use blkdev_issue_discard in blk_ioctl_discard 2009-09-14 08:24:53 +02:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bootmem.h mm: also use alloc_large_system_hash() for the PID hash table 2009-09-22 07:17:38 -07:00
bottom_half.h
bpqether.h
brcmphy.h
bsg.h
buffer_head.h
bug.h
c2port.h
cache.h
can.h
capability.h trivial: change address of the libcap source. 2009-09-21 15:14:51 +02:00
capi.h
cb710.h cb710: use SG_MITER_TO_SG/SG_MITER_FROM_SG 2009-07-31 12:28:46 +02:00
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
cgroup_subsys.h
cgroup.h cgroup avoid permanent sleep at rmdir 2009-07-29 19:10:35 -07:00
cgroupstats.h
chio.h
circ_buf.h
clk.h
clockchips.h
clocksource.h clocksource: Resolve cpu hotplug dead lock with TSC unstable 2009-08-28 20:25:24 +02:00
cm4000_cs.h
cn_proc.h proc connector: add event for process becoming session leader 2009-09-23 07:39:29 -07:00
cnt32_to_63.h
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_psdev.h
coda.h
coff.h
com20020.h
compat.h
compiler-gcc3.h
compiler-gcc4.h
compiler-gcc.h
compiler-intel.h
compiler.h
completion.h
comstats.h
concap.h
configfs.h
connector.h connector: make callback argument type explicit 2009-07-17 10:13:21 -07:00
console_struct.h
console.h
consolemap.h
const.h
cpu.h cpu hotplug: Introduce cpu_notifier() to handle !HOTPLUG_CPU case 2009-08-15 19:02:07 +02:00
cpufreq.h [CPUFREQ] Introduce global, not per core: /sys/devices/system/cpu/cpufreq 2009-09-01 12:45:14 -04:00
cpuidle.h
cpumask.h generic-ipi: make struct call_function_data lockless 2009-09-23 07:39:28 -07:00
cpuset.h
cramfs_fs_sb.h
cramfs_fs.h
crash_dump.h
crc7.h
crc16.h
crc32.h
crc32c.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h Creds: creds->security can be NULL is selinux is disabled 2009-09-14 12:34:07 +10:00
crypto.h
cryptohash.h
ctype.h
cuda.h
cyclades.h serial: move delta_msr_wait into the tty_port 2009-09-19 13:13:31 -07:00
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dca.h
dcache.h
dcbnl.h dcbnl: Add support for setapp/getapp commands to dcbnl 2009-09-01 01:24:30 -07:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h headers: taskstats_kern.h trim 2009-09-18 09:48:52 -07:00
device_cgroup.h
device-mapper.h dm stripe: expose correct io hints 2009-09-04 20:40:25 +01:00
device.h Driver-Core: extend devnode callbacks to provide permissions 2009-09-19 12:50:38 -07:00
devpts_fs.h
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-log-userspace.h dm log: userspace add luid to distinguish between concurrent log instances 2009-09-04 20:40:34 +01:00
dm-region-hash.h
dma_remapping.h
dma-attrs.h
dma-debug.h
dma-mapping.h dma: Add set_dma_mask hook to struct dma_map_ops 2009-08-28 14:24:10 +10:00
dmaengine.h
dmapool.h
dmar.h
dmi.h dmi: extend dmi_get_year() to dmi_get_date() 2009-09-08 21:17:48 -04:00
dn.h
dnotify.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1286.h
ds17287rtc.h
dst.h
dtlk.h cleanup console_print() 2009-09-14 17:41:42 -07:00
dw_dmac.h
dynamic_debug.h
edac.h
edd.h
eeprom_93cx6.h
efi.h
efs_fs_sb.h
efs_vh.h
eisa.h
elevator.h
elf-em.h
elf-fdpic.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h [SCSI] ses: add support for enclosure component hot removal 2009-08-22 17:52:13 -05:00
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h net/ethtool: Add support for the ethtool feature to flash firmware image from a specified file. 2009-09-02 23:07:39 -07:00
eventfd.h anonfd: split interface into file creation and install 2009-09-23 07:39:29 -07:00
eventpoll.h
exportfs.h
ext2_fs_sb.h
ext2_fs.h
ext3_fs_i.h
ext3_fs_sb.h
ext3_fs.h
ext3_jbd.h
f75375s.h
fadvise.h
falloc.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdreg.h
fdtable.h
fib_rules.h
fiemap.h
file.h
filter.h
fips.h
firewire-cdev.h
firewire-constants.h
firewire.h
firmware-map.h
firmware.h
flat.h
flex_array.h flex_array: introduce DEFINE_FLEX_ARRAY 2009-09-22 07:17:47 -07:00
font.h
freezer.h
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h const: make lock_manager_operations const 2009-09-22 07:17:25 -07:00
fscache-cache.h
fscache.h
fsl_devices.h
fsnotify_backend.h inotify: use GFP_NOFS under potential memory pressure 2009-07-21 15:26:27 -04:00
fsnotify.h
ftrace_event.h tracing: Allocate the ftrace event profile buffer dynamically 2009-09-18 07:25:44 +02:00
ftrace_irq.h
ftrace.h includecheck fix: include/linux, ftrace.h 2009-09-20 16:58:35 +05:30
fuse.h
futex.h
gameport.h
gcd.h
gen_stats.h net: restore gnet_stats_basic to previous definition 2009-08-17 21:33:49 -07:00
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h
genhd.h const: make block_device_operations const 2009-09-22 07:17:25 -07:00
getcpu.h
gfp.h BUILD_BUG_ON(): fix it and a couple of bogus uses of it 2009-09-23 07:39:29 -07:00
gfs2_ondisk.h GFS2: Add explanation of extended attr on-disk format 2009-08-25 13:44:04 +01:00
gigaset_dev.h
gpio_keys.h
gpio_mouse.h
gpio.h
hardirq.h Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-11 13:23:18 -07:00
hash.h
hayesesp.h serial: move delta_msr_wait into the tty_port 2009-09-19 13:13:31 -07:00
hdlc.h hdlc: convert to netdev_tx_t 2009-09-01 01:13:31 -07:00
hdlcdrv.h
hdpu_features.h
hdreg.h
hid-debug.h
hid.h HID: consolidate connect and disconnect into core code 2009-09-17 15:15:11 +02:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h Merge branch 'linus' into timers/core 2009-08-14 15:59:30 +02:00
htirq.h
hugetlb.h hugetlb: add MAP_HUGETLB for mmaping pseudo-anonymous huge page regions 2009-09-22 07:17:42 -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-dev.h
i2c-gpio.h
i2c-id.h V4L/DVB (12974): SAA7164: Remove the SAA7164 bus id, no longer required. 2009-09-19 00:16:14 -03:00
i2c-ocores.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c.h
i2o-dev.h
i2o.h
i8k.h
i7300_idle.h
i8042.h
ibmtr.h
icmp.h
icmpv6.h net: include/linux/icmpv6: includecheck fix for icmpv6.h 2009-08-12 22:13:15 -07:00
ide.h ide: convert to ->proc_fops 2009-09-01 17:52:57 -07:00
idr.h
ieee80211.h mac80211: Update mesh config IE to 11s draft 3.02 2009-08-28 14:40:24 -04:00
if_addr.h ipv6: Add IFA_F_DADFAILED flag 2009-09-11 12:54:58 -07:00
if_addrlabel.h
if_arcnet.h
if_arp.h Drop ARPHRD_IEEE802154_PHY 2009-08-19 23:08:24 +04:00
if_bonding.h
if_bridge.h
if_cablemodem.h
if_ec.h
if_eql.h
if_ether.h net: deprecate print_mac 2009-07-26 19:25:44 -07:00
if_fc.h
if_fddi.h
if_frad.h wan: dlci/sdla transmit return dehacking 2009-09-07 01:56:33 -07:00
if_hippi.h
if_infiniband.h
if_link.h
if_ltalk.h
if_macvlan.h
if_packet.h
if_phonet.h
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: Allow tap device to send/receive UFO packets. 2009-07-17 10:11:00 -07:00
if_tunnel.h
if_vlan.h
if.h
igmp.h bonding: remap muticast addresses without using dev_close() and dev_open() 2009-09-15 02:37:40 -07:00
ihex.h
ima.h
in6.h
in_route.h
in.h
inet_diag.h
inet_lro.h
inet.h
inetdevice.h ip: fix logic of reverse path filter sysctl 2009-07-27 18:39:45 -07:00
init_ohci1394_dma.h
init_task.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
init.h x86: properly annotate alternatives.c 2009-08-21 15:30:12 -07:00
initrd.h
inotify.h
input-polldev.h
input.h
intel-iommu.h
interrupt.h Merge branch 'for-2.6.32' of git://git.kernel.dk/linux-2.6-block 2009-09-14 17:55:15 -07:00
io-mapping.h x86, pat: Add PAT reserve free to io_mapping* APIs 2009-08-26 15:41:16 -07:00
io.h
ioc3.h
ioc4.h
iocontext.h io context: fix ref counting 2009-07-31 08:55:48 +02:00
ioctl.h
iommu-helper.h
iommu.h
ioport.h
ioprio.h
iova.h
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 Merge branch 'irq-threaded-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-11 13:21:31 -07:00
irqflags.h
irqnr.h irq: Add irq_node() primitive 2009-08-29 15:53:00 +02:00
irqreturn.h
isa.h
isapnp.h
iscsi_ibft.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ivtv.h
ivtvfb.h
ixjuser.h
jbd2.h jbd2: bitfields should be unsigned 2009-08-17 22:38:04 -04:00
jbd.h jbd: Journal block numbers can ever be only 32-bit use unsigned int for them 2009-09-16 17:44:10 +02:00
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
Kbuild KVM: export kvm_para.h 2009-09-10 10:46:47 +03:00
kbuild.h
kd.h
kdebug.h
kdev_t.h
kernel_stat.h
kernel.h Make sure the value in abs() does not get truncated if it is greater than 2^32 2009-09-23 07:39:30 -07:00
kernelcapi.h
kexec.h
key-type.h
key.h KEYS: Add a keyctl to install a process's session keyring on its parent [try #6] 2009-09-02 21:29:22 +10:00
keyboard.h
keyctl.h KEYS: Add a keyctl to install a process's session keyring on its parent [try #6] 2009-09-02 21:29:22 +10:00
kfifo.h kfifo: Use "const" definitions 2009-09-19 13:13:17 -07:00
kgdb.h
klist.h
kmalloc_sizes.h
kmemcheck.h BUILD_BUG_ON(): fix it and a couple of bogus uses of it 2009-09-23 07:39:29 -07:00
kmemleak.h kmemleak: Mark the early log buffer as __initdata 2009-08-27 14:29:16 +01:00
kmemtrace.h
kmod.h
kobj_map.h
kobject.h
kprobes.h tracing: remove notrace from __kprobes annotation 2009-09-15 23:51:31 -04:00
kref.h
ks0108.h
ksm.h ksm: clean up obsolete references 2009-09-22 07:17:33 -07:00
kthread.h
ktime.h
kvm_host.h tracing: Remove markers 2009-09-18 21:22:08 +02:00
kvm_para.h KVM: x86: Disallow hypercalls for guest callers in rings > 0 2009-09-10 08:33:20 +03:00
kvm_types.h
kvm.h KVM: VMX: Introduce KVM_SET_IDENTITY_MAP_ADDR ioctl 2009-09-10 08:33:16 +03:00
lapb.h
latencytop.h
lcd.h
leds_pwm.h
leds-bd2802.h
leds-lp3944.h
leds-pca9532.h
leds.h
lguest_launcher.h lguest: fix comment style 2009-07-30 16:03:45 +09:30
lguest.h lguest and virtio: cleanup struct definitions to Linux style. 2009-07-30 16:03:46 +09:30
libata.h libata: remove spindown skipping and warning 2009-09-01 19:47:20 -04:00
libps2.h Input: add new driver for Sentelic Finger Sensing Pad 2009-08-19 21:46:09 -07:00
license.h
limits.h
linkage.h
linux_logo.h
lis3lv02d.h lis3: add free-fall/wakeup function via platform_data 2009-09-22 07:17:48 -07:00
list_nulls.h
list.h
llc.h
lmb.h lmb: Also remove __init from lmb_end_of_RAM() declaration in lmb.h 2009-08-31 17:30:14 -10:00
lockdep.h lockdep: Reintroduce generation count to make BFS faster 2009-08-02 15:41:37 +02:00
log2.h
loop.h
lp.h
lsm_audit.h SELinux: Convert avc_audit to use lsm_audit.h 2009-08-17 08:37:18 +10:00
lzo.h
m48t86.h
magic.h Move magic numbers into magic.h 2009-09-23 07:39:28 -07:00
major.h
map_to_7segment.h
maple.h
math64.h
matroxfb.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mdio-bitbang.h
mdio-gpio.h
mdio.h mdio: mdio_if_info::mmds should not be __bitwise 2009-08-18 20:13:03 -07:00
memcontrol.h
memory_hotplug.h
memory.h
mempolicy.h
mempool.h mm: remove broken 'kzalloc' mempool 2009-09-22 07:17:35 -07:00
memstick.h
meye.h
mg_disk.h
migrate.h
mii.h
minix_fs.h
miscdevice.h Driver-Core: extend devnode callbacks to provide permissions 2009-09-19 12:50:38 -07:00
mISDNdsp.h
mISDNhw.h mISDN: Make clearing B-channel a common function 2009-07-25 20:18:16 +02:00
mISDNif.h trivial: fix typos "man[ae]g?ment" -> "management" 2009-09-21 15:14:56 +02:00
mm_inline.h mm: return boolean from page_is_file_cache() 2009-09-22 07:17:37 -07:00
mm_types.h mm: revert "oom: move oom_adj value" 2009-08-18 16:31:13 -07:00
mm.h tmpfs: depend on shmem 2009-09-22 07:17:41 -07:00
mman.h
mmdebug.h
mmiotrace.h
mmtimer.h
mmu_context.h mm: move use_mm/unuse_mm from aio.c to mm/ 2009-09-22 07:17:42 -07:00
mmu_notifier.h ksm: add mmu_notifier set_pte_at_notify() 2009-09-22 07:17:31 -07:00
mmzone.h page-allocator: split per-cpu list into one-list-per-migrate-type 2009-09-22 07:17:39 -07:00
mnt_namespace.h
mod_devicetable.h
module.h tracing: Remove markers 2009-09-18 21:22:08 +02:00
moduleloader.h
moduleparam.h
mount.h
mpage.h
mqueue.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
msi.h
mtio.h
mutex-debug.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
n_r3964.h
namei.h trivial: fix typo in namei.h comment 2009-09-21 15:14:51 +02: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_dropmon.h
net_tstamp.h
net.h [PATCH] net: kmemcheck annotation in struct socket 2009-09-15 02:39:20 -07:00
netdevice.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-09-17 20:53:52 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h genetlink: fix netns vs. netlink table locking 2009-09-14 17:02:50 -07:00
netpoll.h
netrom.h
nfs2.h
nfs3.h
nfs4_acl.h
nfs4_mount.h
nfs4.h Merge branch 'for-2.6.32' of git://linux-nfs.org/~bfields/linux 2009-09-22 07:54:33 -07:00
nfs_fs_i.h
nfs_fs_sb.h NFSv4: Add 'server capability' flags for NFSv4 recommended attributes 2009-08-09 15:06:19 -04:00
nfs_fs.h NFS: Fix an O_DIRECT Oops... 2009-08-12 08:21:39 -07:00
nfs_idmap.h
nfs_iostat.h
nfs_mount.h
nfs_page.h
nfs_xdr.h
nfs.h
nfsacl.h
nfsd_idmap.h
nilfs2_fs.h
nl80211.h nl80211: add generation number to all dumps 2009-08-14 09:13:43 -04:00
nl802154.h ieee802154: add support for channel pages from IEEE 802.15.4-2006 2009-08-19 23:08:22 +04:00
nls.h
nmi.h debug lockups: Improve lockup detection, fix generic arch fallback 2009-08-03 09:56:52 +02:00
node.h
nodemask.h mm: make set_mempolicy(MPOL_INTERLEAV) N_HIGH_MEMORY aware 2009-08-07 10:39:55 -07:00
notifier.h bonding: remap muticast addresses without using dev_close() and dev_open() 2009-09-15 02:37:40 -07:00
nsc_gpio.h
nsproxy.h
nubus.h
numa.h
nvram.h
nwpserial.h
of_device.h
of_gpio.h
of_i2c.h
of_mdio.h of/mdio: Add support function for Ethernet fixed-link property 2009-07-22 09:27:18 -07:00
of_platform.h
of_spi.h
of.h
oom.h oom: move oom_killer_enable()/oom_killer_disable to where they belong 2009-09-22 07:17:38 -07:00
oprofile.h oprofile: Implement performance counter multiplexing 2009-07-20 16:33:53 +02:00
oxu210hp.h
page_cgroup.h includecheck fix: include/linux, page_cgroup.h 2009-09-20 16:57:50 +05:30
page-debug-flags.h
page-flags.h mm: return boolean from page_has_private() 2009-09-22 07:17:38 -07:00
page-isolation.h
pageblock-flags.h
pagemap.h rcu: Expunge lingering references to CONFIG_CLASSIC_RCU, optimize on !SMP 2009-08-22 13:07:09 +02:00
pagevec.h
param.h
parport_pc.h
parport.h
parser.h
patchkey.h
path.h
pci_hotplug.h PCI hotplug: acpiphp: use generic pci_configure_slot() 2009-09-14 17:39:12 -07:00
pci_ids.h libata: Add pata_atp867x driver for Artop/Acard ATP867X controllers 2009-09-17 16:47:06 -04:00
pci_regs.h uio: add generic driver for PCI 2.3 devices 2009-09-15 09:50:48 -07:00
pci-acpi.h
pci-aspm.h
pci.h PCI PM: Introduce device flag wakeup_prepared 2009-09-09 14:19:11 -07:00
pcieport_if.h
pda_power.h
percpu_counter.h
percpu-defs.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-09-15 09:39:44 -07:00
percpu.h percpu: kill lpage first chunk allocator 2009-08-14 15:00:53 +09:00
perf_counter.h perf: Tidy up after the big rename 2009-09-21 14:34:11 +02:00
perf_event.h perf: Tidy up after the big rename 2009-09-21 14:34:11 +02:00
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h
phonedev.h
phonet.h cdc-phonet: autoconfigure Phonet address 2009-09-11 12:55:10 -07:00
phy_fixed.h
phy.h
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h
pktcdvd.h
platform_device.h PM: Remove platform device suspend_late()/resume_early() V2 2009-07-22 00:28:39 +02:00
plist.h
pm_qos_params.h
pm_runtime.h PM: Introduce core framework for run-time PM of I/O devices (rev. 17) 2009-08-23 00:04:44 +02:00
pm_wakeup.h
pm.h PM: Add convenience macro to make switching to dev_pm_ops less error-prone 2009-09-14 20:27:00 +02:00
pmu.h
pnp.h pnp: add a shutdown method to pnp drivers 2009-09-22 07:17:49 -07:00
poison.h flex_array: poison free elements 2009-09-22 07:17:47 -07:00
poll.h
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
pps_kernel.h
pps.h pps.h needs <linux/types.h> 2009-07-29 19:10:36 -07:00
prctl.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
preempt.h
prefetch.h
prio_heap.h
prio_tree.h
proc_fs.h
profile.h
proportions.h
ptrace.h
pwm_backlight.h
pwm.h
qnx4_fs.h
qnxtypes.h
quicklist.h
quota.h
quotaops.h const: make struct super_block::s_qcop const 2009-09-22 07:17:24 -07:00
radeonfb.h
radix-tree.h
raid_class.h
ramfs.h
random.h
ratelimit.h
rational.h
raw.h
rbtree.h
rculist_nulls.h rcu: Fix whitespace inconsistencies 2009-09-19 08:53:22 +02:00
rculist.h
rcupdate.h rcu: Fix whitespace inconsistencies 2009-09-19 08:53:22 +02:00
rcutree.h rcu: Fix whitespace inconsistencies 2009-09-19 08:53:22 +02:00
rds.h RDS: Add TCP transport to RDS 2009-08-23 19:13:02 -07:00
reboot.h
reciprocal_div.h
regset.h
reiserfs_acl.h
reiserfs_fs_i.h
reiserfs_fs_sb.h
reiserfs_fs.h
reiserfs_xattr.h
relay.h
res_counter.h
resource.h
resume-trace.h
rfkill.h rfkill: relicense header file 2009-09-01 12:48:21 -04:00
ring_buffer.h ring-buffer: only enable ring_buffer_swap_cpu when needed 2009-09-04 19:42:22 -04:00
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h ksm: no debug in page_dup_rmap() 2009-09-22 07:17:31 -07:00
romfs_fs.h
root_dev.h
rose.h
rotary_encoder.h
route.h
rslib.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h IPv6/addrconf: Fix minor addrlabel thinko 2009-09-09 03:42:23 -07:00
rwsem-spinlock.h
rwsem.h
rxrpc.h RxRPC: Declare the security index constants symbolically 2009-09-15 02:44:17 -07:00
sc26198.h
scatterlist.h lib/scatterlist: add a flags to signalize mapping direction 2009-07-31 12:28:45 +02:00
scc.h
sched.h getrusage: fill ru_maxrss value 2009-09-23 07:39:30 -07:00
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdla.h
seccomp.h
securebits.h
security.h LSM/SELinux: inode_{get,set,notify}secctx hooks to access LSM security context information. 2009-09-10 10:11:24 +10:00
selection.h
selinux_netlink.h
selinux.h SELinux: inline selinux_is_enabled in !CONFIG_SECURITY_SELINUX 2009-09-15 11:37:33 +10:00
sem.h
semaphore.h
seq_file_net.h
seq_file.h
seqlock.h
serial167.h
serial_8250.h serial: 8250: add IRQ trigger support 2009-09-19 13:13:19 -07:00
serial_core.h serial: kill USF_CLOSING_* definitions 2009-09-19 13:13:32 -07:00
serial_max3100.h
serial_pnx8xxx.h
serial_reg.h
serial_sci.h
serial.h serial: move the flags into the tty_port field 2009-09-19 13:13:30 -07:00
serialP.h
serio.h Input: serio - switch to using dev_pm_ops 2009-07-26 11:17:01 -07:00
sh_intc.h sh: Simplify "multi-evt" interrupt handling. 2009-08-24 19:52:38 +09:00
sh_timer.h
shm.h
shmem_fs.h Driver Core: devtmpfs - kernel-maintained tmpfs-based /dev 2009-09-15 09:50:49 -07:00
sht15.h
signal.h
signalfd.h
skbuff.h net: remove unused skb->do_not_encrypt 2009-07-24 15:05:31 -04:00
slab_def.h
slab.h
slob_def.h slab: remove duplicate kmem_cache_init_late() declarations 2009-08-06 11:36:25 +03:00
slow-work.h
slub_def.h Merge branches 'slab/cleanups' and 'slab/fixes' into for-linus 2009-09-14 20:19:06 +03:00
sm501-regs.h
sm501.h
smb_fs_i.h
smb_fs_sb.h
smb_fs.h
smb_mount.h
smb.h
smbno.h
smc91x.h
smc911x.h
smp_lock.h
smp.h
smsc911x.h
snmp.h
socket.h
sockios.h
som.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h locking: Simplify spinlock inlining 2009-08-31 18:08:51 +02:00
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h locking: Simplify spinlock inlining 2009-08-31 18:08:51 +02:00
splice.h
srcu.h
stackprotector.h
stacktrace.h
stallion.h
start_kernel.h
stat.h
statfs.h
stddef.h
stop_machine.h
string_helpers.h
string.h
stringify.h
superhyway.h
suspend_ioctls.h
suspend.h
svga.h
swab.h
swap.h mm: make swap token dummies static inlines 2009-09-22 07:17:25 -07:00
swapops.h
swiotlb.h swiotlb: use phys_to_dma and dma_to_phys 2009-07-28 14:19:20 +09:00
synclink.h
sys.h
syscalls.h Merge branch 'perfcounters-rename-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-21 09:15:07 -07:00
sysctl.h
sysdev.h
sysfs.h
sysrq.h
sysv_fs.h
task_io_accounting_ops.h
task_io_accounting.h
taskstats_kern.h headers: taskstats_kern.h trim 2009-09-18 09:48:52 -07:00
taskstats.h
tboot.h x86, intel_txt: clean up the impact on generic code, unbreak non-x86 2009-09-01 18:25:07 -07:00
tc.h
tcp.h tcp: MD5 operations should be const 2009-09-02 01:03:43 -07:00
telephony.h
termios.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thread_info.h
threads.h
tick.h
tifm.h
time.h time: Prevent 32 bit overflow with set_normalized_timespec() 2009-09-15 10:17:30 +02:00
timecompare.h
timer.h timers: Drop a function prototype 2009-08-30 22:26:34 +02:00
timerfd.h
timeriomem-rng.h
times.h
timex.h
tiocl.h
tipc_config.h
tipc.h
topology.h sched: Disable wakeup balancing 2009-09-16 16:44:33 +02:00
toshiba.h
tpm.h
trace_clock.h
trace_seq.h
tracehook.h
tracepoint.h Merge branch 'tracing/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into tracing/core 2009-08-26 08:29:02 +02:00
transport_class.h driver model: constify attribute groups 2009-09-15 09:50:47 -07:00
trdevice.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h tty-ldisc: make refcount be atomic_t 'users' count 2009-08-04 13:46:30 -07:00
tty.h tty: handle VT specific compat ioctls in vt driver 2009-09-19 13:13:35 -07:00
typecheck.h
types.h
uaccess.h
ucb1400.h Input: ucb1400_ts - enable ADC Filter 2009-08-21 00:53:12 -07:00
udf_fs_i.h
udp.h
uinput.h
uio_driver.h
uio.h uio: mark uio.h functions __KERNEL__ only 2009-07-29 19:10:39 -07:00
ultrasound.h
un.h
unistd.h
usb_usual.h
usb.h trivial: fix typo "for for" in multiple files 2009-09-21 15:14:54 +02:00
usbdevice_fs.h
user_namespace.h
user.h
utime.h
uts.h
utsname.h
uwb.h uwb: avoid radio controller reset loops 2009-08-26 12:39:29 +01:00
vermagic.h
veth.h
vfs.h
vgaarb.h PCI/vgaarb: cleanup some warnings + cleanup some comments. 2009-09-09 13:29:41 -07:00
via.h
video_output.h
videodev2.h V4L/DVB (12511): V4L2: add a new V4L2_CID_BAND_STOP_FILTER integer control 2009-09-19 00:18:36 -03:00
videodev.h
videotext.h
virtio_9p.h
virtio_balloon.h
virtio_blk.h lguest and virtio: cleanup struct definitions to Linux style. 2009-07-30 16:03:46 +09:30
virtio_config.h BUILD_BUG_ON(): fix it and a couple of bogus uses of it 2009-09-23 07:39:29 -07:00
virtio_console.h
virtio_net.h lguest and virtio: cleanup struct definitions to Linux style. 2009-07-30 16:03:46 +09:30
virtio_pci.h
virtio_ring.h lguest and virtio: cleanup struct definitions to Linux style. 2009-07-30 16:03:46 +09:30
virtio_rng.h
virtio.h
vlynq.h
vmalloc.h vmalloc: implement pcpu_get_vm_areas() 2009-08-14 15:00:52 +09:00
vmstat.h mm: count only reclaimable lru pages 2009-09-22 07:17:30 -07:00
vt_buffer.h
vt_kern.h vt: move kernel stuff out of vt.h 2009-09-19 13:13:25 -07:00
vt.h vt: add an activate and lock 2009-09-19 13:13:26 -07:00
w1-gpio.h
wait.h sched: Rename sync arguments 2009-09-15 16:51:30 +02:00
wanrouter.h
watchdog.h
wimax.h
wireless.h
wlp.h
wm97xx_batt.h
wm97xx.h Input: wm97xx - add possibility to control the GPIO_STATUS shift 2009-07-20 22:30:33 -07:00
workqueue.h Change "useing" -> "using". 2009-09-21 15:14:53 +02:00
writeback.h writeback: separate starting of sync vs opportunistic writeback 2009-09-16 15:18:52 +02:00
x25.h
xattr.h VFS: Factor out part of vfs_setxattr so it can be called from the SELinux hook for inode_setsecctx. 2009-09-10 10:11:22 +10:00
xfrm.h
xilinxfb.h
yam.h
zconf.h
zlib.h
zorro_ids.h
zorro.h
zutil.h