Thread (72 messages) 72 messages, 4 authors, 2017-02-16

Re: [PATCHSET v4] blk-mq-scheduling framework

From: Paolo Valente <hidden>
Date: 2017-01-25 08:46:39
Also in: lkml

Il giorno 23 gen 2017, alle ore 18:42, Jens Axboe [off-list ref] ha =
scritto:
=20
On 01/23/2017 10:04 AM, Paolo Valente wrote:
quoted
=20
quoted
Il giorno 18 gen 2017, alle ore 17:21, Jens Axboe [off-list ref] ha =
scritto:
quoted
quoted
=20
On 01/18/2017 08:14 AM, Paolo Valente wrote:
quoted
according to the function blk_mq_sched_put_request, the
mq.completed_request hook seems to always be invoked (if set) for a
request for which the mq.put_rq_priv is invoked (if set).
=20
Correct, any request that came out of blk_mq_sched_get_request()
will always have completed called on it, regardless of whether it
had IO started on it or not.
=20
=20
It seems that some request, after being dispatched, happens to have =
no
quoted
mq.put_rq_priv invoked on it now or then.  Is it expected?  If it is,
could you point me to the path through which the end of the life of
such a request is handled?
=20
I'm guessing that's a flush request. I added RQF_QUEUED to check for
that, if RQF_QUEUED is set, you know it has come from your get_request
handler.
=20
Exactly, the completion-without-put_rq_priv pattern seems to occur
only for requests coming from the flusher, precisely because they have
the flag RQF_ELVPRIV unset.  Just to understand: why is this flag
unset for these requests, if they do have private elevator (bfq)
data attached?  What am I misunderstanding?

Just to be certain: this should be the only case where the
completed_request hook is invoked while the put_rq_priv is not, right?

Thanks,
Paolo
I'm assuming that is it, let me know.
=20
--=20
Jens Axboe
=20
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help