SPDK fio benchmark support
by Robert Cleveland
Hello all,
Has anyone done any work to make it easy to benchmark polling mode driver with something like FIO?
Thanks,
Robert Cleveland
The information contained in this e-mail is considered confidential of SK hynix memory solutions Inc. and intended only for the persons addressed or copied in this e-mail. Any unauthorized use, dissemination of the information, or copying of this message is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email.
4 years, 9 months
Allow attachment to an already probed controller
by Andrey Kuzmin
While I appreciatethe reasoning behind the current spdk_nvme_probe
attach-once semantics, it still imposes an extra burden of the already
probed controller tracking on the application that, for instance,
seeks to attach to multiple namespaces under the same controller. The
below patch provides an optional fix for the issue. Notice that it
also fixes the bug of the error returned by the enumeration being
ignored.
Regards,
Andrey
diff --git a/lib/nvme/nvme.c b/lib/nvme/nvme.c
index 63a316b..2a3ac64 100644
--- a/lib/nvme/nvme.c
+++ b/lib/nvme/nvme.c
@@ -296,10 +296,32 @@ spdk_nvme_probe(void *cb_ctx, spdk_nvme_probe_cb
probe_cb, spdk_nvme_attach_cb a
nvme_mutex_lock(&g_nvme_driver.lock);
+ /*
+ * First, check if the requested controller has already been started.
+ */
+ TAILQ_FOREACH(ctrlr, &g_nvme_driver.attached_ctrlrs, tailq) {
+ if (!probe_cb(cb_ctx, ctrlr->devhandle))
+ continue;
+
+ nvme_mutex_unlock(&g_nvme_driver.lock);
+ attach_cb(cb_ctx, ctrlr->devhandle, ctrlr);
+ return 0;
+ }
+
enum_ctx.probe_cb = probe_cb;
enum_ctx.cb_ctx = cb_ctx;
rc = nvme_pci_enumerate(nvme_enum_cb, &enum_ctx);
+
+ /*
+ * Appreciate the error being returned
+ * by the nvme_pci_enumerate, if any.
+ */
+ if (rc) {
+ nvme_mutex_unlock(&g_nvme_driver.lock);
+ return rc;
+ }
+
/*
* Keep going even if one or more nvme_attach() calls failed,
* but maintain the value of rc to signal errors when we return.
5 years, 1 month
An issue building against dpdk-2.2.0
by Andrey Kuzmin
Building the tip of the spdk master against the dpdk-2.2.0 fails with
inappropriate RTE_CACHE_LINE_SIZE error. The simple reversal of the
RTE include file order below fixed it for me.
Regards,
Andrey
diff --git a/lib/nvme/nvme_impl.h b/lib/nvme/nvme_impl.h
index 001b84d..9a77981 100644
--- a/lib/nvme/nvme_impl.h
+++ b/lib/nvme/nvme_impl.h
@@ -37,9 +37,10 @@
#include "spdk/vtophys.h"
#include "spdk/pci.h"
#include "spdk/nvme_spec.h"
+
#include <assert.h>
-#include <rte_malloc.h>
#include <rte_config.h>
+#include <rte_malloc.h>
#include <rte_mempool.h>
#include <rte_memcpy.h>
diff --git a/lib/ioat/ioat_impl.h b/lib/ioat/ioat_impl.h
index 49b8502..68e0568 100644
--- a/lib/ioat/ioat_impl.h
+++ b/lib/ioat/ioat_impl.h
@@ -5,8 +5,9 @@
#include <pthread.h>
#include <stdio.h>
#include <stdbool.h>
-#include <rte_malloc.h>
+
#include <rte_config.h>
+#include <rte_malloc.h>
#include <rte_atomic.h>
#include <rte_cycles.h>
5 years, 1 month
3dxpoint & spdk?
by Michael Xu
hi everyone,
i am curious as to whether spdk would be the right library to be using to
access 3dxpoint, once 3d xpoint comes out and becomes publicly available...
given both spdk and 3dxpoint come from intel, and spdk is all about getting
as much performance as possible from nvme storage devices. should i be
looking at using the nvme specific driver?
also, is there any ability to fake the presence of devices? I frequently
run in virtualized environments, and it would be great to be able to
interact and use the API without requiring a physical NVME device
connected.
regards,
michael
--
Michael Xu
michael(a)michaelxu.co
5 years, 1 month