mirror of https://gitee.com/openkylin/linux.git
mm: filter unevictable page out in deactivate_page()
It's pointless that deactive_page's operates on unevictable pages. This patch removes unnecessary overhead which might be a bit problem in case that there are many unevictable page in system(ex, mprotect workload) [akpm@linux-foundation.org: tidy up comment] Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: Minchan Kim <minchan.kim@gmail.com> Reviewed-by: Rik van Riel<riel@redhat.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
2cbea1d3ab
commit
821ed6bbed
|
@ -476,6 +476,13 @@ static void drain_cpu_pagevecs(int cpu)
|
|||
*/
|
||||
void deactivate_page(struct page *page)
|
||||
{
|
||||
/*
|
||||
* In a workload with many unevictable page such as mprotect, unevictable
|
||||
* page deactivation for accelerating reclaim is pointless.
|
||||
*/
|
||||
if (PageUnevictable(page))
|
||||
return;
|
||||
|
||||
if (likely(get_page_unless_zero(page))) {
|
||||
struct pagevec *pvec = &get_cpu_var(lru_deactivate_pvecs);
|
||||
|
||||
|
|
Loading…
Reference in New Issue