[PATCH 5/5] NVMe: IO queue deletion re-write
Keith Busch
keith.busch at intel.com
Sun Jan 3 10:04:12 PST 2016
On Sun, Jan 03, 2016 at 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)) {
--
More information about the Linux-nvme
mailing list