[dpdk-dev] [PATCH v7 21/25] pci: use EAL exposed configuration

Gaetan Rivet gaetan.rivet at 6wind.com
Thu Oct 26 00:38:43 CEST 2017


Signed-off-by: Gaetan Rivet <gaetan.rivet at 6wind.com>
---
 lib/librte_eal/bsdapp/eal/eal_pci.c        |  2 +-
 lib/librte_eal/linuxapp/eal/eal_pci.c      |  2 +-
 lib/librte_eal/linuxapp/eal/eal_pci_uio.c  |  2 +-
 lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 18 +++++++++++-------
 4 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/lib/librte_eal/bsdapp/eal/eal_pci.c b/lib/librte_eal/bsdapp/eal/eal_pci.c
index 7d82195..e73b7cd 100644
--- a/lib/librte_eal/bsdapp/eal/eal_pci.c
+++ b/lib/librte_eal/bsdapp/eal/eal_pci.c
@@ -368,7 +368,7 @@ rte_pci_scan(void)
 	};
 
 	/* for debug purposes, PCI can be disabled */
-	if (internal_config.no_pci)
+	if (!rte_eal_has_pci())
 		return 0;
 
 	fd = open("/dev/pci", O_RDONLY);
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c
index 3a853a6..cee4b94 100644
--- a/lib/librte_eal/linuxapp/eal/eal_pci.c
+++ b/lib/librte_eal/linuxapp/eal/eal_pci.c
@@ -457,7 +457,7 @@ rte_pci_scan(void)
 	struct rte_pci_addr addr;
 
 	/* for debug purposes, PCI can be disabled */
-	if (internal_config.no_pci)
+	if (!rte_eal_has_pci())
 		return 0;
 
 #ifdef VFIO_PRESENT
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c
index b639ab9..d17837a 100644
--- a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c
+++ b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c
@@ -214,7 +214,7 @@ pci_get_uio_dev(struct rte_pci_device *dev, char *dstbuf,
 		return -1;
 
 	/* create uio device if we've been asked to */
-	if (internal_config.create_uio_dev && create &&
+	if (rte_eal_create_uio_dev() && create &&
 			pci_mknod_uio_dev(dstbuf, uio_num) < 0)
 		RTE_LOG(WARNING, EAL, "Cannot create /dev/uio%u\n", uio_num);
 
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
index 85e481d..4e2b6c9 100644
--- a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
+++ b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
@@ -209,14 +209,18 @@ static int
 pci_vfio_setup_interrupts(struct rte_pci_device *dev, int vfio_dev_fd)
 {
 	int i, ret, intr_idx;
+	enum rte_intr_mode intr_mode;
 
 	/* default to invalid index */
 	intr_idx = VFIO_PCI_NUM_IRQS;
 
+	/* Get default / configured intr_mode */
+	intr_mode = rte_eal_vfio_intr_mode();
+
 	/* get interrupt type from internal config (MSI-X by default, can be
 	 * overridden from the command line
 	 */
-	switch (internal_config.vfio_intr_mode) {
+	switch (intr_mode) {
 	case RTE_INTR_MODE_MSIX:
 		intr_idx = VFIO_PCI_MSIX_IRQ_INDEX;
 		break;
@@ -240,7 +244,7 @@ pci_vfio_setup_interrupts(struct rte_pci_device *dev, int vfio_dev_fd)
 		int fd = -1;
 
 		/* skip interrupt modes we don't want */
-		if (internal_config.vfio_intr_mode != RTE_INTR_MODE_NONE &&
+		if (intr_mode != RTE_INTR_MODE_NONE &&
 				i != intr_idx)
 			continue;
 
@@ -256,7 +260,7 @@ pci_vfio_setup_interrupts(struct rte_pci_device *dev, int vfio_dev_fd)
 		/* if this vector cannot be used with eventfd, fail if we explicitly
 		 * specified interrupt type, otherwise continue */
 		if ((irq.flags & VFIO_IRQ_INFO_EVENTFD) == 0) {
-			if (internal_config.vfio_intr_mode != RTE_INTR_MODE_NONE) {
+			if (intr_mode != RTE_INTR_MODE_NONE) {
 				RTE_LOG(ERR, EAL,
 						"  interrupt vector does not support eventfd!\n");
 				return -1;
@@ -277,15 +281,15 @@ pci_vfio_setup_interrupts(struct rte_pci_device *dev, int vfio_dev_fd)
 
 		switch (i) {
 		case VFIO_PCI_MSIX_IRQ_INDEX:
-			internal_config.vfio_intr_mode = RTE_INTR_MODE_MSIX;
+			intr_mode = RTE_INTR_MODE_MSIX;
 			dev->intr_handle.type = RTE_INTR_HANDLE_VFIO_MSIX;
 			break;
 		case VFIO_PCI_MSI_IRQ_INDEX:
-			internal_config.vfio_intr_mode = RTE_INTR_MODE_MSI;
+			intr_mode = RTE_INTR_MODE_MSI;
 			dev->intr_handle.type = RTE_INTR_HANDLE_VFIO_MSI;
 			break;
 		case VFIO_PCI_INTX_IRQ_INDEX:
-			internal_config.vfio_intr_mode = RTE_INTR_MODE_LEGACY;
+			intr_mode = RTE_INTR_MODE_LEGACY;
 			dev->intr_handle.type = RTE_INTR_HANDLE_VFIO_LEGACY;
 			break;
 		default:
@@ -615,7 +619,7 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
 int
 pci_vfio_map_resource(struct rte_pci_device *dev)
 {
-	if (internal_config.process_type == RTE_PROC_PRIMARY)
+	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
 		return pci_vfio_map_resource_primary(dev);
 	else
 		return pci_vfio_map_resource_secondary(dev);
-- 
2.1.4



More information about the dev mailing list