From: Jens Axboe <axboe@kernel.dk>
To: Tejun Heo <tj@kernel.org>, Bart Van Assche <bvanassche@acm.org>
Cc: linux-block@vger.kernel.org
Subject: Re: [PATCH block-5.14] Revert "block/mq-deadline: Add cgroup support"
Date: Thu, 12 Aug 2021 12:56:47 -0600 [thread overview]
Message-ID: <9441b463-50f8-e7c3-51ec-e4bc581da627@kernel.dk> (raw)
In-Reply-To: <YRVfmWnOyPYl/okx@mtj.duckdns.org>
On 8/12/21 11:51 AM, Tejun Heo wrote:
> On Wed, Aug 11, 2021 at 01:22:20PM -0700, Bart Van Assche wrote:
>> On 8/11/21 12:14 PM, Tejun Heo wrote:
>>> On Wed, Aug 11, 2021 at 11:49:10AM -0700, Bart Van Assche wrote:
>>>> You write that this isn't the right way to collect per cgroup stats. What is
>>>> the "right way"? Has this been documented somewhere?
>>>
>>> Well, there's nothing specific to mq-deadline or any other elevator or
>>> controller about the stats that your patch collected and showed. That
>>> seems like a pretty straight forward sign that it likely doens't
>>> belong there.
>>
>> Do you perhaps want these statistics to be reported via read-only cgroup
>> attributes of a new cgroup policy that is independent of any particular I/O
>> scheduler?
>
> There's an almost fundamental conflict between ioprio and cgroup IO
> control. bfq layers it so that ioprio classes define the global
> priority above weights and then ioprio modifies the weights within
> each class. mq-deadline isn't cgroup aware and who knows what kind of
> priority inversions it's creating when its ioprio enforcement is
> interacting with other cgroup controllers.
>
> The problem is that as currently used, they're specifying the same
> things - how IO should be distributed globally in the system, and
> there's no right way to make the two configuration configuration
> regimes agree on what should happen on the system.
>
> I can see two paths forward:
>
> 1. Accept that ioprio isn't something which makes senes with cgroup IO
> control in a generic manner and approach it in per-configuration
> manner, either by doing whatever the specific combination decided
> to do with ioprio or ignoring it.
>
> 2. The only generic way to integrate ioprio and cgroup IO control
> would be nesting ioprio inside cgroup IO control, so that ioprio
> can express per-process priority within each cgroup. While this
> makes semantic sense and can be useful in certain scenarios, this
> is also a departure from how people have been using ioprio and it'd
> be involve quite a bit of effort and complexity, likely too much to
> be justified by its inherent usefulness.
>
> Jens, what do you think?
On the surface, #2 makes the most sense. But you'd then have to apply
some scaling before it reaches the hardware side or is factored in by
the underlying scheduler, or you could have a high priority from a
cgroup that has small share of the total resources, yet ends up being
regarded as more important than a lower priority request from a cgroup
that has a much higher share of the total resources.
Hence not really sure it makes a lot of sense... We could probably come
up with some heuristics that make some sense, but they'd still just be
heuristics.
--
Jens Axboe
next prev parent reply other threads:[~2021-08-12 18:56 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-11 17:41 [PATCH block-5.14] Revert "block/mq-deadline: Add cgroup support" Tejun Heo
2021-08-11 18:49 ` Bart Van Assche
2021-08-11 19:14 ` Tejun Heo
2021-08-11 20:22 ` Bart Van Assche
2021-08-12 17:51 ` Tejun Heo
2021-08-12 18:16 ` Bart Van Assche
2021-08-12 19:23 ` Tejun Heo
2021-08-13 2:18 ` Damien Le Moal
2021-08-13 16:29 ` Tejun Heo
2021-08-13 17:17 ` Bart Van Assche
2021-08-13 21:43 ` Tejun Heo
2021-08-13 17:15 ` Bart Van Assche
2021-08-12 18:56 ` Jens Axboe [this message]
2021-08-12 19:10 ` Tejun Heo
2021-08-11 19:48 ` Jens Axboe
2021-08-12 14:14 ` Oleksandr Natalenko
2021-08-12 15:50 ` Jens Axboe
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=9441b463-50f8-e7c3-51ec-e4bc581da627@kernel.dk \
--to=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=linux-block@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: 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.