Linux-NVME Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: keith.busch@intel.com (Keith Busch)
Subject: [PATCH for-4.4] NVMe: IO ending fixes on surprise removal
Date: Mon, 14 Dec 2015 16:29:01 +0000	[thread overview]
Message-ID: <20151214162901.GA24668@localhost.localdomain> (raw)
In-Reply-To: <566D87E8.3000305@dev.mellanox.co.il>

On Sun, Dec 13, 2015@04:59:52PM +0200, Sagi Grimberg wrote:
> >+		 * The controller was shutdown first if we got here through
> >+		 * device removal. The shutdown may requeue outstanding
> >+		 * requests. These need to be aborted immediately so
> >+		 * del_gendisk doesn't block indefinitely for their completion.
> >+		 */
> >+		blk_mq_abort_requeue_list(ns->queue);
> 
> Something looks convoluted a bit here.
> We abort_requeue_list here and...
> 
> >+	}
> >  	if (ns->disk->flags & GENHD_FL_UP)
> >  		del_gendisk(ns->disk);
> >  	if (kill || !blk_queue_dying(ns->queue)) {
> 
> Here again?

Correct. It's solving two different problems. The first is to end
requeued commands that del_gendisk would wait for, like what happens on
a surprise removal with filesystem data syncing. The second is to end
requeued commands that blk_cleanup_queue would wait for, like direct
and passthrough.

One might wonder why the first requeue list abort doesn't address the
second case: we don't execute the path containing the first abort requeue
list on an orderly removal to allow filesystem data to sync first.

The whole shutdown and removal sequence is a little different today than
when it was originally implemented, so will need to verify if it is even
possible to have commands on the requeue list at the second point anymore.

  reply	other threads:[~2015-12-14 16:29 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-11 20:14 [PATCH for-4.4] NVMe: IO ending fixes on surprise removal Keith Busch
2015-12-13 14:59 ` Sagi Grimberg
2015-12-14 16:29   ` Keith Busch [this message]
2015-12-15 15:45     ` Sagi Grimberg
2015-12-18  5:19 ` Sujith Pandel

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=20151214162901.GA24668@localhost.localdomain \
    --to=keith.busch@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox