From patchwork Thu Jan 4 11:06:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Qi X-Patchwork-Id: 10144469 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C35FF60594 for ; Thu, 4 Jan 2018 11:07:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A304E2811A for ; Thu, 4 Jan 2018 11:07:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 97E652846F; Thu, 4 Jan 2018 11:07:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 14A0A2811A for ; Thu, 4 Jan 2018 11:07:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752662AbeADLHD (ORCPT ); Thu, 4 Jan 2018 06:07:03 -0500 Received: from mail-oi0-f65.google.com ([209.85.218.65]:39076 "EHLO mail-oi0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752605AbeADLHC (ORCPT ); Thu, 4 Jan 2018 06:07:02 -0500 Received: by mail-oi0-f65.google.com with SMTP id r63so794906oia.6 for ; Thu, 04 Jan 2018 03:07:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:cc:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=mK49FjUJZvhFzSU3wq6dXEgvcdvx13hDIIOuWWDROvM=; b=bFgmn+9Y66nXGFcVHywALZfTGNE/ATRmCF93xfLVZbfp+RSs2mMJNtWhSFoe/Zb4gh QCZF5K0ymSST+dSgoDUc+clpx3plBekknXmuFJaezTmRQMzIE/SmWbx2jHmzy9dzCnhK 0lofaeUb0Yn7pUTSmGjiMKaN+J2LSmEGsaI4d8kYBcy5a/KRPbXrUH9GSNhznDHl7EGV oVwBjHIBrfFJyrqGOHfd2d3aIrqqCTwdXgfGtRyLft71B5+9nEHzKkSrPs9EM+rKcLoa uPdk6n/AQlzcXEVtxHsgzJcesqr79b8xG3/4ylOj40uJFkMWSgMl6oEIUe9qiOkxDA83 U5ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=mK49FjUJZvhFzSU3wq6dXEgvcdvx13hDIIOuWWDROvM=; b=h0Gy+AKB3ZQ9Jt5bn58wDezf1u26oMreVGKLx9NYoSsc94X2U4/vFmcKBH8zKWv4d0 QPzrRn4bmfP0UY/pLm8nN816VbWmAkayetiGzfspql1St9NWcThkpp1GghsjHVf7BIZE OQGvQMDfX9v+7VA+65pnkQtLPQzfE3D+3z46iqY2kSZlWXPv4r/Z0VXqWi5ttuqLpz60 IVcGbWicFo/hHLB8top8bwagwmTpPf53DW5l3pPZztT85nV05PrgbIyFB3WVHic0V+Cp bvhq19+eOk4j6GkM8bNMKUyUSVA6bzcSbfKkNoZu/rl2EKKNSopflnec+SI3fVm183wI BmfQ== X-Gm-Message-State: AKGB3mKYgsLhAsfDFmKfeoJstCIbJigFjI/KYczTaaTzN2HU2vBPAodM PgEuxdp4FupXzj33kUZqVLg/Aw3u X-Google-Smtp-Source: ACJfBouRAkeyJnIANHuH4E+84cRnNcRjmbOSqrp2V4BQgonh+OxV6j8SnFAI1UQCVnFDDtIgjg6DdA== X-Received: by 10.202.117.207 with SMTP id q198mr2327131oic.217.1515064022224; Thu, 04 Jan 2018 03:07:02 -0800 (PST) Received: from JosephdeMacBook-Pro.local ([205.204.117.3]) by smtp.gmail.com with ESMTPSA id q12sm1394203otg.31.2018.01.04.03.06.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Jan 2018 03:07:01 -0800 (PST) From: Joseph Qi Subject: [PATCH 2/3] blk-throttle: support only configure leaf nodes To: Jens Axboe , Shaohua Li Cc: jinli.zjl@alibaba-inc.com, qijiang.qj@alibaba-inc.com, linux-block Message-ID: Date: Thu, 4 Jan 2018 19:06:46 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 Content-Language: en-US Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Joseph Qi Currently if we only configure leaf nodes, downgrade check won't function properly as parent's last low overflow time is meaningless and always returns now, thus it will be treated always run above low limit and doesn't have to do downgrade. In this case, since parent doesn't have low limit, ignore checking it and just depend on child's decision. Note that we do not support only configure intermediate nodes. Signed-off-by: Joseph Qi --- block/blk-throttle.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index a0bae2c..9c0b5ff 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -1959,6 +1959,15 @@ static bool throtl_tg_can_downgrade(struct throtl_grp *tg) unsigned long now = jiffies; /* + * If parent doesn't have low limit, only consider child's + * decision. + */ + if (!list_empty(&tg_to_blkg(tg)->blkcg->css.children) && + !tg->bps[READ][LIMIT_LOW] && !tg->bps[WRITE][LIMIT_LOW] && + !tg->iops[READ][LIMIT_LOW] && !tg->iops[WRITE][LIMIT_LOW]) + return true; + + /* * If cgroup is below low limit, consider downgrade and throttle other * cgroups */