--- from-0002/include/linux/mmzone.h +++ to-work/include/linux/mmzone.h 2005-10-24 10:43:13.000000000 +0900 @@ -151,6 +151,7 @@ struct zone { unsigned long nr_active; unsigned long nr_inactive; unsigned long pages_scanned; /* since last reclaim */ + unsigned long pages_scanned_total; int all_unreclaimable; /* All pages pinned */ /* --- from-0002/mm/page_alloc.c +++ to-work/mm/page_alloc.c 2005-10-24 10:51:05.000000000 +0900 @@ -2101,6 +2101,7 @@ static int zoneinfo_show(struct seq_file "\n active %lu" "\n inactive %lu" "\n scanned %lu (a: %lu i: %lu)" + "\n tscanned %lu" "\n spanned %lu" "\n present %lu", zone->free_pages, @@ -2111,6 +2112,7 @@ static int zoneinfo_show(struct seq_file zone->nr_inactive, zone->pages_scanned, zone->nr_scan_active, zone->nr_scan_inactive, + zone->pages_scanned_total, zone->spanned_pages, zone->present_pages); seq_printf(m, --- from-0002/mm/vmscan.c +++ to-work/mm/vmscan.c 2005-10-24 10:44:09.000000000 +0900 @@ -633,6 +633,7 @@ static void shrink_cache(struct zone *zo &page_list, &nr_scan); zone->nr_inactive -= nr_taken; zone->pages_scanned += nr_scan; + zone->pages_scanned_total += nr_scan; spin_unlock_irq(&zone->lru_lock); if (nr_taken == 0) @@ -713,6 +714,7 @@ refill_inactive_zone(struct zone *zone, pgmoved = isolate_lru_pages(nr_pages, &zone->active_list, &l_hold, &pgscanned); zone->pages_scanned += pgscanned; + zone->pages_scanned_total += pgscanned; zone->nr_active -= pgmoved; spin_unlock_irq(&zone->lru_lock);