[dpdk-dev] FW: [PATCH v3] eal: enable vfio independent of PCI bus
Hemant Agrawal
hemant.agrawal at nxp.com
Mon Oct 23 08:33:14 CEST 2017
Hi Anatoly,
Will you please review the following patch?
Regards,
Hemant
-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Hemant Agrawal
Sent: Wednesday, October 11, 2017 12:12 PM
To: thomas at monjalon.net; anatoly.burakov at intel.com
Cc: dev at 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 at 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(-)
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
More information about the dev
mailing list