Hi Shahar,

 

I’ve pushed a patch for the SPDK master branch that should allow it to compile with DPDK 16.07: https://review.gerrithub.io/#/c/spdk/spdk/+/408743/

 

However, DPDK 16.07 is no longer supported upstream; I highly recommend that you update to a newer version. SPDK is currently tested with DPDK 18.02.

 

The VFIO issue you mention has also been fixed on SPDK master, and it will be part of the SPDK v18.04 release.

 

Thanks,

-- Daniel

 

From: SPDK [mailto:spdk-bounces@lists.01.org] On Behalf Of Shahar Salzman
Sent: Sunday, April 22, 2018 6:41 AM
To: Storage Performance Development Kit <spdk@lists.01.org>
Subject: [SPDK] Building spdk on CentOS6

 

Hi,

 

Finally got to looking at support of spdk build on CentOS6, things look good, except for one issue.

spdk is latest 18.01.x version, dpdk is 16.07 (+3 dpdk patches to allow compilation) and some minor patches (mainly some memory configuration stuff), kernel is a patched 4.9.6.

 

build succeeded except for the usage of the dpdk function pci_vfio_is_enabled.

I had to apply the patch bellow, removing the usage of this function and then compilation completed without any issues.

 

It seems that I am missing some sort of dpdk configuration as I see that the function is built, but not packaged into the generated archive.

 

I went back to square one and ran the instructions in http://www.spdk.io/doc/getting_started.html, but I see no mention of dpdk there. Actually the ./configure requires it.

 

My next step is to use a more recent dpdk, but shouldn't this work with my version? Am I missing some dpdk configuration?

BTW, as we are not using vhost, on our 17.07 version we simply use CONFIG_VHOST=n in order to skip this, but I would be happier if we used a better solution.

 

Shahar

 

P.S. Here is the patch to remove use of this function:

diff --git a/lib/env_dpdk/vtophys.c b/lib/env_dpdk/vtophys.c

index 92aa256..f38929f 100644

--- a/lib/env_dpdk/vtophys.c

+++ b/lib/env_dpdk/vtophys.c

@@ -53,8 +53,10 @@

 #define SPDK_VFIO_ENABLED 1

 #include <linux/vfio.h>

 

+#if 0

 /* Internal DPDK function forward declaration */

 int pci_vfio_is_enabled(void);

+#endif

 

 struct spdk_vfio_dma_map {

        struct vfio_iommu_type1_dma_map map;

@@ -341,9 +343,11 @@ spdk_vtophys_iommu_init(void)

        DIR *dir;

        struct dirent *d;

 

+#if 0

        if (!pci_vfio_is_enabled()) {

                return;

        }

+#endif

 

        dir = opendir("/proc/self/fd");

        if (!dir) {