shmem pages can't be reclaimed and if they are swapped out that doesn't affect the overall available memory in the system, so don't count them along with the rest of the file backed pages. Signed-off-by: Dmitry Fink <dmitry.fink@xxxxxxxx> --- mm/mmap.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index b88624f..3a34dc2 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -119,6 +119,13 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) unsigned long n; free = global_page_state(NR_FILE_PAGES); + + /* shmem pages shouldn't be counted as free in this + * case, they can't be purged, only swapped out, and + * that won't affect the overall amount of available + * memory in the system. */ + free -= global_page_state(NR_SHMEM); + free += nr_swap_pages; /* -- 1.6.0.4 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>