[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