Rik van Riel
34e431b0ae
/proc/meminfo: provide estimated available memory
...
Many load balancing and workload placing programs check /proc/meminfo to
estimate how much free memory is available. They generally do this by
adding up "free" and "cached", which was fine ten years ago, but is
pretty much guaranteed to be wrong today.
It is wrong because Cached includes memory that is not freeable as page
cache, for example shared memory segments, tmpfs, and ramfs, and it does
not include reclaimable slab memory, which can take up a large fraction
of system memory on mostly idle systems with lots of files.
Currently, the amount of memory that is available for a new workload,
without pushing the system into swap, can be estimated from MemFree,
Active(file), Inactive(file), and SReclaimable, as well as the "low"
watermarks from /proc/zoneinfo.
However, this may change in the future, and user space really should not
be expected to know kernel internals to come up with an estimate for the
amount of free memory.
It is more convenient to provide such an estimate in /proc/meminfo. If
things change in the future, we only have to change it in one place.
Signed-off-by: Rik van Riel <riel@redhat.com>
Reported-by: Erik Mouw <erik.mouw_2@nxp.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-01-21 16:19:43 -08:00
..
caching
FS-Cache: Provide the ability to enable/disable cookies
2013-09-27 18:40:25 +01:00
cifs
cifs: update cifs.txt and remove some outdated infos
2013-09-13 16:29:58 -05:00
configfs
configfs: convert to umode_t
2012-01-03 22:54:57 -05:00
nfs
doc: filesystems : Fix typo in Documentations/filesystems
2013-08-20 13:45:56 +02:00
pohmelfs
Documentation: Fix multiple typo in Documentation
2012-03-07 16:08:24 +01:00
00-INDEX
Introduce a new file system, Flash-Friendly File System (F2FS), to Linux 3.8.
2012-12-20 13:54:52 -08:00
9p.txt
9p: fix 9p.txt to advertise msize instead of maxdata
2011-10-24 11:13:12 -05:00
adfs.txt
adfs: add hexadecimal filetype suffix option
2011-03-22 17:44:17 -07:00
affs.txt
Documentation: update broken web addresses.
2010-08-04 15:21:40 +02:00
afs.txt
AFS: Documentation updates
2009-08-19 10:40:13 -07:00
autofs4-mount-control.txt
Fix common misspellings
2011-03-31 11:26:23 -03:00
automount-support.txt
VFS: Unexport do_kern_mount() and clean up simple_pin_fs()
2006-06-09 09:34:16 -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: update btrfs tools section
2013-11-21 11:51:50 -05:00
ceph.txt
ceph: enable/disable dentry complete flags via mount option
2012-01-12 11:00:40 -08:00
coda.txt
cramfs.txt
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
debugfs.txt
debugfs: more tightly restrict default mount mode
2012-08-27 13:42:02 -07: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
Documentation/: it's -> its where appropriate
2010-04-23 02:09:52 +02:00
dnotify.txt
Documentation/fs/: split txt and source files
2010-03-12 15:52:35 -08:00
dnotify_test.c
Documentation/fs/: split txt and source files
2010-03-12 15:52:35 -08:00
ecryptfs.txt
eCryptfs: Move ecryptfs docs into Documentation/filesystems/
2007-07-17 10:23:08 -07:00
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
Doc fix: ext2 can only have 32,000 subdirs, not 32,768
2009-06-18 13:03:44 -07:00
ext3.txt
ext3: allow specifying external journal by pathname mount option
2013-07-31 22:11:15 +02:00
ext4.txt
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2013-09-06 09:36:28 -07:00
f2fs.txt
f2fs: update f2fs document
2013-11-01 11:20:05 +09:00
fiemap.txt
Documentation/: it's -> its where appropriate
2010-04-23 02:09:52 +02:00
files.txt
Wrap accesses to the fd_sets in struct fdtable
2012-02-19 10:30:52 -08:00
fuse.txt
Documentation/: it's -> its where appropriate
2010-04-23 02:09:52 +02:00
gfs2-glocks.txt
GFS2: Update glock doc to add new stats info
2012-05-10 12:41:40 +01: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: document HFSPlus
2007-07-31 15:39:38 -07:00
hpfs.txt
Documentation/: it's -> its where appropriate
2010-04-23 02:09:52 +02:00
inotify.txt
Documentation: fix inotify source file paths
2011-11-04 12:01:47 -07: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
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2013-07-03 09:10:19 -07:00
locks.txt
doc: fix broken references
2011-09-27 18:08:04 +02:00
logfs.txt
fix "seperate" typos in comments
2010-05-10 11:56:30 +02:00
Makefile
Documentation/fs/: split txt and source files
2010-03-12 15:52:35 -08: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: remove resize from unsupported features list
2011-07-13 16:08:59 +09:00
ntfs.txt
Fix common misspellings
2011-03-31 11:26:23 -03:00
ocfs2.txt
ocfs2: clean up mount option about atime in ocfs2.txt
2011-05-23 23:37:12 -07:00
omfs.txt
omfs: add filesystem documentation
2008-07-26 12:00:05 -07:00
path-lookup.txt
Fix common misspellings
2011-03-31 11:26:23 -03:00
porting
iget/iget5: don't bother with ->i_lock until we find a match
2013-11-09 00:16:31 -05:00
proc.txt
/proc/meminfo: provide estimated available memory
2014-01-21 16:19:43 -08:00
qnx6.txt
doc: filesystems : Fix typo in Documentations/filesystems
2013-08-20 13:45:56 +02:00
quota.txt
quota: documentation for sending "below quota" messages via netlink and tiny doc update
2008-08-12 16:07:27 -07: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
seq_file: use proc_create() in documentation
2009-12-16 07:20:07 -08:00
sharedsubtree.txt
Documentation: Fix trivial typo in filesystems/sharedsubtree.txt
2010-10-25 21:18:21 -04:00
spufs.txt
Fix typos in /Documentation : 'U-Z'
2006-11-30 04:58:40 +01:00
squashfs.txt
Squashfs: Update documentation to include xattrs
2011-12-30 01:20:24 +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
doc: Fix typo in doucmentations
2013-07-25 12:34:15 +02:00
sysfs.txt
sysfs: propagate umode_t
2012-01-03 22:55:03 -05:00
sysv-fs.txt
[PATCH] fs/sysv/: doc cleanup
2006-12-07 08:39:44 -08:00
tmpfs.txt
mempolicy: document cpuset interaction with tmpfs mpol mount option
2010-05-25 08:06:57 -07:00
ubifs.txt
UBIFS: switch self-check knobs to debugfs
2011-07-04 10:54:28 +03:00
udf.txt
udf: implement mode and dmode mounting options
2009-04-02 12:29:50 +02:00
ufs.txt
[PATCH] ufs2 write: mount as rw
2007-02-12 09:48:40 -08:00
vfat.txt
Documentation/filesystems/vfat.txt: fix directory entry example
2013-11-13 12:09:32 +09:00
vfs.txt
vfs: improve i_op->atomic_open() documentation
2013-09-16 19:17:24 -04: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
doc: filesystems : Fix typo in Documentations/filesystems
2013-08-20 13:45:56 +02:00
xip.txt
DOC: update xip method info
2008-11-12 17:17:17 -08:00