From: Kemeng Shi <shikemeng@huawei.com> To: <tj@kernel.org>, <josef@toxicpanda.com>, <axboe@kernel.dk> Cc: <cgroups@vger.kernel.org>, <linux-block@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <shikemeng@huawei.com> Subject: [PATCH 05/11] blk-throttle: simpfy low limit reached check in throtl_tg_can_upgrade Date: Wed, 23 Nov 2022 14:03:55 +0800 [thread overview] Message-ID: <20221123060401.20392-6-shikemeng@huawei.com> (raw) In-Reply-To: <20221123060401.20392-1-shikemeng@huawei.com> Cgroup reaches low limit if limit is zero or io is already queued. Cgroup will pass upgrade check if low limits of READ and WRITE are both reached. Simpfy the check code described above to removce repeat check and improve readability. There is no functional change. Signed-off-by: Kemeng Shi <shikemeng@huawei.com> --- block/blk-throttle.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 01e30380c19b..322a6ee38fb6 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -1800,24 +1800,22 @@ static bool throtl_tg_is_idle(struct throtl_grp *tg) return ret; } -static bool throtl_tg_can_upgrade(struct throtl_grp *tg) +static bool throtl_tg_reach_low_limit(struct throtl_grp *tg, int rw) { struct throtl_service_queue *sq = &tg->service_queue; - bool read_limit, write_limit; + bool limit = tg->bps[rw][LIMIT_LOW] || tg->iops[rw][LIMIT_LOW]; /* * if cgroup reaches low limit (if low limit is 0, the cgroup always * reaches), it's ok to upgrade to next limit */ - read_limit = tg->bps[READ][LIMIT_LOW] || tg->iops[READ][LIMIT_LOW]; - write_limit = tg->bps[WRITE][LIMIT_LOW] || tg->iops[WRITE][LIMIT_LOW]; - if (!read_limit && !write_limit) - return true; - if (read_limit && sq->nr_queued[READ] && - (!write_limit || sq->nr_queued[WRITE])) - return true; - if (write_limit && sq->nr_queued[WRITE] && - (!read_limit || sq->nr_queued[READ])) + return !limit || sq->nr_queued[rw]. +} + +static bool throtl_tg_can_upgrade(struct throtl_grp *tg) +{ + if (throtl_tg_reach_low_limit(tg, READ) && + throtl_tg_reach_low_limit(tg, WRITE)) return true; if (time_after_eq(jiffies, -- 2.30.0
WARNING: multiple messages have this Message-ID (diff)
From: Kemeng Shi <shikemeng-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> To: tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, josef-DigfWCa+lFGyeJad7bwFQA@public.gmane.org, axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, shikemeng-hv44wF8Li93QT0dZR+AlfA@public.gmane.org Subject: [PATCH 05/11] blk-throttle: simpfy low limit reached check in throtl_tg_can_upgrade Date: Wed, 23 Nov 2022 14:03:55 +0800 [thread overview] Message-ID: <20221123060401.20392-6-shikemeng@huawei.com> (raw) In-Reply-To: <20221123060401.20392-1-shikemeng-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> Cgroup reaches low limit if limit is zero or io is already queued. Cgroup will pass upgrade check if low limits of READ and WRITE are both reached. Simpfy the check code described above to removce repeat check and improve readability. There is no functional change. Signed-off-by: Kemeng Shi <shikemeng-hv44wF8Li93QT0dZR+AlfA@public.gmane.org> --- block/blk-throttle.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 01e30380c19b..322a6ee38fb6 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -1800,24 +1800,22 @@ static bool throtl_tg_is_idle(struct throtl_grp *tg) return ret; } -static bool throtl_tg_can_upgrade(struct throtl_grp *tg) +static bool throtl_tg_reach_low_limit(struct throtl_grp *tg, int rw) { struct throtl_service_queue *sq = &tg->service_queue; - bool read_limit, write_limit; + bool limit = tg->bps[rw][LIMIT_LOW] || tg->iops[rw][LIMIT_LOW]; /* * if cgroup reaches low limit (if low limit is 0, the cgroup always * reaches), it's ok to upgrade to next limit */ - read_limit = tg->bps[READ][LIMIT_LOW] || tg->iops[READ][LIMIT_LOW]; - write_limit = tg->bps[WRITE][LIMIT_LOW] || tg->iops[WRITE][LIMIT_LOW]; - if (!read_limit && !write_limit) - return true; - if (read_limit && sq->nr_queued[READ] && - (!write_limit || sq->nr_queued[WRITE])) - return true; - if (write_limit && sq->nr_queued[WRITE] && - (!read_limit || sq->nr_queued[READ])) + return !limit || sq->nr_queued[rw]. +} + +static bool throtl_tg_can_upgrade(struct throtl_grp *tg) +{ + if (throtl_tg_reach_low_limit(tg, READ) && + throtl_tg_reach_low_limit(tg, WRITE)) return true; if (time_after_eq(jiffies, -- 2.30.0
next prev parent reply other threads:[~2022-11-23 6:04 UTC|newest] Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-11-23 6:03 [PATCH 00/11] A few bugfix and cleanup patches for blk-throttle Kemeng Shi 2022-11-23 6:03 ` Kemeng Shi 2022-11-23 6:03 ` [PATCH 01/11] blk-throttle: Limit whole system if root group is configured when on the default hierarchy Kemeng Shi 2022-11-23 6:03 ` Kemeng Shi 2022-11-23 17:11 ` Tejun Heo 2022-11-24 11:47 ` Kemeng Shi 2022-11-24 11:47 ` Kemeng Shi 2022-11-23 6:03 ` [PATCH 02/11] blk-throttle: Fix that bps of child could exceed bps limited in parent Kemeng Shi 2022-11-23 6:03 ` Kemeng Shi 2022-11-23 18:09 ` Tejun Heo 2022-11-23 18:09 ` Tejun Heo 2022-11-24 11:49 ` Kemeng Shi 2022-11-24 11:49 ` Kemeng Shi 2022-11-23 6:03 ` [PATCH 03/11] blk-throttle: ignore cgroup without io queued in blk_throtl_cancel_bios Kemeng Shi 2022-11-23 6:03 ` Kemeng Shi 2022-11-23 18:13 ` Tejun Heo 2022-11-23 18:13 ` Tejun Heo 2022-11-23 6:03 ` [PATCH 04/11] blk-throttle: correct calculation of wait time in tg_may_dispatch Kemeng Shi 2022-11-23 6:03 ` Kemeng Shi 2022-11-23 18:18 ` Tejun Heo 2022-11-24 12:10 ` Kemeng Shi 2022-11-24 12:10 ` Kemeng Shi 2022-11-23 6:03 ` Kemeng Shi [this message] 2022-11-23 6:03 ` [PATCH 05/11] blk-throttle: simpfy low limit reached check in throtl_tg_can_upgrade Kemeng Shi 2022-11-23 18:26 ` Tejun Heo 2022-11-24 12:52 ` Kemeng Shi 2022-11-24 12:52 ` Kemeng Shi 2022-11-26 5:03 ` kernel test robot 2022-11-26 5:03 ` kernel test robot 2022-11-23 6:03 ` [PATCH 06/11] blk-throttle: fix typo in comment of throtl_adjusted_limit Kemeng Shi 2022-11-23 6:03 ` Kemeng Shi 2022-11-23 18:26 ` Tejun Heo 2022-11-23 18:26 ` Tejun Heo 2022-11-23 6:03 ` [PATCH 07/11] blk-throttle: remove incorrect comment for tg_last_low_overflow_time Kemeng Shi 2022-11-23 6:03 ` Kemeng Shi 2022-11-23 18:27 ` Tejun Heo 2022-11-23 18:27 ` Tejun Heo 2022-11-23 6:03 ` [PATCH 08/11] blk-throttle: remove repeat check of elapsed time from last upgrade in throtl_hierarchy_can_downgrade Kemeng Shi 2022-11-23 6:03 ` Kemeng Shi 2022-11-23 18:28 ` Tejun Heo 2022-11-23 18:28 ` Tejun Heo 2022-11-24 12:58 ` Kemeng Shi 2022-11-24 12:58 ` Kemeng Shi 2022-11-26 8:15 ` kernel test robot 2022-11-26 8:15 ` kernel test robot 2022-11-23 6:03 ` [PATCH 09/11] blk-throttle: remove unnecessary check for validation of limit index Kemeng Shi 2022-11-23 6:03 ` Kemeng Shi 2022-11-23 18:31 ` Tejun Heo 2022-11-23 18:31 ` Tejun Heo 2022-11-24 12:58 ` Kemeng Shi 2022-11-24 12:58 ` Kemeng Shi 2022-11-23 6:04 ` [PATCH 10/11] blk-throttle: remove unused variable td in tg_update_has_rules Kemeng Shi 2022-11-23 6:04 ` Kemeng Shi 2022-11-23 18:30 ` Tejun Heo 2022-11-23 18:30 ` Tejun Heo 2022-11-23 6:04 ` [PATCH 11/11] blk-throttle: Use more siutable time_after check for update slice_start Kemeng Shi 2022-11-23 6:04 ` Kemeng Shi 2022-11-23 18:29 ` Tejun Heo 2022-11-23 18:29 ` Tejun Heo 2022-11-24 13:02 ` Kemeng Shi 2022-11-24 13:02 ` Kemeng Shi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20221123060401.20392-6-shikemeng@huawei.com \ --to=shikemeng@huawei.com \ --cc=axboe@kernel.dk \ --cc=cgroups@vger.kernel.org \ --cc=josef@toxicpanda.com \ --cc=linux-block@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=tj@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.