|
@@ -214,15 +214,16 @@ static void acct_isolated(struct zone *zone, struct compact_control *cc)
|
|
|
/* Similar to reclaim, but different enough that they don't share logic */
|
|
|
static bool too_many_isolated(struct zone *zone)
|
|
|
{
|
|
|
-
|
|
|
- unsigned long inactive, isolated;
|
|
|
+ unsigned long active, inactive, isolated;
|
|
|
|
|
|
inactive = zone_page_state(zone, NR_INACTIVE_FILE) +
|
|
|
zone_page_state(zone, NR_INACTIVE_ANON);
|
|
|
+ active = zone_page_state(zone, NR_ACTIVE_FILE) +
|
|
|
+ zone_page_state(zone, NR_ACTIVE_ANON);
|
|
|
isolated = zone_page_state(zone, NR_ISOLATED_FILE) +
|
|
|
zone_page_state(zone, NR_ISOLATED_ANON);
|
|
|
|
|
|
- return isolated > inactive;
|
|
|
+ return isolated > (inactive + active) / 2;
|
|
|
}
|
|
|
|
|
|
/*
|