All of lore.kernel.org
 help / color / mirror / Atom feed
From: keith.busch@intel.com (Keith Busch)
Subject: [PATCH 5/5] NVMe: IO queue deletion re-write
Date: Sun, 3 Jan 2016 18:04:12 +0000	[thread overview]
Message-ID: <20160103180412.GC31375@localhost.localdomain> (raw)
In-Reply-To: <20160103162625.GB31375@localhost.localdomain>

On Sun, Jan 03, 2016@04:26:25PM +0000, Keith Busch wrote:
> In the scenario I'm describing you _don't_ want it to succeed in getting
> a request. You don't want it to wait indefinitely for one either.

I may be doing a bad job explaining this scenario. I'm sure it'll make
sense if you synthesize it.

Here's one way: run qemu with this patch and "-smp" set to 8. In the
linux nvme driver, set NVME_AQ_DEPTH to something lower than 8, like
4. Then reset the controller in the guest. This will fake an unresponsive
controller during reset.

---
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 169e4fa..6433337 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -305,6 +305,7 @@ static uint16_t nvme_del_sq(NvmeCtrl *n, NvmeCmd *cmd)
     if (!qid || nvme_check_sqid(n, qid)) {
         return NVME_INVALID_QID | NVME_DNR;
     }
+    return NVME_NO_COMPLETE;
 
     sq = n->sq[qid];
     while (!QTAILQ_EMPTY(&sq->out_req_list)) {
--

  reply	other threads:[~2016-01-03 18:04 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-30 17:27 [PATCH 0/5] NVMe fixes and updates for 4.5 Keith Busch
2015-12-30 17:27 ` [PATCH 1/5] NVMe: Fix admin queue ring wrap Keith Busch
2015-12-30 17:49   ` Christoph Hellwig
2015-12-30 17:56     ` Keith Busch
2015-12-30 17:53   ` Jens Axboe
2015-12-30 18:09     ` Christoph Hellwig
2015-12-30 17:27 ` [PATCH 2/5] NVMe: Use a retryable error code on reset Keith Busch
2015-12-30 17:52   ` Christoph Hellwig
2015-12-30 18:09     ` Keith Busch
2015-12-30 18:18       ` Christoph Hellwig
2015-12-30 17:27 ` [PATCH 3/5] NVMe: Remove queue freezing on resets Keith Busch
2015-12-30 17:53   ` Christoph Hellwig
2015-12-30 20:44     ` Sagi Grimberg
2015-12-30 20:42   ` Sagi Grimberg
2015-12-31 17:19     ` Sagi Grimberg
2015-12-30 17:27 ` [PATCH 4/5] NVMe: Shutdown controller only for power-off Keith Busch
2015-12-30 17:58   ` Christoph Hellwig
2015-12-30 18:02     ` Keith Busch
2015-12-30 18:14       ` Christoph Hellwig
2015-12-30 17:27 ` [PATCH 5/5] NVMe: IO queue deletion re-write Keith Busch
2015-12-30 18:04   ` Christoph Hellwig
2015-12-30 19:07     ` Keith Busch
2016-01-02 17:07       ` Christoph Hellwig
2016-01-02 21:30         ` Keith Busch
2016-01-03 11:40           ` Christoph Hellwig
2016-01-03 15:43             ` Keith Busch
2016-01-03 16:17               ` Christoph Hellwig
2016-01-03 16:26                 ` Keith Busch
2016-01-03 18:04                   ` Keith Busch [this message]
2016-01-03 17:05             ` 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=20160103180412.GC31375@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 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.