From: hch@lst.de (Christoph Hellwig)
Subject: [PATCHv4 1/4] nvme: Sync request queues on reset
Date: Tue, 17 Jul 2018 15:40:48 +0200 [thread overview]
Message-ID: <20180717134048.GA16134@lst.de> (raw)
In-Reply-To: <20180716171232.GC26265@localhost.localdomain>
On Mon, Jul 16, 2018@11:12:33AM -0600, Keith Busch wrote:
> On Mon, Jul 16, 2018@07:36:41PM +0300, Sagi Grimberg wrote:
> > > The only reason we need this is because each namespace has its own
> > > request queue with their own timeout work. We don't want all of these
> > > scheduling multiple controller resets, so the sync here just ensures
> > > that there is no active timeout work that's about to schedule another
> > > reset while we're already resetting the controller.
> >
> > But scheduling a reset while a reset is running should not succeed. You
> > should not be able to change state RESETTING -> RESETTING
>
> Timeout handlers call nvme_dev_disable prior to the reset schedule
> attempt, which is the part that we want to prevent occuring concurrently
> with an already scheduled reset.
Is there any good way we can get rid of these out of state machine
nvme_dev_disable calls? It might not be easy, but I think it is
going to help us in the long run.
I also think your original idea of a single work_struct per tag set
for error handling might be a good idea. This is similar to the
per-host eh thread SCSI had forever, so it might also help SCSI by
getting rid of that and running directly from the block timeout
context.
next prev parent reply other threads:[~2018-07-17 13:40 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-13 20:56 [PATCHv4 0/4] nvme timeout updates Keith Busch
2018-07-13 20:56 ` [PATCHv4 1/4] nvme: Sync request queues on reset Keith Busch
2018-07-16 8:52 ` jianchao.wang
2018-07-16 10:39 ` Ming Lei
2018-07-16 13:30 ` Keith Busch
2018-07-17 5:37 ` jianchao.wang
2018-07-16 14:51 ` Sagi Grimberg
2018-07-16 15:37 ` Keith Busch
2018-07-16 16:36 ` Sagi Grimberg
2018-07-16 17:12 ` Keith Busch
2018-07-17 13:40 ` Christoph Hellwig [this message]
2018-07-17 14:54 ` Keith Busch
2018-07-18 11:46 ` Sagi Grimberg
2018-07-18 13:52 ` Keith Busch
2018-07-13 20:56 ` [PATCHv4 2/4] nvme: Start controller in own work queue Keith Busch
2018-07-16 15:00 ` Sagi Grimberg
2018-07-16 15:35 ` Keith Busch
2018-07-13 20:56 ` [PATCHv4 3/4] nvme: Introduce frozen controller state Keith Busch
2018-07-16 9:02 ` jianchao.wang
2018-07-16 11:09 ` Ming Lei
2018-07-16 13:36 ` Keith Busch
2018-07-17 1:23 ` Ming Lei
2018-07-17 5:49 ` jianchao.wang
2018-07-17 7:21 ` Ming Lei
2018-07-17 7:28 ` jianchao.wang
2018-07-17 14:32 ` Keith Busch
2018-07-18 2:57 ` jianchao.wang
2018-07-17 14:06 ` Keith Busch
2018-07-16 16:34 ` Sagi Grimberg
2018-07-17 16:05 ` James Smart
2018-07-17 16:17 ` Keith Busch
2018-07-18 12:20 ` Sagi Grimberg
2018-07-18 13:53 ` Keith Busch
2018-07-13 20:56 ` [PATCHv4 4/4] nvme-pci: Use controller start work to dispath IO Keith Busch
2018-07-19 19:48 ` [PATCHv4 0/4] nvme timeout updates Scott Bauer
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=20180717134048.GA16134@lst.de \
--to=hch@lst.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).