Re: [patch]blk-mq: blk_mq_tag_to_rq should handle flush request

Jens Axboe
2014-06-04T15:02:27Z

On 2014-06-04 08:58, Christoph Hellwig wrote:
> On Wed, Jun 04, 2014 at 08:54:23AM -0600, Jens Axboe wrote:
>>> It's not as simple as the added code wants to get a queue from the
>>> hwctx, which we can't get at. I was planning to look into this, but
>>> there are various other regressions in the recent block updates that I
>>> need to fix before I can even test a tree with this one reverted.
>>
>> Which regressions? Performance or crashes?
>
> Both. I've tracked down the SCSI boot crash and you'll have a patch for
> that soon, still working on bisecting the performance crawl, but I'm
> getting close.

OK strange, there hasn't been that much churn since the last rebase. In
my for-linus, there's a patch for a single queue crash, but that should
just hit for the removal case. And then there's the atomic schedule
patch, but that issue was actually in the code base for about a month,
so not a new one either.

>>> If you can get to sorting this out soon I'd love you to handle it,
>>> otherwise I'll look into it as soon as I can.
>>
>> Just took a look at it, but I don't see the problematic path. I'm
>> looking at wip-9.
>
> scsi_mq_find_tag only gets the scsi host, which may have multiple
> queues. When called from scsi_find_tag we actually have a scsi device,
> so that's not an issue, but when called from scsi_host_find_tag the
> driver only provides the host.

Only solution I see right now is to have the flush_rq in the shared
tags, but that would potentially be a regression for multiple devices
and heavy flush uses cases. I'll see if I can come up with something
better, or maybe Shaohua has an idea.

--
Jens Axboe