[dpdk-dev] [PATCH v3 03/14] vhost: introduce vDPA devices class

Ferruh Yigit ferruh.yigit at intel.com
Mon Jun 29 16:48:10 CEST 2020


On 6/26/2020 3:04 PM, Maxime Coquelin wrote:
> This patch introduces vDPA device class. It will enable
> application to iterate over the vDPA devices.
> 
> Acked-by: Adrián Moreno <amorenoz at redhat.com>
> Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>

<...>

> +static int
> +vdpa_dev_match(struct rte_vdpa_device *dev,
> +	      const struct rte_device *rte_dev)
> +{
> +	struct rte_vdpa_dev_addr addr;
> +
> +	/*  Only PCI bus supported for now */
> +	if (strcmp(rte_dev->bus->name, "pci") != 0)
> +		return -1;
> +
> +	addr.type = VDPA_ADDR_PCI;
> +
> +	if (rte_pci_addr_parse(rte_dev->name, &addr.pci_addr) != 0)

Overall patchset is good, but there is a build error in this patch [1] because
'rte_pci' library not linked with vhost library.
Fixing it while merging [2], but since this function is removed in the next
patch the changes are taken back in next patch, so the result of the patchset
should be exact same, please double check.

[1]
/usr/bin/ld: vdpa.o: in function `vdpa_dev_iterate':
vdpa.c:(.text+0x9f): undefined reference to `rte_pci_addr_parse'
collect2: error: ld returned 1 exit status


[2]
diff --git a/lib/Makefile b/lib/Makefile
index e0e5eb4d8..5c269e65c 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -47,7 +47,8 @@ DIRS-$(CONFIG_RTE_LIBRTE_RAWDEV) += librte_rawdev
 DEPDIRS-librte_rawdev := librte_eal librte_ethdev
 DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += librte_vhost
 DEPDIRS-librte_vhost := librte_eal librte_mempool librte_mbuf librte_ethdev \
-                       librte_net librte_hash librte_cryptodev
+                       librte_net librte_hash librte_cryptodev \
+                       librte_pci
 DIRS-$(CONFIG_RTE_LIBRTE_HASH) += librte_hash
 DEPDIRS-librte_hash := librte_eal librte_ring
 DIRS-$(CONFIG_RTE_LIBRTE_EFD) += librte_efd
diff --git a/lib/librte_vhost/Makefile b/lib/librte_vhost/Makefile
index e592795f2..7004a6307 100644
--- a/lib/librte_vhost/Makefile
+++ b/lib/librte_vhost/Makefile
@@ -35,6 +35,7 @@ ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y)
 LDLIBS += -lnuma
 endif
 LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev -lrte_net
+LDLIBS += -lrte_pci

 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_VHOST) := fd_man.c iotlb.c socket.c vhost.c \
diff --git a/lib/librte_vhost/vdpa.c b/lib/librte_vhost/vdpa.c
index a42984169..333ea12cb 100644
--- a/lib/librte_vhost/vdpa.c
+++ b/lib/librte_vhost/vdpa.c
@@ -12,6 +12,7 @@

 #include <rte_class.h>
 #include <rte_malloc.h>
+#include <rte_pci.h>
 #include "rte_vdpa.h"
 #include "vhost.h"



More information about the dev mailing list