Messages in this thread Patch in this message | | | Subject | Re: [PATCH] mm/vmscan: Do not block forever atshrink_inactive_list(). | From | Tetsuo Handa <> | Date | Mon, 26 May 2014 20:45:11 +0900 |
| |
Tetsuo Handa wrote: > Dave, if you are OK with this updated patch, please let me know commit ID of your patch.
I overlooked that too_many_isolated() in mm/vmscan.c already has
if (current_is_kswapd()) return 0;
lines. Therefore, it turned out that my patch is irrelevant to XFS issue. Does patch shown below make sense?
Regards. ---------- >From e133aadd65df3d8622efced3443888ed3e60327b Mon Sep 17 00:00:00 2001 From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Date: Mon, 26 May 2014 20:37:12 +0900 Subject: [PATCH] mm/vmscan: Do not throttle when hibernation_mode != 0.
In shrink_inactive_list(), we do not insert delay at
if (!sc->hibernation_mode && !current_is_kswapd()) wait_iff_congested(zone, BLK_RW_ASYNC, HZ/10);
if sc->hibernation_mode != 0. Follow the same reason, we should not insert delay at
while (unlikely(too_many_isolated(zone, file, sc))) { congestion_wait(BLK_RW_ASYNC, HZ/10);
/* We are about to die and free our memory. Return now. */ if (fatal_signal_pending(current)) return SWAP_CLUSTER_MAX; }
if sc->hibernation_mode != 0.
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> --- mm/vmscan.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/mm/vmscan.c b/mm/vmscan.c index 32c661d..89c42ca 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1362,6 +1362,9 @@ static int too_many_isolated(struct zone *zone, int file, if (current_is_kswapd()) return 0; + if (sc->hibernation_mode) + return 0; + if (!global_reclaim(sc)) return 0; -- 1.7.1
| |