From: Lee Schermerhorn Fix to shm_locked-pages-are-unevictable.patch More breaking up of the single unevictable lru/mlocked pages vm events patch. Add the vm events counting to the unevictable lru list scanning for shm_unlock(). Signed-off-by: Lee Schermerhorn Cc: Lee Schermerhorn Cc: Rik van Riel Reviewed-by: Kosaki Motohiro Cc: KAMEZAWA Hiroyuki Signed-off-by: Andrew Morton --- mm/vmscan.c | 5 +++++ 1 file changed, 5 insertions(+) diff -puN mm/vmscan.c~shm_locked-pages-are-unevictable-add-event-counts-to-list-scan mm/vmscan.c --- a/mm/vmscan.c~shm_locked-pages-are-unevictable-add-event-counts-to-list-scan +++ a/mm/vmscan.c @@ -2458,6 +2458,7 @@ retry: __dec_zone_state(zone, NR_UNEVICTABLE); list_move(&page->lru, &zone->lru[l].list); __inc_zone_state(zone, NR_INACTIVE_ANON + l); + __count_vm_event(UNEVICTABLE_PGRESCUED); } else { /* * rotate unevictable list @@ -2491,6 +2492,7 @@ void scan_mapping_unevictable_pages(stru while (next < end && pagevec_lookup(&pvec, mapping, next, PAGEVEC_SIZE)) { int i; + int pg_scanned = 0; zone = NULL; @@ -2499,6 +2501,7 @@ void scan_mapping_unevictable_pages(stru pgoff_t page_index = page->index; struct zone *pagezone = page_zone(page); + pg_scanned++; if (page_index > next) next = page_index; next++; @@ -2516,6 +2519,8 @@ void scan_mapping_unevictable_pages(stru if (zone) spin_unlock_irq(&zone->lru_lock); pagevec_release(&pvec); + + count_vm_events(UNEVICTABLE_PGSCANNED, pg_scanned); } } _