mm: implement page cache limit feature
Subsystems (5)
PATCH 3/8 mm: implement page cache limit feature
Add hooks when a page is added to page cache.
Signed-off-by Xishi Qiu <[email protected]>
--- mm/filemap.c | 3 +++ mm/hugetlb.c | 3 +++ mm/vmscan.c | 3 +++ 3 files changed, 9 insertions(+), 0 deletions(-)
mm/filemap.c +3 -0
@@ -622,6 +622,9 @@ int add_to_page_cache_lru(struct page *page, struct address_space *mapping,void *shadow =NULL ;int ret; +if (vm_cache_limit_mbytes &&page_cache_over_limit ()) +shrink_page_cache (gfp_mask); +__set_page_locked (page); ret =__add_to_page_cache_locked (page, mapping, offset, gfp_mask, &shadow);
mm/hugetlb.c +3 -0
@@ -2851,6 +2851,9 @@ retry:int err;struct inode *inode = mapping->host; +if (vm_cache_limit_mbytes &&page_cache_over_limit ()) +shrink_page_cache (GFP_KERNEL ); + err =add_to_page_cache (page, mapping, idx,GFP_KERNEL );if (err) {put_page (page);
mm/vmscan.c +3 -0
@@ -2977,6 +2977,9 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order, };count_vm_event (PAGEOUTRUN ); +if (vm_cache_limit_mbytes &&page_cache_over_limit ()) +shrink_page_cache (GFP_KERNEL ); + do { unsigned long lru_pages = 0; unsigned long nr_attempted = 0;
Signature · 1 line
1.6.0.2