Thread (5 messages) 5 messages, 3 authors, 2018-12-17

Re: [PATCH v3] block: fix blk-iolatency accounting underflow

From: Liu Bo <hidden>
Date: 2018-12-17 23:23:52
Also in: cgroups, lkml

On Mon, Dec 17, 2018 at 1:28 PM Dennis Zhou [off-list ref] wrote:
On Mon, Dec 17, 2018 at 11:42:28AM -0800, Liu Bo wrote:
quoted
On Mon, Dec 17, 2018 at 8:04 AM Dennis Zhou [off-list ref] wrote:
quoted
The blk-iolatency controller measures the time from rq_qos_throttle() to
rq_qos_done_bio() and attributes this time to the first bio that needs
to create the request. This means if a bio is plug-mergeable or
bio-mergeable, it gets to bypass the blk-iolatency controller.
Hi,

I have a question about merging in plug list, since plug merges are
done before rq_qos_throttle(), why would plug-mergeable bios bypass
the controller?

thanks,
liubo
Hi Liubo,

BIO_TRACKED is tagging the bio that is responsible for allocating a new
request, so that rq_qos controllers can decide whether or not they want
to process the bio any part of the way. I should have phrased that a
little better in the commit message. It's not that the bio itself is
bypassing the blk-iolatency controller, but the blk-iolatency controller
deciding to not do anything based on the BIO_TRACKED flag. This doesn't
change any of the function calls made on a bio/request.
Thanks for the explanation.
I see it now, so the mentioned series had associated all bios with a
blkg if possible so that done_bio() bumps up inflight counter even in
case a bio has been merged in a previous request.

BIO_TRACKED seems to be too generic to use, but otherwise it makes sense to me,
Reviewed-by: Liu Bo <redacted>

thanks,
liubo
Thanks,
Dennis
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help