2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-22 12:14:01 +08:00
linux-next/Documentation/filesystems
David Rientjes b813e931b4 smaps: add clear_refs file to clear reference
Adds /proc/pid/clear_refs.  When any non-zero number is written to this file,
pte_mkold() and ClearPageReferenced() is called for each pte and its
corresponding page, respectively, in that task's VMAs.  This file is only
writable by the user who owns the task.

It is now possible to measure _approximately_ how much memory a task is using
by clearing the reference bits with

	echo 1 > /proc/pid/clear_refs

and checking the reference count for each VMA from the /proc/pid/smaps output
at a measured time interval.  For example, to observe the approximate change
in memory footprint for a task, write a script that clears the references
(echo 1 > /proc/pid/clear_refs), sleeps, and then greps for Pgs_Referenced and
extracts the size in kB.  Add the sizes for each VMA together for the total
referenced footprint.  Moments later, repeat the process and observe the
difference.

For example, using an efficient Mozilla:

	accumulated time		referenced memory
	----------------		-----------------
		 0 s				 408 kB
		 1 s				 408 kB
		 2 s				 556 kB
		 3 s				1028 kB
		 4 s				 872 kB
		 5 s				1956 kB
		 6 s				 416 kB
		 7 s				1560 kB
		 8 s				2336 kB
		 9 s				1044 kB
		10 s				 416 kB

This is a valuable tool to get an approximate measurement of the memory
footprint for a task.

Cc: Hugh Dickins <hugh@veritas.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: David Rientjes <rientjes@google.com>
[akpm@linux-foundation.org: build fixes]
[mpm@selenic.com: rename for_each_pmd]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-07 12:12:52 -07:00
..
configfs Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
9p.txt 9p: implement optional loose read cache 2007-02-18 10:16:10 -06:00
00-INDEX 9p: implement optional loose read cache 2007-02-18 10:16:10 -06:00
adfs.txt Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
affs.txt
afs.txt [AFS]: Update the AFS fs documentation. 2007-04-26 15:57:43 -07:00
automount-support.txt
befs.txt
bfs.txt [PATCH] update Tigran's email addresses 2006-12-13 09:05:53 -08:00
cifs.txt
coda.txt
cramfs.txt
dentry-locking.txt
directory-locking
dlmfs.txt
Exporting
ext2.txt
ext3.txt
ext4.txt [PATCH] Documentation/filesystems/ext4.txt 2006-10-11 11:14:19 -07:00
files.txt
fuse.txt [PATCH] fuse: fix typo 2006-12-30 10:56:45 -08:00
gfs2.txt
hfs.txt
hpfs.txt Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
inotify.txt
isofs.txt
jfs.txt
Locking [PATCH] NFS: Fix race in nfs_release_page() 2007-01-11 18:18:21 -08:00
ncpfs.txt
ntfs.txt NTFS: 2.1.28 - Fix deadlock reported by Sergey Vlasov due to ntfs_put_inode(). 2007-01-18 09:42:48 +00:00
ocfs2.txt ocfs2: update mount option documentation 2006-12-07 17:48:41 -08:00
porting
proc.txt smaps: add clear_refs file to clear reference 2007-05-07 12:12:52 -07:00
ramfs-rootfs-initramfs.txt
relay.txt [PATCH] Relay: add CPU hotplug support 2007-02-11 10:51:28 -08:00
romfs.txt
smbfs.txt
spufs.txt Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
sysfs-pci.txt Fix typos concerning hierarchy 2007-02-17 19:23:03 +01:00
sysfs.txt
sysv-fs.txt [PATCH] fs/sysv/: doc cleanup 2006-12-07 08:39:44 -08:00
tmpfs.txt
udf.txt [PATCH] Update udf documentation to reflect current state of read/write support 2006-11-16 11:43:38 -08:00
ufs.txt [PATCH] ufs2 write: mount as rw 2007-02-12 09:48:40 -08:00
vfat.txt
vfs.txt [PATCH] fs: fix libfs data leak 2007-02-20 17:10:15 -08:00
xfs.txt
xip.txt