diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2018-05-08 13:45:55 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-05-08 13:45:55 -0700 |
commit | 60fd11477701b7cd1126605fdfcaa63b0014edc2 (patch) | |
tree | b1c611942ae68b08dbcc3c39a1504901d45ee01a | |
parent | d822f25d6dd3f06b2568245150b8d300ae7881aa (diff) | |
parent | d97c09c1531f4a6c427a33f6d6bf83d1cc1f8098 (diff) |
Merge "mm: treat indirectly reclaimable memory as free in overcommit logic"
-rw-r--r-- | mm/mmap.c | 7 | ||||
-rw-r--r-- | mm/nommu.c | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/mm/mmap.c b/mm/mmap.c index 2339b533f4b2..5457c5f4935b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -206,6 +206,13 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) free += global_page_state(NR_SLAB_RECLAIMABLE); /* + * Part of the kernel memory, which can be released + * under memory pressure. + */ + free += global_page_state( + NR_INDIRECTLY_RECLAIMABLE_BYTES) >> PAGE_SHIFT; + + /* * Leave reserved pages. The pages are not for anonymous pages. */ if (free <= totalreserve_pages) diff --git a/mm/nommu.c b/mm/nommu.c index 92be862c859b..8d75e425c21c 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -1880,6 +1880,13 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) free += global_page_state(NR_SLAB_RECLAIMABLE); /* + * Part of the kernel memory, which can be released + * under memory pressure. + */ + free += global_page_state( + NR_INDIRECTLY_RECLAIMABLE_BYTES) >> PAGE_SHIFT; + + /* * Leave reserved pages. The pages are not for anonymous pages. */ if (free <= totalreserve_pages) |