[Devel] [PATCH RHEL7 COMMIT] mm/vmscan: call wait_iff_congested() only if we have troubles in recaliming

Konstantin Khorenko khorenko at virtuozzo.com
Wed Jan 31 18:29:34 MSK 2018


The commit is pushed to "branch-rh7-3.10.0-693.11.6.vz7.42.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-693.11.6.vz7.42.4
------>
commit 2895afbad160712b498bce58b1284a2197edb752
Author: Andrey Ryabinin <aryabinin at virtuozzo.com>
Date:   Wed Jan 31 18:29:34 2018 +0300

    mm/vmscan: call wait_iff_congested() only if we have troubles in recaliming
    
    Even if zone congested it might be better to continue reclaim as we
    may allocate memory from another zone. So call in wait_iff_congested()
    only if we have troubles in reclaiming memory.
    
    https://jira.sw.ru/browse/PSBM-61409
    Signed-off-by: Andrey Ryabinin <aryabinin at virtuozzo.com>
---
 mm/vmscan.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index d71fa15a1750..4922f734cdb4 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2481,7 +2481,8 @@ static void shrink_zone(struct zone *zone, struct scan_control *sc,
 		 * is congested. Allow kswapd to continue until it starts encountering
 		 * unqueued dirty pages or cycling through the LRU too quickly.
 		 */
-		if (!sc->hibernation_mode && !current_is_kswapd())
+		if (sc->priority < (DEF_PRIORITY - 2) && !sc->hibernation_mode &&
+		    !current_is_kswapd())
 			wait_iff_congested(zone, BLK_RW_ASYNC, HZ/10);
 
 		if (reclaim_state) {


More information about the Devel mailing list