From patchwork Thu Dec 15 20:32:55 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shaohua Li X-Patchwork-Id: 9476877 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 C35566047D for ; Thu, 15 Dec 2016 20:33:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B66B2287C6 for ; Thu, 15 Dec 2016 20:33:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A8D2F28851; Thu, 15 Dec 2016 20:33:19 +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=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID 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 1268A2884F for ; Thu, 15 Dec 2016 20:33:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756311AbcLOUdN (ORCPT ); Thu, 15 Dec 2016 15:33:13 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:57243 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756214AbcLOUdK (ORCPT ); Thu, 15 Dec 2016 15:33:10 -0500 Received: from pps.filterd (m0044010.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id uBFKUZH2024779 for ; Thu, 15 Dec 2016 12:33:09 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fb.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=facebook; bh=v0FEeSW2o9Ai13PnTEVOigppkpzOP3XKnI3dDPRyPa8=; b=kzaJvBzNQGz+KIFR5eS39G+l9tcji6lvhjT3xBnOWffYjgTMfV2dtbbSxaHU2lhfOQPp ne1KEpXEN4cxRkhH7VEiFf4NvaKlTQMxvtymUx/wZvv1r2n4R9G97jCY63RvGdie1e6R idIrZOudITCYnxUW1WCx8EVYhdor1C1FZhM= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 27bxsyagm7-2 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Thu, 15 Dec 2016 12:33:09 -0800 Received: from mx-out.facebook.com (192.168.52.123) by PRN-CHUB08.TheFacebook.com (192.168.16.18) with Microsoft SMTP Server (TLS) id 14.3.294.0; Thu, 15 Dec 2016 12:33:09 -0800 Received: from facebook.com (2401:db00:21:603d:face:0:19:0) by mx-out.facebook.com (10.102.107.99) with ESMTP id b0a4f798c30511e6b4950002c99293a0-741faa50 for ; Thu, 15 Dec 2016 12:33:08 -0800 Received: by devbig638.prn2.facebook.com (Postfix, from userid 11222) id 9CA9B4860757; Thu, 15 Dec 2016 12:33:08 -0800 (PST) Smtp-Origin-Hostprefix: devbig From: Shaohua Li Smtp-Origin-Hostname: devbig638.prn2.facebook.com To: , CC: , , , Smtp-Origin-Cluster: prn2c22 Subject: [PATCH V5 04/17] blk-throttle: configure bps/iops limit for cgroup in low limit Date: Thu, 15 Dec 2016 12:32:55 -0800 Message-ID: <04bae2f6239c13d3160d7c0196c97217c5e4b4c3.1481833017.git.shli@fb.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: References: X-FB-Internal: Safe MIME-Version: 1.0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-12-15_14:, , signatures=0 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 each queue will have a state machine. Initially queue is in LIMIT_LOW state, which means all cgroups will be throttled according to their low limit. After all cgroups with low limit cross the limit, the queue state gets upgraded to LIMIT_MAX state. For max limit, cgroup will use the limit configured by user. For low limit, cgroup will use the minimal between low limit and max limit configured by user. Last patch already did the convertion. Signed-off-by: Shaohua Li --- block/blk-throttle.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index fcc4199..e55bd36 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -212,11 +212,21 @@ static struct throtl_data *sq_to_td(struct throtl_service_queue *sq) static uint64_t tg_bps_limit(struct throtl_grp *tg, int rw) { + struct blkcg_gq *blkg = tg_to_blkg(tg); + uint64_t ret; + + if (cgroup_subsys_on_dfl(io_cgrp_subsys) && !blkg->parent) + return U64_MAX; return tg->bps[rw][tg->td->limit_index]; } static unsigned int tg_iops_limit(struct throtl_grp *tg, int rw) { + struct blkcg_gq *blkg = tg_to_blkg(tg); + unsigned int ret; + + if (cgroup_subsys_on_dfl(io_cgrp_subsys) && !blkg->parent) + return UINT_MAX; return tg->iops[rw][tg->td->limit_index]; }