From 34e3bd1772664d953aa9ecbc1214fa2f6ed8b997 Mon Sep 17 00:00:00 2001 From: Vinayak Menon Date: Mon, 13 Jul 2015 13:24:55 +0530 Subject: [PATCH] ANDROID: GKI: 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. Bug: 151963988 Test: build Signed-off-by: Vinayak Menon Signed-off-by: Charan Teja Reddy (cherry picked from commit f15713432cbe85742b1ffc9db00ace1b2d6acd80) [surenb: cherry-picked to resolve ABI diffs caused by vm_event_item enum] Signed-off-by: Suren Baghdasaryan Change-Id: I113cfce495b5b70f0cef88c8425c7252e01291fe --- 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 8958827baa49..83ecc8762747 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -22,7 +22,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), FOR_ALL_ZONES(ALLOCSTALL), FOR_ALL_ZONES(PGSCAN_SKIP), diff --git a/mm/filemap.c b/mm/filemap.c index b464f9589ba5..aea71dc89dcd 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -194,10 +194,12 @@ static void unaccount_page_cache_page(struct address_space *mapping, * 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); + } VM_BUG_ON_PAGE(PageTail(page), page); VM_BUG_ON_PAGE(page_mapped(page), page); diff --git a/mm/vmstat.c b/mm/vmstat.c index 3ce0b102dc43..544c5213aca2 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1176,6 +1176,7 @@ const char * const vmstat_text[] = { /* enum vm_event_item counters */ "pgpgin", "pgpgout", + "pgpgoutclean", "pswpin", "pswpout",