|
@@ -174,7 +174,8 @@ static unsigned long zone_reclaimable_pages(struct zone *zone)
|
|
|
|
|
|
bool zone_reclaimable(struct zone *zone)
|
|
bool zone_reclaimable(struct zone *zone)
|
|
{
|
|
{
|
|
- return zone->pages_scanned < zone_reclaimable_pages(zone) * 6;
|
|
|
|
|
|
+ return zone_page_state(zone, NR_PAGES_SCANNED) <
|
|
|
|
+ zone_reclaimable_pages(zone) * 6;
|
|
}
|
|
}
|
|
|
|
|
|
static unsigned long get_lru_size(struct lruvec *lruvec, enum lru_list lru)
|
|
static unsigned long get_lru_size(struct lruvec *lruvec, enum lru_list lru)
|
|
@@ -1508,7 +1509,7 @@ shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec,
|
|
__mod_zone_page_state(zone, NR_ISOLATED_ANON + file, nr_taken);
|
|
__mod_zone_page_state(zone, NR_ISOLATED_ANON + file, nr_taken);
|
|
|
|
|
|
if (global_reclaim(sc)) {
|
|
if (global_reclaim(sc)) {
|
|
- zone->pages_scanned += nr_scanned;
|
|
|
|
|
|
+ __mod_zone_page_state(zone, NR_PAGES_SCANNED, nr_scanned);
|
|
if (current_is_kswapd())
|
|
if (current_is_kswapd())
|
|
__count_zone_vm_events(PGSCAN_KSWAPD, zone, nr_scanned);
|
|
__count_zone_vm_events(PGSCAN_KSWAPD, zone, nr_scanned);
|
|
else
|
|
else
|
|
@@ -1698,7 +1699,7 @@ static void shrink_active_list(unsigned long nr_to_scan,
|
|
nr_taken = isolate_lru_pages(nr_to_scan, lruvec, &l_hold,
|
|
nr_taken = isolate_lru_pages(nr_to_scan, lruvec, &l_hold,
|
|
&nr_scanned, sc, isolate_mode, lru);
|
|
&nr_scanned, sc, isolate_mode, lru);
|
|
if (global_reclaim(sc))
|
|
if (global_reclaim(sc))
|
|
- zone->pages_scanned += nr_scanned;
|
|
|
|
|
|
+ __mod_zone_page_state(zone, NR_PAGES_SCANNED, nr_scanned);
|
|
|
|
|
|
reclaim_stat->recent_scanned[file] += nr_taken;
|
|
reclaim_stat->recent_scanned[file] += nr_taken;
|
|
|
|
|