From: axboe@fb.com (Jens Axboe)
Subject: [PATCH 0/4] nvme-blkmq fixes
Date: Mon, 5 Jan 2015 13:20:47 -0700 [thread overview]
Message-ID: <54AAF21F.3080907@fb.com> (raw)
In-Reply-To: <alpine.LNX.2.00.1501051932340.4026@localhost.lm.intel.com>
On 01/05/2015 01:19 PM, Keith Busch wrote:
> On Mon, 5 Jan 2015, Jens Axboe wrote:
>> On 01/05/2015 08:17 AM, Keith Busch wrote:
>>> On Wed, 31 Dec 2014, Jens Axboe wrote:
>>> We need the driver to temporarily block tasks allocating new requests
>>> but
>>> let existing requests requeue. Freeze looked good, but unfreeze expects
>>> the usage count to have been 0, which it's not guaranteed with when we
>>> let failed requests requeue.
>>
>> OK, I think that is a concern we can fix. And yes, that was the intended
>> use case for it originally.
>>
>
> Okay cool, that would help a lot.
>
>>> We also need the driver to temporarily prevent the block layer from
>>> submitting requests to the driver's hw queues. 'blk_mq_stop_hw_queues'
>>> looked right, but anyone can restart them at the wrong time by kicking
>>> the requeue list.
>>
>> The driver is the only one that should kick the requeue action into
>> gear, which would start those queues up again. So that should be under
>> your control already.
>
> Right, we can stop the driver from kicking if it knows a device reset
> is occuring, but there can't be any requeue work prior to stopping all
> h/w queues to prevent a race condition. We could have the driver's reset
> handler call 'cancel_work_sync(q->requeue_work)' to address that. There's
> no existing driver using q->reset_work, but it looks safe to treat
> as public.
Assuming you meant q->requeue_work here. I'd just add that to an
exported function for that functionality, don't muck with it directly in
case we want to change it later for some reason.
--
Jens Axboe
prev parent reply other threads:[~2015-01-05 20:20 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-20 0:54 [PATCH 0/4] nvme-blkmq fixes Keith Busch
2014-12-20 0:54 ` [PATCH 1/4] blk-mq: Exit queue on alloc failure Keith Busch
2014-12-20 0:54 ` [PATCH 2/4] blk-mq: Export freeze/unfreeze functions Keith Busch
2014-12-20 0:54 ` [PATCH 3/4] NVMe: Fix double free irq Keith Busch
2014-12-22 15:15 ` Matthew Wilcox
2014-12-20 0:54 ` [PATCH 4/4] NVMe: Freeze queues on shutdown Keith Busch
2014-12-20 17:32 ` [PATCH 0/4] nvme-blkmq fixes Jens Axboe
2014-12-20 19:29 ` Jens Axboe
2014-12-22 16:38 ` Keith Busch
2014-12-22 16:47 ` Jens Axboe
2014-12-22 18:17 ` Keith Busch
2014-12-22 18:19 ` Jens Axboe
2014-12-22 20:08 ` Jens Axboe
2014-12-22 21:01 ` Keith Busch
2014-12-23 1:34 ` Keith Busch
2014-12-23 17:49 ` Jens Axboe
2014-12-23 17:54 ` Jens Axboe
2014-12-23 18:09 ` Keith Busch
2014-12-23 21:10 ` Keith Busch
2014-12-23 21:23 ` Keith Busch
2014-12-23 21:24 ` Jens Axboe
2014-12-31 2:31 ` Keith Busch
2014-12-31 16:38 ` Jens Axboe
2015-01-05 15:17 ` Keith Busch
2015-01-05 19:30 ` Jens Axboe
2015-01-05 20:19 ` Keith Busch
2015-01-05 20:20 ` Jens Axboe [this message]
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=54AAF21F.3080907@fb.com \
--to=axboe@fb.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.