|
@@ -35,10 +35,6 @@ struct compact_control {
|
|
|
unsigned long migrate_pfn; /* isolate_migratepages search base */
|
|
|
bool sync; /* Synchronous migration */
|
|
|
|
|
|
- /* Account for isolated anon and file pages */
|
|
|
- unsigned long nr_anon;
|
|
|
- unsigned long nr_file;
|
|
|
-
|
|
|
unsigned int order; /* order a direct compactor needs */
|
|
|
int migratetype; /* MOVABLE, RECLAIMABLE etc */
|
|
|
struct zone *zone;
|
|
@@ -223,17 +219,13 @@ static void isolate_freepages(struct zone *zone,
|
|
|
static void acct_isolated(struct zone *zone, struct compact_control *cc)
|
|
|
{
|
|
|
struct page *page;
|
|
|
- unsigned int count[NR_LRU_LISTS] = { 0, };
|
|
|
+ unsigned int count[2] = { 0, };
|
|
|
|
|
|
- list_for_each_entry(page, &cc->migratepages, lru) {
|
|
|
- int lru = page_lru_base_type(page);
|
|
|
- count[lru]++;
|
|
|
- }
|
|
|
+ list_for_each_entry(page, &cc->migratepages, lru)
|
|
|
+ count[!!page_is_file_cache(page)]++;
|
|
|
|
|
|
- cc->nr_anon = count[LRU_ACTIVE_ANON] + count[LRU_INACTIVE_ANON];
|
|
|
- cc->nr_file = count[LRU_ACTIVE_FILE] + count[LRU_INACTIVE_FILE];
|
|
|
- __mod_zone_page_state(zone, NR_ISOLATED_ANON, cc->nr_anon);
|
|
|
- __mod_zone_page_state(zone, NR_ISOLATED_FILE, cc->nr_file);
|
|
|
+ __mod_zone_page_state(zone, NR_ISOLATED_ANON, count[0]);
|
|
|
+ __mod_zone_page_state(zone, NR_ISOLATED_FILE, count[1]);
|
|
|
}
|
|
|
|
|
|
/* Similar to reclaim, but different enough that they don't share logic */
|