diff options
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r-- | mm/vmscan.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index dafb9d91b604..388a0447b8e8 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -2244,8 +2244,16 @@ static bool sleeping_prematurely(pg_data_t *pgdat, int order, long remaining) | |||
2244 | if (!populated_zone(zone)) | 2244 | if (!populated_zone(zone)) |
2245 | continue; | 2245 | continue; |
2246 | 2246 | ||
2247 | if (zone->all_unreclaimable) | 2247 | /* |
2248 | * balance_pgdat() skips over all_unreclaimable after | ||
2249 | * DEF_PRIORITY. Effectively, it considers them balanced so | ||
2250 | * they must be considered balanced here as well if kswapd | ||
2251 | * is to sleep | ||
2252 | */ | ||
2253 | if (zone->all_unreclaimable) { | ||
2254 | balanced += zone->present_pages; | ||
2248 | continue; | 2255 | continue; |
2256 | } | ||
2249 | 2257 | ||
2250 | if (!zone_watermark_ok_safe(zone, order, high_wmark_pages(zone), | 2258 | if (!zone_watermark_ok_safe(zone, order, high_wmark_pages(zone), |
2251 | 0, 0)) | 2259 | 0, 0)) |