All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Ming Lei <tom.leiming@gmail.com>, Christoph Hellwig <hch@infradead.org>
Cc: Shaohua Li <shli@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [patch]blk-mq: blk_mq_tag_to_rq should handle flush request
Date: Wed, 04 Jun 2014 09:48:05 -0600	[thread overview]
Message-ID: <538F3FB5.2020102@kernel.dk> (raw)
In-Reply-To: <CACVXFVNNTPrq29eS9GzJDequtFXCTNWPLJfzB4Z-XJVE5j8+aA@mail.gmail.com>

On 06/04/2014 09:43 AM, Ming Lei wrote:
> On Wed, Jun 4, 2014 at 11:31 PM, Christoph Hellwig <hch@infradead.org> wrote:
>> On Wed, Jun 04, 2014 at 09:02:19AM -0600, Jens Axboe wrote:
>>>> 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.
>>
>> What about something like the following (untest, uncompiled, maybe
>> pseudo-code):
>>
>> struct request *blk_mq_tag_to_rq(struct blk_mq_tags *tags, unsigned int tag)
>> {
>>         struct request *rq = tags->rqs[tag];
>>
>>         if ((rq->cmd_flags & REQ_FLUSH_SEQ) && rq->q->flush_rq->tag == tag)
>>                 return rq->q->flush_rq;
>>         return rq;
>> }
> 
> Looks we thought it together, :-)
> 
> Also maybe the flush_rq->tag need to be cleared in flush_end_io().

It clears the command flag, so that should be enough.

-- 
Jens Axboe


  reply	other threads:[~2014-06-04 15:48 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-09 12:07 [patch]blk-mq: blk_mq_tag_to_rq should handle flush request Shaohua Li
2014-05-09 15:00 ` Christoph Hellwig
2014-05-10  4:00   ` Shaohua Li
2014-05-11 17:40     ` Jens Axboe
2014-05-30 14:09     ` Jens Axboe
2014-06-04 11:11       ` Christoph Hellwig
2014-06-04 14:15         ` Jens Axboe
2014-06-04 14:20           ` Christoph Hellwig
2014-06-04 14:54             ` Jens Axboe
2014-06-04 14:58               ` Christoph Hellwig
2014-06-04 15:02                 ` Jens Axboe
2014-06-04 15:05                   ` Christoph Hellwig
2014-06-04 15:08                     ` Jens Axboe
2014-06-04 15:10                       ` Christoph Hellwig
2014-06-04 15:11                         ` Jens Axboe
2014-06-04 15:16                           ` Christoph Hellwig
2014-06-04 15:19                             ` Jens Axboe
2014-06-04 15:22                       ` Christoph Hellwig
2014-06-04 15:28                         ` Jens Axboe
2014-06-04 15:31                   ` Christoph Hellwig
2014-06-04 15:39                     ` Jens Axboe
2014-06-04 15:47                       ` Jens Axboe
2014-06-04 16:25                         ` Jens Axboe
2014-06-05  1:27                           ` Shaohua Li
2014-06-05  2:05                             ` Jens Axboe
2014-06-05  2:27                               ` Shaohua Li
2014-06-05  2:40                                 ` Jens Axboe
2014-06-04 15:43                     ` Ming Lei
2014-06-04 15:48                       ` Jens Axboe [this message]
2014-06-04 16:00                         ` Ming Lei
2014-06-04 16:09                           ` Jens Axboe
2014-06-04 16:26                             ` Ming Lei
2014-06-04 16:28                               ` Jens Axboe
2014-06-04 16:33                                 ` Christoph Hellwig
2014-06-04 16:36                                   ` Ming Lei

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=538F3FB5.2020102@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=shli@kernel.org \
    --cc=tom.leiming@gmail.com \
    /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.