Is there any plan to add "quirk" mechanism to SPDK?
by Wang Weber
Hi,
In online FW upgrade process, the memblaze Pblaze4 NVMe device requires an
extra delay during controller reset process. The following patch email from
HGST describes the similar issue in detail.
*Subject: [PATCH v3] nvme/quirk: Add a delay before checking for adapter
readiness*
*When disabling the controller, the specification says the register
NVME_REG_CC should be written and then driver needs to wait the adapter to
be ready, which is checked by reading another register bit (NVME_CSTS_RDY).
There's a timeout validation in this checking, so in case this timeout is
reached the driver gives up and removes the adapter from the system.*
*After a firmware activation procedure, the PCI_DEVICE(0x1c58, 0x0003)
(HGST adapter) end up being removed if we issue a reset_controller, because
driver keeps verifying the NVME_REG_CSTS until the timeout is reached. This
patch adds a necessary quirk for this adapter, by introducing a delay
before nvme_wait_ready(), so the reset procedure is able to be completed.
This quirk is needed because just increasing the timeout is not enough in
case of this adapter - the driver must wait before start reading
NVME_REG_CSTS register on this specific device.*
The standard Linux NVMe driver now has quirk
“NVME_QUIRK_DELAY_BEFORE_CHK_RDY” for HGST and memblaze devices. Is there
any plan to add this to SPDK?
Thanks,
-Wenbo
4 years, 3 months
Question about SPDK
by ZHU XIAN WEN
hello all
I had simple questions about SPDK:
does SPDK support FreeBSD? or it just support Linux only?
for Linux, which kernel version is adviced to run SPDK?
best wishes
Tony
4 years, 4 months
[PATCH] nvmf: Correct log messages when polling recv CQ
by Roland Dreier
From: Roland Dreier <roland(a)purestorage.com>
Fix copy-and-paste errors - when polling the recv CQ, we should print
"Recv" instead of "Send" in log messages.
Signed-off-by: Roland Dreier <roland(a)purestorage.com>
---
lib/nvmf/rdma.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c
index 367109e13fd8..9671cdca062b 100644
--- a/lib/nvmf/rdma.c
+++ b/lib/nvmf/rdma.c
@@ -1386,13 +1386,13 @@ spdk_nvmf_rdma_poll(struct spdk_nvmf_conn *conn)
if (rc == 0) {
break;
} else if (rc < 0) {
- SPDK_ERRLOG("Error polling Send CQ! (%d): %s\n",
+ SPDK_ERRLOG("Error polling Recv CQ! (%d): %s\n",
errno, strerror(errno));
return -1;
}
if (wc.status) {
- SPDK_ERRLOG("Send CQ error (%d): %s\n",
+ SPDK_ERRLOG("Recv CQ error (%d): %s\n",
wc.status, ibv_wc_status_str(wc.status));
return -1;
}
--
2.9.3
4 years, 4 months