On 13 June 2016 at 12:15, Martinx - ????? <thiagocmartinsc at gmail.com> wrote:
> > > On 12 June 2016 at 11:30, Rosen, Rami <rami.rosen at intel.com> wrote: > >> 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 >> >> > Interesting! > > Do you have this proper fix? I would like to build and use DPDK on CentOS > 6.8... > > Thank you for your reply! > > Best, > Thiago > Hey guys, I tried something different, just for testing, and it also doesn't build. What I tried was to install the "centos-release-xen" repo, and run "yum upgrade" in my CentOS 6.8 box, this way, I can receive a new Kernel for it, which is "3.18.34-20.el6.x86_64", and here is the DPDK build error now: --- ........... CC eal_common_dev.o cc1: warnings being treated as errors /root/rpmbuild/BUILD/dpdk-16.04/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c: In function 'igbuio_pci_probe': /usr/src/kernels/3.18.34-20.el6.x86_64/include/linux/slab.h:582: error: inlining failed in call to 'kzalloc.clone.0': --param max-inline-insns-single limit reached /root/rpmbuild/BUILD/dpdk-16.04/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:383: error: called from here make[8]: *** [/root/rpmbuild/BUILD/dpdk-16.04/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.o] Error 1 make[7]: *** [_module_/root/rpmbuild/BUILD/dpdk-16.04/x86_64-default-linuxapp-gcc/build/lib/librte_eal/linuxapp/igb_uio] Error 2 make[6]: *** [sub-make] Error 2 make[5]: *** [igb_uio.ko] Error 2 make[4]: *** [igb_uio] Error 2 make[4]: *** Waiting for unfinished jobs.... CC eal_common_options.o CC eal_common_thread.o CC eal_common_proc.o CC rte_malloc.o CC malloc_elem.o CC malloc_heap.o CC rte_keepalive.o CC rte_cpuflags.o SYMLINK-FILE include/exec-env/rte_interrupts.h SYMLINK-FILE include/exec-env/rte_kni_common.h SYMLINK-FILE include/exec-env/rte_dom0_common.h LD librte_eal.so.2 INSTALL-LIB librte_eal.so.2 make[3]: *** [linuxapp] Error 2 make[2]: *** [librte_eal] Error 2 make[1]: *** [lib] Error 2 make: *** [all] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.b7GNzi (%build) --- So, this is not related to "PCI: MSI: Move MSI-X entry definition to pci_regs.h" anymore... I'm still looking for a way to build and package the latest DPDK on CentOS 6.8 box. I appreciate any help... Thanks! Thiago