aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/vmstat.h5
-rw-r--r--mm/vmscan.c6
-rw-r--r--mm/vmstat.c5
3 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
index ff5179f2b153..135840cd7feb 100644
--- a/include/linux/vmstat.h
+++ b/include/linux/vmstat.h
@@ -41,6 +41,11 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
41#ifdef CONFIG_HUGETLB_PAGE 41#ifdef CONFIG_HUGETLB_PAGE
42 HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL, 42 HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL,
43#endif 43#endif
44#ifdef CONFIG_UNEVICTABLE_LRU
45 UNEVICTABLE_PGCULLED, /* culled to noreclaim list */
46 UNEVICTABLE_PGSCANNED, /* scanned for reclaimability */
47 UNEVICTABLE_PGRESCUED, /* rescued from noreclaim list */
48#endif
44 NR_VM_EVENT_ITEMS 49 NR_VM_EVENT_ITEMS
45}; 50};
46 51
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 154b9b608da6..2804d23e2da7 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -484,6 +484,7 @@ void putback_lru_page(struct page *page)
484{ 484{
485 int lru; 485 int lru;
486 int active = !!TestClearPageActive(page); 486 int active = !!TestClearPageActive(page);
487 int was_unevictable = PageUnevictable(page);
487 488
488 VM_BUG_ON(PageLRU(page)); 489 VM_BUG_ON(PageLRU(page));
489 490
@@ -525,6 +526,11 @@ redo:
525 */ 526 */
526 } 527 }
527 528
529 if (was_unevictable && lru != LRU_UNEVICTABLE)
530 count_vm_event(UNEVICTABLE_PGRESCUED);
531 else if (!was_unevictable && lru == LRU_UNEVICTABLE)
532 count_vm_event(UNEVICTABLE_PGCULLED);
533
528 put_page(page); /* drop ref from isolate */ 534 put_page(page); /* drop ref from isolate */
529} 535}
530 536
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 4380b0dba6d9..6cb08cdd4f03 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -677,6 +677,11 @@ static const char * const vmstat_text[] = {
677 "htlb_buddy_alloc_success", 677 "htlb_buddy_alloc_success",
678 "htlb_buddy_alloc_fail", 678 "htlb_buddy_alloc_fail",
679#endif 679#endif
680#ifdef CONFIG_UNEVICTABLE_LRU
681 "unevictable_pgs_culled",
682 "unevictable_pgs_scanned",
683 "unevictable_pgs_rescued",
684#endif
680#endif 685#endif
681}; 686};
682 687