Re: [PATCH 2/5] vmscan: sleep only if backingdev is congested

From: Rik van Riel
Date: Sat Aug 25 2012 - 19:03:51 EST


On 08/22/2012 03:15 AM, Minchan Kim wrote:

+++ b/mm/vmscan.c
@@ -2705,8 +2705,16 @@ loop_again:
if (total_scanned && (sc.priority < DEF_PRIORITY - 2)) {
if (has_under_min_watermark_zone)
count_vm_event(KSWAPD_SKIP_CONGESTION_WAIT);
- else
- congestion_wait(BLK_RW_ASYNC, HZ/10);
+ else {
+ for (i = 0; i <= end_zone; i++) {
+ struct zone *zone = pgdat->node_zones
+ + i;
+ if (!populated_zone(zone))
+ continue;
+ wait_iff_congested(zone, BLK_RW_ASYNC,
+ HZ/10);
+ }
+ }
}

Do we really want to wait on every zone?

That could increase the sleep time by a factor 3.

--
All rights reversed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/