Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp1272006imm; Tue, 3 Jul 2018 08:19:25 -0700 (PDT) X-Google-Smtp-Source: ADUXVKL6XfOt+ix4wlr3RqCFVfs1nK/X7N81Z8RSwIecE0/Jly/lsSNPkEJl54M9evmUAh+F1+ya X-Received: by 2002:a63:9b19:: with SMTP id r25-v6mr25153768pgd.197.1530631165785; Tue, 03 Jul 2018 08:19:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530631165; cv=none; d=google.com; s=arc-20160816; b=tieX1HXU3ijajo6uX1a+WRZEEL66QKZsCz5Skz0nMUEMs5fylFW9kjSBMsauQNFdBL pyJNqNujhNOcA2qJxIuvbmdM5O7YepmDPDwSS0796iECFFWeCDUt463UDpH0hy38eoz1 MkhIFoL4unPqbYYqtnhWMp1iDcaSk5WBkpqr/3vIOJKWHWNL71Yti4AJjHXLgAepNnDZ Z0h28FmWLYLeGYfrNvhkrJAMukRloqnrWB9G94dxbWuhQsXv7GyeE+SUsIa0tPVSmlcg WD3wfX+q4bTvPrCx1MFhpuJRA6uzHNWVzoXUct3JYsJ1O66KhS/dntbi9q2pcoHItDrk QqdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=yAOvev/teZ5lXIBJGd21BS6gvQRoa6lUzarUFbC3suM=; b=Y3FdMxU8QRjNj1SGdqjAkwtS7gQu5PztujfbFOiXkLqFoMWF+tQ3Hz47xMKegoPmL/ WM6tFaPwpAWpFwuGXvric3v1tjMZvWbgUJMO/TxbCbfeTArilfweXngv9DiWMllA6CLG 9hVhcr4C+fu6K0m5NxU8+nOWyz+LwVKEG718UpxalJZgOwDdfgXlvZ3hzXfMlG+YMdNH ePsgmX2NiPHfqWKm/Z862cw1r97tHK5EQnVW7PhNpQNPTNyQYhC/F+cRn9fMw/EKiLSP IXAkV/2bX0q/2sC/WQkSDu+wV7kPN4T6t4Dh+l4ZeFoSDdZeizjGUO9a/dqMK/btfz2T xm8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@toxicpanda-com.20150623.gappssmtp.com header.s=20150623 header.b="dk5TjK/O"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q1-v6si1159797pgv.652.2018.07.03.08.19.10; Tue, 03 Jul 2018 08:19:25 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@toxicpanda-com.20150623.gappssmtp.com header.s=20150623 header.b="dk5TjK/O"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933956AbeGCPP6 (ORCPT + 99 others); Tue, 3 Jul 2018 11:15:58 -0400 Received: from mail-qt0-f195.google.com ([209.85.216.195]:37075 "EHLO mail-qt0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933677AbeGCPPa (ORCPT ); Tue, 3 Jul 2018 11:15:30 -0400 Received: by mail-qt0-f195.google.com with SMTP id a18-v6so1868714qtj.4 for ; Tue, 03 Jul 2018 08:15:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=yAOvev/teZ5lXIBJGd21BS6gvQRoa6lUzarUFbC3suM=; b=dk5TjK/OCGk+DthILXggq/KPLMq8M8T/9LBB/hysxl6G3j6OKpcECLEVlLxR3U2Kat ZU1qCtwmTt6YhI7AyaFWVNCHRN1bw5OOIIsbp/ZjnE6uKoqx5KcDkwPrZ+cwb2dri/AD V6/TC32apQf4kM5kYIN0UkZN587YyDI8ocMnfo8qATyXRuQenYaDOO+9r7dGsNVce5xA L4gNvxrQDD0VkZ4YY/DZ4fROV2UAyhyUUMZYebtVCiGUr9dC54unfAtCLIfrDJQxNwtQ bImG2d5cBqqYMtLWc83oCnlbvxR8oJBIPY1Np6MZf5IXCg8sl/Ympq4JOprN7qTUvHRs vcKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yAOvev/teZ5lXIBJGd21BS6gvQRoa6lUzarUFbC3suM=; b=MvSejQcLyQid/FTU3RpXSnBSZW9MnqmL7OTepZliaf9ICbKpCnnTh7jKcbvH9HxejN sXamnT+SpEz9dtUduZbM1taB6C6/aVErie1q00kKyvdqndbwirlZaYRI8tpvOz8lq3vP WvOp579WDeOyqHUuXpcY2VIKhPMfersFYTSe/rPJYgs646lT+Omh98AGSYjPDvooqoMO SRR5lq1jrYgxz0AlV3LI1ESwx7F3ySIcuRhn8Se9jqQ+pglyAeSLS22F3JcDwufihqFR hhpybYx/Kh9/tYweDCrxaZ0P3kicifeDMcMmuyR+ynVYpRgEqv5MLSF72to/s9HWX/ri qVWw== X-Gm-Message-State: APt69E3g5zvESUpsHzXRom4pmRISePL3S9pJum72m/mTqjE0ODTSObi5 djfXd/yKYr6fYjXyvfeMHG9COQrS/Rs= X-Received: by 2002:a0c:b39b:: with SMTP id t27-v6mr27046561qve.144.1530630929494; Tue, 03 Jul 2018 08:15:29 -0700 (PDT) Received: from localhost ([107.15.81.208]) by smtp.gmail.com with ESMTPSA id u27-v6sm916782qkl.66.2018.07.03.08.15.28 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 03 Jul 2018 08:15:28 -0700 (PDT) From: Josef Bacik To: axboe@kernel.dk, linux-kernel@vger.kernel.org, akpm@linux-foundation.org, hannes@cmpxchg.org, tj@kernel.org, linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, kernel-team@fb.com Cc: Josef Bacik Subject: [PATCH 14/14] skip readahead if the cgroup is congested Date: Tue, 3 Jul 2018 11:15:03 -0400 Message-Id: <20180703151503.2549-15-josef@toxicpanda.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180703151503.2549-1-josef@toxicpanda.com> References: <20180703151503.2549-1-josef@toxicpanda.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Josef Bacik We noticed in testing we'd get pretty bad latency stalls under heavy pressure because read ahead would try to do its thing while the cgroup was under severe pressure. If we're under this much pressure we want to do as little IO as possible so we can still make progress on real work if we're a throttled cgroup, so just skip readahead if our group is under pressure. Signed-off-by: Josef Bacik Acked-by: Tejun Heo Acked-by: Andrew Morton --- mm/readahead.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mm/readahead.c b/mm/readahead.c index e273f0de3376..9f62b7151100 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "internal.h" @@ -505,6 +506,9 @@ void page_cache_sync_readahead(struct address_space *mapping, if (!ra->ra_pages) return; + if (blk_cgroup_congested()) + return; + /* be dumb */ if (filp && (filp->f_mode & FMODE_RANDOM)) { force_page_cache_readahead(mapping, filp, offset, req_size); @@ -555,6 +559,9 @@ page_cache_async_readahead(struct address_space *mapping, if (inode_read_congested(mapping->host)) return; + if (blk_cgroup_congested()) + return; + /* do read-ahead */ ondemand_readahead(mapping, ra, filp, true, offset, req_size); } -- 2.14.3