summaryrefslogtreecommitdiffstats
path: root/Documentation/vm
diff options
context:
space:
mode:
authorKirill A. Shutemov2016-07-27 00:26:38 +0200
committerLinus Torvalds2016-07-27 01:19:19 +0200
commit779750d20b93bb2e0c75dfe924f31b02f6a78bfa (patch)
treed2c97d4a8c3db37796535d5758c06841cb4781cb /Documentation/vm
parentthp: introduce CONFIG_TRANSPARENT_HUGE_PAGECACHE (diff)
downloadkernel-qcow2-linux-779750d20b93bb2e0c75dfe924f31b02f6a78bfa.tar.gz
kernel-qcow2-linux-779750d20b93bb2e0c75dfe924f31b02f6a78bfa.tar.xz
kernel-qcow2-linux-779750d20b93bb2e0c75dfe924f31b02f6a78bfa.zip
shmem: split huge pages beyond i_size under memory pressure
Even if user asked to allocate huge pages always (huge=always), we should be able to free up some memory by splitting pages which are partly byound i_size if memory presure comes or once we hit limit on filesystem size (-o size=). In order to do this we maintain per-superblock list of inodes, which potentially have huge pages on the border of file size. Per-fs shrinker can reclaim memory by splitting such pages. If we hit -ENOSPC during shmem_getpage_gfp(), we try to split a page to free up space on the filesystem and retry allocation if it succeed. Link: http://lkml.kernel.org/r/1466021202-61880-37-git-send-email-kirill.shutemov@linux.intel.com Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation/vm')
0 files changed, 0 insertions, 0 deletions