From: Jens Axboe <axboe@kernel.dk>
To: Shaohua Li <shli@kernel.org>
Cc: Christoph Hellwig <hch@infradead.org>,
Alexander Gordeev <agordeev@redhat.com>,
Tejun Heo <tj@kernel.org>,
Nicholas Bellinger <nab@linux-iscsi.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: blk-mq flush fix
Date: Mon, 28 Oct 2013 13:38:57 -0600 [thread overview]
Message-ID: <526EBD51.1010804@kernel.dk> (raw)
In-Reply-To: <CANejiEWyznEOtRAXrsgEqGoo2EWJDGBt7XH4AZFksWSmR4UY+Q@mail.gmail.com>
On 10/28/2013 10:57 AM, Shaohua Li wrote:
>
>
>
> 2013/10/28 Jens Axboe <axboe@kernel.dk <mailto:axboe@kernel.dk>>
>
> On 10/28/2013 02:48 AM, Christoph Hellwig wrote:
> > On Sun, Oct 27, 2013 at 10:29:25PM +0000, Jens Axboe wrote:
> >> On Sat, Oct 26 2013, Christoph Hellwig wrote:
> >>> I think this variant of the patch from Alexander should fix the
> issue
> >>> in a minimally invasive way. Longer term I'd prefer to use
> q->flush_rq
> >>> like in the non-mq case by copying over the context and tag
> information.
> >>
> >> This one is pretty simple, we could definitely use it as a band
> aid. I
> >> too would greatly prefer using the static ->flush_rq instead.
> Just have
> >> it marked to bypass most of the free logic.
> >
> > We already bypass the free logical by setting and end_io callback for
> > a while, similar to what the old code does. Maybe it's not all that
> > hard to prealloc the request, let me give a sping. Using the static
> > allocated one will be hard due to the driver-specific extra data,
> > though.
>
> It's not that I think the existing patch is THAT bad, it fits in alright
> with the reserved tagging and works regardless of whether a driver uses
> reserved tags or not. And it does have the upside of not requiring
> special checks or logic for this special non-tagged request that using
> the preallocated would might need.
>
> >> I'll add this one.
> >
> > Gimme another day or so to figure this out.
>
> OK, holding off.
>
>
> Another option: we could throttle flush-request allocation in
> blk_mq_alloc_request(), for example, flush_req_nr >= max_tags - 1, make
> the allocation wait.
That could work too. If we back off, then we could restart it once a
request completes. That does, however, requiring checking that and
potentially kicking all the queues on completion when that happens.
--
Jens Axboe
next prev parent reply other threads:[~2013-10-28 19:39 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-26 11:46 blk-mq flush fix Christoph Hellwig
2013-10-26 15:31 ` Christoph Hellwig
2013-10-27 22:29 ` Jens Axboe
2013-10-28 8:48 ` Christoph Hellwig
2013-10-28 16:29 ` Jens Axboe
2013-10-28 16:46 ` Christoph Hellwig
2013-10-28 16:59 ` Jens Axboe
2013-10-28 19:30 ` Christoph Hellwig
2013-10-28 19:39 ` Jens Axboe
[not found] ` <CANejiEWyznEOtRAXrsgEqGoo2EWJDGBt7XH4AZFksWSmR4UY+Q@mail.gmail.com>
2013-10-28 19:38 ` Jens Axboe [this message]
2013-10-28 19:47 ` Shaohua Li
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=526EBD51.1010804@kernel.dk \
--to=axboe@kernel.dk \
--cc=agordeev@redhat.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nab@linux-iscsi.org \
--cc=shli@kernel.org \
--cc=tj@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 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.