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 | ||
