[dpdk-dev] [PATCH] Fix VMware emulated e1000 doesn't support INTX_DISABLE flag

Kirill A. Korinsky kirill at korins.ky
Sun Sep 27 10:51:06 CEST 2015


When you try to run any DPDK-app in VMWare with e1000/82545EM NIC
you have a lot of lines like:

  EAL: Error reading from file descriptor 9: Input/output error

The reason of this error is bad INTX emulation in VMWare
and pci_intx_mask_supported return false every time.
---
 lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index 865a276..c85f7e5 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -36,6 +36,7 @@
 #ifdef CONFIG_XEN_DOM0
 #include <xen/xen.h>
 #endif
+#include <asm/hypervisor.h>
 #include <rte_pci_dev_features.h>
 
 #include "compat.h"
@@ -508,7 +509,8 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 		}
 		/* fall back to INTX */
 	case RTE_INTR_MODE_LEGACY:
-		if (pci_intx_mask_supported(dev)) {
+		/*  VMware emulated e1000 doesn't support INTX_DISABLE flag */
+		if (pci_intx_mask_supported(dev) || x86_hyper == &x86_hyper_vmware) {
 			dev_dbg(&dev->dev, "using INTX");
 			udev->info.irq_flags = IRQF_SHARED;
 			udev->info.irq = dev->irq;
-- 
2.5.3



More information about the dev mailing list