From: keith.busch@linux.intel.com (Keith Busch)
Subject: [PATCH v2 1/1] nvme: Ensure forward progress during Admin passthru
Date: Thu, 28 Jun 2018 13:54:38 -0600 [thread overview]
Message-ID: <20180628195438.GC12970@localhost.localdomain> (raw)
In-Reply-To: <20180628191947.GA2192@sbauer-Z170X-UD5>
On Thu, Jun 28, 2018@01:19:48PM -0600, Scott Bauer wrote:
> On Thu, Jun 28, 2018@01:16:32PM -0600, Keith Busch wrote:
> > On Thu, Jun 28, 2018@11:10:07AM -0600, Scott Bauer wrote:
> > > static void nvme_put_subsystem(struct nvme_subsystem *subsys);
> > > +static void nvme_remove_invalid_namespaces(struct nvme_ctrl *ctrl,
> > > + unsigned nsid);
> > > +
> > > +static void nvme_set_queue_dying(struct nvme_ns *ns)
> > > +{
> > > + blk_set_queue_dying(ns->queue);
> > > + /* Forcibly unquiesce queues to avoid blocking dispatch */
> > > + blk_mq_unquiesce_queue(ns->queue);
> > > +}
> >
> > I think we should actually do everything that the dead namespace does,
> > including revalidating the capacity to 0, just in case a buffered writer
> > is preventing the removal from completing. Here's an update on top of
> > your patch.
> >
>
> > {
> > + /*
> > + * Revalidating a dead namespace sets capacity to 0. This will end
> > + * buffered writers dirtying pages that can't be synced.
> > + */
> > + if (!ns->disk || test_and_set_bit(NVME_NS_DEAD, &ns->flags))
> > + continue;
> > + revalidate_disk(ns->disk);
>
> I was under the impression we could not do this because the queues are still frozen,
> that's why we didnt just issue a scan_work?
>
> revalidate_disk can potentially try and issue more I/O while the queues are
> frozen from passthru start.
Not when the namespace is dead. It will just set capacity to 0 which
kills any buffered writers; no new IO will be attempted, and anything
gating on entering the frozen queue will fail once we set the queue to
dying.
next prev parent reply other threads:[~2018-06-28 19:54 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-22 19:59 [PATCH 0/1] nvme: Ensure forward progress during Admin passthru Scott Bauer
2018-06-22 19:59 ` [PATCH 1/1] " Scott Bauer
2018-06-27 19:12 ` Keith Busch
2018-06-27 19:01 ` Scott Bauer
2018-06-27 20:27 ` Keith Busch
2018-06-27 20:49 ` Keith Busch
2018-06-24 17:38 ` [PATCH 0/1] " Sagi Grimberg
2018-06-27 19:08 ` Keith Busch
2018-06-28 17:10 ` [PATCH v2 1/1] " Scott Bauer
2018-06-28 19:16 ` Keith Busch
2018-06-28 19:19 ` Scott Bauer
2018-06-28 19:54 ` Keith Busch [this message]
2018-06-29 19:03 ` [PATCH v3 " Scott Bauer
2018-06-29 20:23 ` Keith Busch
2018-07-16 22:09 ` Keith Busch
2018-07-17 12:42 ` Christoph Hellwig
2018-07-18 11:26 ` Sagi Grimberg
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=20180628195438.GC12970@localhost.localdomain \
--to=keith.busch@linux.intel.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.