From: Yu Kuai <yukuai1@huaweicloud.com>
To: Tejun Heo <tj@kernel.org>, Yu Kuai <yukuai1@huaweicloud.com>
Cc: hch@infradead.org, josef@toxicpanda.com, axboe@kernel.dk,
cgroups@vger.kernel.org, linux-block@vger.kernel.org,
linux-kernel@vger.kernel.org, yi.zhang@huawei.com,
"yukuai (C)" <yukuai3@huawei.com>
Subject: Re: [PATCH v2 1/2] blk-iocost: add refcounting for iocg
Date: Tue, 10 Jan 2023 09:39:44 +0800 [thread overview]
Message-ID: <a71f997f-6cae-d57b-85dd-2fd499d238f6@huaweicloud.com> (raw)
In-Reply-To: <Y7xbpidpq7+DqJan@slm.duckdns.org>
Hi,
在 2023/01/10 2:23, Tejun Heo 写道:
> Yeah, that's unfortunate. There are several options here:
>
> 1. Do what you originally suggested - bypass to root after offline. I feel
> uneasy about this. Both iolatency and throtl clear their configs on
> offline but that's punting to the parent. For iocost it'd be bypassing
> all controls, which can actually be exploited.
>
> 2. Make all possible IO issuers use blkcg_[un]pin_online() and shift the
> iocost shutdown to pd_offline_fn(). This likely is the most canonical
> solution given the current situation but it's kinda nasty to add another
> layer of refcnting all over the place.
>
> 3. Order blkg free so that parents are never freed before children. You did
> this by adding refcnts in iocost but shouldn't it be possible to simply
> shift blkg_put(blkg->parent) in __blkg_release() to blkg_free_workfn()?
As I tried to explain before, we can make sure blkg_free() is called
in order, but blkg_free() from remove cgroup can concurrent with
deactivate policy, and we can't guarantee the order of ioc_pd_free()
that is called both from blkg_free() and blkcg_deactivate_policy().
Hence I don't think #3 is possible.
I personaly prefer #1, I don't see any real use case about the defect
that you described, and actually in cgroup v1 blk-throtl is bypassed to
no limit as well.
I'm not sure about #2, that sounds a possible solution but I'm not quite
familiar with the implementations here.
Consider that bfq already has such refcounting for bfqg, perhaps
similiar refcounting is acceptable?
Thanks,
Kuai
next prev parent reply other threads:[~2023-01-10 1:39 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-27 12:55 [PATCH v2 0/2] blk-iocost: add refcounting for iocg and ioc Yu Kuai
2022-12-27 12:55 ` [PATCH v2 1/2] blk-iocost: add refcounting for iocg Yu Kuai
2023-01-04 21:44 ` Tejun Heo
2023-01-05 1:14 ` Yu Kuai
2023-01-05 18:32 ` Tejun Heo
2023-01-06 1:08 ` Yu Kuai
2023-01-06 20:18 ` Tejun Heo
2023-01-09 1:32 ` Yu Kuai
2023-01-09 18:23 ` Tejun Heo
2023-01-10 1:39 ` Yu Kuai [this message]
2023-01-10 18:36 ` Tejun Heo
2023-01-11 1:36 ` Yu Kuai
2023-01-11 17:07 ` Tejun Heo
2023-01-12 6:18 ` Yu Kuai
2023-01-13 0:53 ` Tejun Heo
2023-01-13 1:10 ` Yu Kuai
2023-01-13 1:15 ` Tejun Heo
2023-01-13 1:25 ` Yu Kuai
2023-01-13 17:16 ` Tejun Heo
2023-01-16 3:25 ` Yu Kuai
2022-12-27 12:55 ` [PATCH v2 2/2] blk-iocost: add refcounting for ioc Yu Kuai
2023-01-04 21:45 ` Tejun Heo
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=a71f997f-6cae-d57b-85dd-2fd499d238f6@huaweicloud.com \
--to=yukuai1@huaweicloud.com \
--cc=axboe@kernel.dk \
--cc=cgroups@vger.kernel.org \
--cc=hch@infradead.org \
--cc=josef@toxicpanda.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).