[dpdk-dev] EAL : Input/output error on DPDK 1.7.1

Masaru Oki m-oki at stratosphere.co.jp
Fri Oct 24 05:22:19 CEST 2014


Hi,
I got same result in VMware Workstation environment.
At least in my environment, INTX toggle check is not work with VMware
E1000 Ethernet.
Please try attached patch.

2014-10-17 3:04 GMT+09:00 Raghav K <rghvk at outlook.com>:
> Hey,
> I observe continuous burst of I/O Errors, as indicated below, with the testpmd application with DPDK 1.7.1.This seems to originate from eal_intr_process_interrupts() function. I seemed to have setup the DPDK prerequisites alright.
> Another recent post seemed to suggest moving back to 1.7.0, however I would like to persist with 1.7.1.
> Any help/pointers in resolving this would be greatly appreciated.
> Much thanks,Raghav
> root at sys6-vm6:/home/rghv/dpdk/dpdk-1.7.1/x86_64-native-linuxapp-gcc/app# ./testpmd -c 0xf -n3 -- -i --nb-cores=3 --nb-ports=2
> EAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output errorEAL: Error reading from file descriptor 21: Input/output error
> ----
> root at sys6-vm6:/home/rghv/dpdk/dpdk-1.7.1# ./tools/dpdk_nic_bind.py --status
> Network devices using DPDK-compatible driver============================================0000:02:01.0 '82545EM Gigabit Ethernet Controller (Copper)' drv=igb_uio unused=e10000000:02:02.0 '82545EM Gigabit Ethernet Controller (Copper)' drv=igb_uio unused=e1000
> Network devices using kernel driver===================================0000:02:00.0 '82545EM Gigabit Ethernet Controller (Copper)' if=eth0 drv=e1000 unused=igb_uio *Active*0000:02:03.0 '82545EM Gigabit Ethernet Controller (Copper)' if=eth3 drv=e1000 unused=igb_uio 0000:02:05.0 '82545EM Gigabit Ethernet Controller (Copper)' if=eth4 drv=e1000 unused=igb_uio 0000:02:06.0 '82545EM Gigabit Ethernet Controller (Copper)' if=eth5 drv=e1000 unused=igb_uio
> Other network devices=====================<none>
-------------- next part --------------
diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index d1ca26e..c46a00f 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -505,14 +505,11 @@ 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)) {
-			dev_dbg(&dev->dev, "using INTX");
-			udev->info.irq_flags = IRQF_SHARED;
-			udev->info.irq = dev->irq;
-			udev->mode = RTE_INTR_MODE_LEGACY;
-			break;
-		}
-		dev_notice(&dev->dev, "PCI INTX mask not supported\n");
+		dev_dbg(&dev->dev, "using INTX");
+		udev->info.irq_flags = IRQF_SHARED;
+		udev->info.irq = dev->irq;
+		udev->mode = RTE_INTR_MODE_LEGACY;
+		break;
 		/* fall back to no IRQ */
 	case RTE_INTR_MODE_NONE:
 		udev->mode = RTE_INTR_MODE_NONE;


More information about the dev mailing list