diff options
-rw-r--r-- | include/linux/vmstat.h | 5 | ||||
-rw-r--r-- | mm/vmscan.c | 6 | ||||
-rw-r--r-- | mm/vmstat.c | 5 |
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 | ||