From e74a8a432ef2193d83f3dcea5bef9d02ca3b0999 Mon Sep 17 00:00:00 2001 From: Vinayak Menon Date: Mon, 13 Jul 2015 13:24:55 +0530 Subject: [PATCH] mm: vmstat: add pageoutclean vmstat events currently count pgpgout, but that includes only the writebacks, and not the reclaim of clean pages. Add an event to count clean page evictions. This is helpful to evaluate page thrashing cases. Change-Id: Icfb797877a544a58c289074bdc290dfbc1384514 Signed-off-by: Vinayak Menon --- include/linux/vm_event_item.h | 2 +- mm/filemap.c | 6 ++++-- mm/vmstat.c | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index e623d392db0c..2a03a062a395 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -21,7 +21,7 @@ #define FOR_ALL_ZONES(xx) DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, HIGHMEM_ZONE(xx) xx##_MOVABLE -enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, +enum vm_event_item { PGPGIN, PGPGOUT, PGPGOUTCLEAN, PSWPIN, PSWPOUT, FOR_ALL_ZONES(PGALLOC), PGFREE, PGACTIVATE, PGDEACTIVATE, PGFAULT, PGMAJFAULT, diff --git a/mm/filemap.c b/mm/filemap.c index 1bb007624b53..a322c035c6b9 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -189,10 +189,12 @@ void __delete_from_page_cache(struct page *page, void *shadow, * invalidate any existing cleancache entries. We can't leave * stale data around in the cleancache once our page is gone */ - if (PageUptodate(page) && PageMappedToDisk(page)) + if (PageUptodate(page) && PageMappedToDisk(page)) { + count_vm_event(PGPGOUTCLEAN); cleancache_put_page(page); - else + } else { cleancache_invalidate_page(mapping, page); + } page_cache_tree_delete(mapping, page, shadow); diff --git a/mm/vmstat.c b/mm/vmstat.c index cfff11b1a75d..4923dfe89983 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -772,6 +772,7 @@ const char * const vmstat_text[] = { /* enum vm_event_item counters */ "pgpgin", "pgpgout", + "pgpgoutclean", "pswpin", "pswpout",