Hi Thiago, > Any clue?
Sure. This is the reason: in dpdk-16.04/lib/librte_eal/linuxapp/igb_uio we have: .... #ifndef PCI_MSIX_ENTRY_SIZE #define PCI_MSIX_ENTRY_SIZE 16 #define PCI_MSIX_ENTRY_LOWER_ADDR 0 #define PCI_MSIX_ENTRY_UPPER_ADDR 4 #define PCI_MSIX_ENTRY_DATA 8 #define PCI_MSIX_ENTRY_VECTOR_CTRL 12 #define PCI_MSIX_ENTRY_CTRL_MASKBIT 1 #endif ... The root cause of the problem is due to that in CentOS 6.8, PCI_MSIX_ENTRY_SIZE is defined; this causes *avoiding* having the PCI_MSIX_ENTRY_CTRL_MASKBIT definition as shown above. The definition of PCI_MSIX_ENTRY_SIZE is due to the following patch, which was introduced in CentOS 6.8, which moved PCI_MSIX_ENTRY_SIZE from the inner drivers/pci/msi.h header file into include/linux/pci_regs.h, The linux/pci_regs.h is included in the pci.h header, which is used by the igb_uio.c, which failed in compilation. "PATCH 1/8] PCI: MSI: Move MSI-X entry definition to pci_regs.h" --- a/drivers/pci/msi.h +++ b/drivers/pci/msi.h @@ -6,12 +6,6 @@ #ifndef MSI_H #define MSI_H -#define PCI_MSIX_ENTRY_SIZE 16 ... ... ... diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h index 455b9cc..acfc224 100644 --- a/include/linux/pci_regs.h +++ b/include/linux/pci_regs.h @@ -307,6 +307,13 @@ #define PCI_MSIX_FLAGS_MASKALL (1 << 14) #define PCI_MSIX_FLAGS_BIRMASK (7 << 0) +/* MSI-X entry's format */ +#define PCI_MSIX_ENTRY_SIZE 16 .... http://linux-pci.vger.kernel.narkive.com/cZquopIw/patch-1-8-pci-msi-move-msi-x-entry-definition-to-pci-regs-h See also: rpm -qp --changelog kernel-devel-2.6.32-642.el6.x86_64.rpm | grep "Move MSI-X entry" warning: kernel-devel-2.6.32-642.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY - [pci] msi: Move MSI-X entry definition to pci_regs.h (Myron Stowe) [1288629 A proper patch which checks kernel version can fix it. Regards, Rami Rosen Intel Corporation