mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
vmscan: report vm_flags in page_referenced()
Collect vma->vm_flags of the VMAs that actually referenced the page. This is preparing for more informed reclaim heuristics, eg. to protect executable file pages more aggressively. For now only the VM_EXEC bit will be used by the caller. Thanks to Johannes, Peter and Minchan for all the good tips. Acked-by: Peter Zijlstra <peterz@infradead.org> Reviewed-by: Rik van Riel <riel@redhat.com> Reviewed-by: Minchan Kim <minchan.kim@gmail.com> Reviewed-by: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
608e8e66a1
commit
6fe6b7e357
3 changed files with 34 additions and 15 deletions
|
@ -83,7 +83,8 @@ static inline void page_dup_rmap(struct page *page, struct vm_area_struct *vma,
|
|||
/*
|
||||
* Called from mm/vmscan.c to handle paging out
|
||||
*/
|
||||
int page_referenced(struct page *, int is_locked, struct mem_cgroup *cnt);
|
||||
int page_referenced(struct page *, int is_locked,
|
||||
struct mem_cgroup *cnt, unsigned long *vm_flags);
|
||||
int try_to_unmap(struct page *, int ignore_refs);
|
||||
|
||||
/*
|
||||
|
@ -117,7 +118,7 @@ int try_to_munlock(struct page *);
|
|||
#define anon_vma_prepare(vma) (0)
|
||||
#define anon_vma_link(vma) do {} while (0)
|
||||
|
||||
#define page_referenced(page,l,cnt) TestClearPageReferenced(page)
|
||||
#define page_referenced(page, locked, cnt, flags) TestClearPageReferenced(page)
|
||||
#define try_to_unmap(page, refs) SWAP_FAIL
|
||||
|
||||
static inline int page_mkclean(struct page *page)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue