Jerome Marchand
8cee852ec5
mm, procfs: breakdown RSS for anon, shmem and file in /proc/pid/status
...
There are several shortcomings with the accounting of shared memory
(SysV shm, shared anonymous mapping, mapping of a tmpfs file). The
values in /proc/<pid>/status and <...>/statm don't allow to distinguish
between shmem memory and a shared mapping to a regular file, even though
theirs implication on memory usage are quite different: during reclaim,
file mapping can be dropped or written back on disk, while shmem needs a
place in swap.
Also, to distinguish the memory occupied by anonymous and file mappings,
one has to read the /proc/pid/statm file, which has a field for the file
mappings (again, including shmem) and total memory occupied by these
mappings (i.e. equivalent to VmRSS in the <...>/status file. Getting
the value for anonymous mappings only is thus not exactly user-friendly
(the statm file is intended to be rather efficiently machine-readable).
To address both of these shortcomings, this patch adds a breakdown of
VmRSS in /proc/<pid>/status via new fields RssAnon, RssFile and
RssShmem, making use of the previous preparatory patch. These fields
tell the user the memory occupied by private anonymous pages, mapped
regular files and shmem, respectively. Other existing fields in /status
and /statm files are left without change. The /statm file can be
extended in the future, if there's a need for that.
Example (part of) /proc/pid/status output including the new Rss* fields:
VmPeak: 2001008 kB
VmSize: 2001004 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 5108 kB
VmRSS: 5108 kB
RssAnon: 92 kB
RssFile: 1324 kB
RssShmem: 3692 kB
VmData: 192 kB
VmStk: 136 kB
VmExe: 4 kB
VmLib: 1784 kB
VmPTE: 3928 kB
VmPMD: 20 kB
VmSwap: 0 kB
HugetlbPages: 0 kB
[vbabka@suse.cz: forward-porting, tweak changelog]
Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-01-14 16:00:49 -08:00
..
caching
FS-Cache: Count the number of initialised operations
2015-04-02 14:28:53 +01:00
cifs
update CIFS TODO list
2014-08-02 01:26:07 -05:00
configfs
configfs: implement binary attributes
2016-01-04 12:31:46 +01:00
nfs
ipconfig: send Client-identifier in DHCP requests
2015-10-18 19:23:52 -07:00
pohmelfs
Documentation: Fix multiple typo in Documentation
2012-03-07 16:08:24 +01:00
.gitignore
Documentation: update .gitignore files
2014-09-26 11:02:59 +02:00
00-INDEX
dax: replace XIP documentation with DAX documentation
2015-02-16 17:56:03 -08:00
9p.txt
9p: update documentation
2014-01-24 10:55:21 -06:00
adfs.txt
adfs: add hexadecimal filetype suffix option
2011-03-22 17:44:17 -07:00
affs.txt
affs: add mount option to avoid filename truncates
2014-04-07 16:36:08 -07:00
afs.txt
autofs4-mount-control.txt
doc: fix double words
2014-03-21 13:16:58 +01:00
autofs4.txt
autofs: the documentation I wanted to read
2014-10-14 02:18:17 +02:00
automount-support.txt
Documentation: remove outdated information from automount-support.txt
2015-05-15 01:10:38 -04:00
befs.txt
Documentation: befs.txt: no maintainer, orphaned
2011-08-13 18:34:03 -07:00
bfs.txt
remove mention of CONFIG_KMOD from documentation
2008-07-22 19:24:29 +10:00
btrfs.txt
Documentation: filesystems: btrfs: Fixed typos and whitespace
2015-07-09 14:31:06 -06:00
ceph.txt
ceph: enable/disable dentry complete flags via mount option
2012-01-12 11:00:40 -08:00
coda.txt
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
cramfs.txt
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
dax.txt
dax: add huge page fault support
2015-09-08 15:35:28 -07:00
debugfs.txt
debugfs: Pass bool pointer to debugfs_create_bool()
2015-10-04 11:36:07 +01:00
devpts.txt
Document usage of multiple-instances of devpts
2009-01-02 10:19:36 -08:00
directory-locking
vfs: take i_mutex on renamed file
2013-11-09 00:16:40 -05:00
dlmfs.txt
ocfs2: update web page + git tree in documentation
2015-02-28 09:57:50 -08:00
dnotify.txt
dnotify_test.c
Documentation/fs/: split txt and source files
2010-03-12 15:52:35 -08:00
ecryptfs.txt
efivarfs.txt
efivarfs: Add documentation for the EFI variable filesystem
2012-10-30 10:39:18 +00:00
exofs.txt
exofs: Add option to mount by osdname
2011-03-15 15:02:51 +02:00
ext2.txt
fs: Remove ext3 filesystem driver
2015-07-23 20:59:40 +02:00
ext3.txt
fs: Remove ext3 filesystem driver
2015-07-23 20:59:40 +02:00
ext4.txt
ext4: add DAX functionality
2015-02-16 17:56:04 -08:00
f2fs.txt
f2fs: introduce new option for controlling data flush
2015-12-16 09:25:48 -08:00
fiemap.txt
fsioctl.c: make generic_block_fiemap() signal-tolerant
2015-02-10 14:30:30 -08:00
files.txt
Wrap accesses to the fd_sets in struct fdtable
2012-02-19 10:30:52 -08:00
fuse.txt
gfs2-glocks.txt
gfs2: Remove gl_spin define
2015-10-29 12:57:48 -05:00
gfs2-uevents.txt
Documentation: Fix multiple typo in Documentation
2012-03-07 16:08:24 +01:00
gfs2.txt
GFS2: Update main gfs2 doc
2012-05-10 11:45:31 +01:00
hfs.txt
Documentation: HFS is orphaned
2011-11-04 12:01:48 -07:00
hfsplus.txt
Documentation: update URL to hfsplus Technote 1150
2014-02-20 14:48:51 +01:00
hpfs.txt
inotify.txt
inotify: update documentation to reflect code changes
2015-02-10 14:30:28 -08:00
isofs.txt
Documentation: update broken web addresses.
2010-08-04 15:21:40 +02:00
jfs.txt
doc: fix misspellings with 'codespell' tool
2013-05-28 12:02:12 +02:00
Locking
switch ->get_link() to delayed_call, kill ->put_link()
2015-12-30 13:01:03 -05:00
locks.txt
doc: fix broken references
2011-09-27 18:08:04 +02:00
logfs.txt
Makefile
configfs: remove old API
2015-10-13 22:17:57 -07:00
mandatory-locking.txt
locks: add warning about mandatory locking races
2007-10-09 18:32:45 -04:00
ncpfs.txt
ncpfs: remove dead URL from documentation
2009-09-23 07:39:42 -07:00
nilfs2.txt
nilfs2: update project's web site in nilfs2.txt
2014-04-03 16:21:26 -07:00
ntfs.txt
NTFS: Remove changelog from Documentation/filesystems/ntfs.txt.
2014-10-16 12:43:57 +01:00
ocfs2.txt
ocfs2: update web page + git tree in documentation
2015-02-28 09:57:50 -08:00
omfs.txt
overlayfs.txt
Remove email address from Documentation/filesystems/overlayfs.txt
2015-11-11 10:04:53 -07:00
path-lookup.md
Documentation: add new description of path-name lookup.
2015-11-02 18:18:25 -07:00
path-lookup.txt
Documentation: add new description of path-name lookup.
2015-11-02 18:18:25 -07:00
porting
switch ->get_link() to delayed_call, kill ->put_link()
2015-12-30 13:01:03 -05:00
proc.txt
mm, procfs: breakdown RSS for anon, shmem and file in /proc/pid/status
2016-01-14 16:00:49 -08:00
qnx6.txt
doc: filesystems : Fix typo in Documentations/filesystems
2013-08-20 13:45:56 +02:00
quota.txt
quota: Update documentation
2015-05-18 11:23:07 +02:00
ramfs-rootfs-initramfs.txt
initmpfs: use initramfs if rootfstype= or root= specified
2013-09-11 15:59:38 -07:00
relay.txt
doc: Fix typo in doucmentations
2013-07-25 12:34:15 +02:00
romfs.txt
Documentation/filesystems/romfs.txt: fixing link to genromfs
2011-02-17 22:04:46 +01:00
seq_file.txt
Documentation: update seq_file
2014-12-29 15:40:18 -07:00
sharedsubtree.txt
doc: spelling error changes
2014-05-05 15:32:05 +02:00
spufs.txt
squashfs.txt
Squashfs: Add LZ4 compression configuration option
2014-11-27 18:48:44 +00:00
sysfs-pci.txt
PCI: Allow read/write access to sysfs I/O port resources
2010-07-30 09:32:08 -07:00
sysfs-tagging.txt
sysfs-tagging.txt: fix pre-kernfs references
2015-09-13 14:38:51 -06:00
sysfs.txt
sysfs.txt: mention that store method buffers are null-terminated
2015-09-13 14:38:51 -06:00
sysv-fs.txt
tmpfs.txt
ubifs.txt
UBIFS: switch self-check knobs to debugfs
2011-07-04 10:54:28 +03:00
udf.txt
ufs.txt
[PATCH] ufs2 write: mount as rw
2007-02-12 09:48:40 -08:00
vfat.txt
fs/fat/: add support for DOS 1.x formatted volumes
2014-06-06 16:08:10 -07:00
vfs.txt
switch ->get_link() to delayed_call, kill ->put_link()
2015-12-30 13:01:03 -05:00
xfs-delayed-logging-design.txt
Fix common misspellings
2011-03-31 11:26:23 -03:00
xfs-self-describing-metadata.txt
xfs: add metadata CRC documentation
2013-04-27 13:27:43 -05:00
xfs.txt
xfs: fix kernel version in docs
2015-06-01 07:15:38 +10:00