FW: [PATCH v3] eal: enable vfio independent of PCI bus

Message ID AM2PR04MB075320AA96291FDEBD7CB78A89460@AM2PR04MB0753.eurprd04.prod.outlook.com
State New
Headers show
Series
  • FW: [PATCH v3] eal: enable vfio independent of PCI bus
Related show

Commit Message

Hemant Agrawal Oct. 23, 2017, 6:33 a.m.
Hi Anatoly,
	Will you please review the following patch?

Regards,
Hemant

-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Hemant Agrawal

Sent: Wednesday, October 11, 2017 12:12 PM
To: thomas@monjalon.net; anatoly.burakov@intel.com
Cc: dev@dpdk.org
Subject: [dpdk-dev] [PATCH v3] eal: enable vfio independent of PCI bus

VFIO may be used by buses other than PCI. This patch enables the VFIO on the basis of vfio root presence.

Since vfio_enable should be called only once, pci_vfio_enable is also removed.

A debug print is added in case vfio_pci module is not present.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

---
v3: changed the vfio enable for vfio root instead of pci

v2: enabled VFIO, independent of no-pci flag as suggested by Thomas
    removed fslmc specific vfio enable

 lib/librte_eal/linuxapp/eal/eal.c          | 8 ++++++--
 lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 6 ------
 lib/librte_eal/linuxapp/eal/eal_vfio.c     | 2 +-
 lib/librte_eal/linuxapp/eal/eal_vfio.h     | 1 -
 4 files changed, 7 insertions(+), 10 deletions(-)

Comments

Burakov, Anatoly Oct. 23, 2017, 11 a.m. | #1
On 23-Oct-17 7:33 AM, Hemant Agrawal wrote:
> Hi Anatoly,

> 	Will you please review the following patch?

> 

> Regards,

> Hemant

> 


Hi Hemant,

My apologies, slipped through the cracks. Reviewing now.

-- 
Thanks,
Anatoly

Patch

diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index ec37c52..e0aceba 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -710,9 +710,13 @@  static int rte_eal_vfio_setup(void)  {
 	int vfio_enabled = 0;
 
+	if (vfio_enable("vfio"))
+		return -1;
+	vfio_enabled = vfio_is_enabled("vfio");
+
 	if (!internal_config.no_pci) {
-		pci_vfio_enable();
-		vfio_enabled |= pci_vfio_is_enabled();
+		if (!pci_vfio_is_enabled())
+			RTE_LOG(DEBUG, EAL, "vfio pci modules not loaded\n");
 	}
 
 	if (vfio_enabled) {
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
index aa9d96e..fc84705 100644
--- a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
+++ b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
@@ -661,12 +661,6 @@  pci_vfio_ioport_unmap(struct rte_pci_ioport *p)  }
 
 int
-pci_vfio_enable(void)
-{
-	return vfio_enable("vfio_pci");
-}
-
-int
 pci_vfio_is_enabled(void)
 {
 	return vfio_is_enabled("vfio_pci");
diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.c b/lib/librte_eal/linuxapp/eal/eal_vfio.c
index b32cd09..ebb71f0 100644
--- a/lib/librte_eal/linuxapp/eal/eal_vfio.c
+++ b/lib/librte_eal/linuxapp/eal/eal_vfio.c
@@ -489,7 +489,7 @@  vfio_enable(const char *modname)
 	/* inform the user that we are probing for VFIO */
 	RTE_LOG(INFO, EAL, "Probing VFIO support...\n");
 
-	/* check if vfio-pci module is loaded */
+	/* check if vfio module is loaded */
 	vfio_available = rte_eal_check_module(modname);
 
 	/* return error directly */
diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.h b/lib/librte_eal/linuxapp/eal/eal_vfio.h
index 26ea8e1..4bab363 100644
--- a/lib/librte_eal/linuxapp/eal/eal_vfio.h
+++ b/lib/librte_eal/linuxapp/eal/eal_vfio.h
@@ -207,7 +207,6 @@  int vfio_release_device(const char *sysfs_base, const char *dev_addr, int fd);  int vfio_enable(const char *modname);  int vfio_is_enabled(const char *modname);
 
-int pci_vfio_enable(void);
 int pci_vfio_is_enabled(void);
 
 int vfio_mp_sync_setup(void);
--
2.7.4