From: Ming Lei <ming.lei@redhat.com>
To: Yu Kuai <yukuai3@huawei.com>
Cc: tj@kernel.org, axboe@kernel.dk, cgroups@vger.kernel.org,
linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
yi.zhang@huawei.com
Subject: Re: [PATCH v7 1/2] blk-throtl: introduce a new flag THROTL_TG_CANCELING
Date: Mon, 7 Feb 2022 16:15:06 +0800 [thread overview]
Message-ID: <YgDVCjkjJe1CSVxv@T590> (raw)
In-Reply-To: <20220128084522.3169961-2-yukuai3@huawei.com>
On Fri, Jan 28, 2022 at 04:45:21PM +0800, Yu Kuai wrote:
> If the new flag is set, then the throtl_grp will stop throttling bios.
> Prepare to canceling all throttled bios if the disk is gone.
>
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> ---
> block/blk-throttle.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/block/blk-throttle.c b/block/blk-throttle.c
> index 7c462c006b26..abc5e506c72d 100644
> --- a/block/blk-throttle.c
> +++ b/block/blk-throttle.c
> @@ -43,8 +43,12 @@
> static struct workqueue_struct *kthrotld_workqueue;
>
> enum tg_state_flags {
> - THROTL_TG_PENDING = 1 << 0, /* on parent's pending tree */
> - THROTL_TG_WAS_EMPTY = 1 << 1, /* bio_lists[] became non-empty */
> + /* on parent's pending tree */
> + THROTL_TG_PENDING = 1 << 0,
> + /* bio_lists[] became non-empty */
> + THROTL_TG_WAS_EMPTY = 1 << 1,
> + /* starts to cancel all bios, will be set if the disk is deleted */
> + THROTL_TG_CANCELING = 1 << 2,
> };
>
> #define rb_entry_tg(node) rb_entry((node), struct throtl_grp, rb_node)
> @@ -871,7 +875,8 @@ static bool tg_may_dispatch(struct throtl_grp *tg, struct bio *bio,
> bio != throtl_peek_queued(&tg->service_queue.queued[rw]));
>
> /* If tg->bps = -1, then BW is unlimited */
> - if (bps_limit == U64_MAX && iops_limit == UINT_MAX) {
> + if ((bps_limit == U64_MAX && iops_limit == UINT_MAX) ||
> + tg->flags & THROTL_TG_CANCELING) {
> if (wait)
> *wait = 0;
> return true;
> @@ -974,6 +979,9 @@ static void tg_update_disptime(struct throtl_grp *tg)
> unsigned long read_wait = -1, write_wait = -1, min_wait = -1, disptime;
> struct bio *bio;
>
> + if (tg->flags & THROTL_TG_CANCELING)
> + goto update;
> +
The above change and the following one in tg_update_disptime() isn't
needed actually.
Also I'd suggest to fold the two into one patch.
Thanks,
Ming
next prev parent reply other threads:[~2022-02-07 8:15 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-28 8:45 [PATCH v7 0/2] cancel all throttled bios in del_gendisk() Yu Kuai
2022-01-28 8:45 ` Yu Kuai
2022-01-28 8:45 ` [PATCH v7 1/2] blk-throtl: introduce a new flag THROTL_TG_CANCELING Yu Kuai
2022-01-28 8:45 ` Yu Kuai
2022-02-07 8:15 ` Ming Lei [this message]
2022-02-08 3:54 ` yukuai (C)
2022-02-08 3:54 ` yukuai (C)
[not found] ` <20220128084522.3169961-1-yukuai3-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2022-01-28 8:45 ` [PATCH v7 2/2] block: cancel all throttled bios in del_gendisk() Yu Kuai
2022-01-28 8:45 ` Yu Kuai
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=YgDVCjkjJe1CSVxv@T590 \
--to=ming.lei@redhat.com \
--cc=axboe@kernel.dk \
--cc=cgroups@vger.kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tj@kernel.org \
--cc=yi.zhang@huawei.com \
--cc=yukuai3@huawei.com \
/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: link
Be 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.