From: Tejun Heo <tj@kernel.org>
To: Bart Van Assche <bvanassche@acm.org>
Cc: Jens Axboe <axboe@kernel.dk>, linux-block@vger.kernel.org
Subject: Re: [PATCH block-5.14] Revert "block/mq-deadline: Add cgroup support"
Date: Thu, 12 Aug 2021 07:51:21 -1000 [thread overview]
Message-ID: <YRVfmWnOyPYl/okx@mtj.duckdns.org> (raw)
In-Reply-To: <00e13a7b-6009-a9d7-41ba-aae82f5813de@acm.org>
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?
Thanks.
--
tejun
next prev parent reply other threads:[~2021-08-12 17:51 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 [this message]
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
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=YRVfmWnOyPYl/okx@mtj.duckdns.org \
--to=tj@kernel.org \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=linux-block@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox