Message ID | 9B0331B6EBBD0E4684FBFAEDA55776F92CD5CBC7@HASMSX110.ger.corp.intel.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 647C637B6; Sun, 12 Jun 2016 17:30:45 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 8896E37B3 for <dev@dpdk.org>; Sun, 12 Jun 2016 17:30:43 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP; 12 Jun 2016 08:30:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,462,1459839600"; d="scan'208";a="996072496" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga002.jf.intel.com with ESMTP; 12 Jun 2016 08:30:42 -0700 Received: from fmsmsx114.amr.corp.intel.com (10.18.116.8) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 12 Jun 2016 08:30:42 -0700 Received: from hasmsx107.ger.corp.intel.com (10.184.198.27) by FMSMSX114.amr.corp.intel.com (10.18.116.8) with Microsoft SMTP Server (TLS) id 14.3.248.2; Sun, 12 Jun 2016 08:30:41 -0700 Received: from HASMSX110.ger.corp.intel.com ([169.254.11.140]) by hasmsx107.ger.corp.intel.com ([169.254.6.143]) with mapi id 14.03.0248.002; Sun, 12 Jun 2016 18:30:38 +0300 From: "Rosen, Rami" <rami.rosen@intel.com> To: "thiagocmartinsc@gmail.com" <thiagocmartinsc@gmail.com>, "Yigit, Ferruh" <ferruh.yigit@intel.com> CC: dev <dev@dpdk.org>, "Rosen, Rami" <rami.rosen@intel.com> Thread-Topic: [dpdk-dev] Can't build DPDK-16.04 on CentOS 6.8 Thread-Index: AQHRvEFh1r0aXULBY0y0g9sROOdax5/XXysAgABME4CADlh8cA== Date: Sun, 12 Jun 2016 15:30:38 +0000 Message-ID: <9B0331B6EBBD0E4684FBFAEDA55776F92CD5CBC7@HASMSX110.ger.corp.intel.com> References: <CAJSM8J2DUJQzmbkW7XKmod5UvQHiKJNq8oNoSEgiQft5snGO9Q@mail.gmail.com> <57515FB0.3040800@intel.com> <CAJSM8J01Q=k_iH7bCRnYYYY2i5GRJvSoK=2m6dM4MhwcwK7t2Q@mail.gmail.com> In-Reply-To: <CAJSM8J01Q=k_iH7bCRnYYYY2i5GRJvSoK=2m6dM4MhwcwK7t2Q@mail.gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMWM2N2IyYTYtOTZlNi00NjUzLWE5ZTEtNWRiNmZjNjFkNzQyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IlBNWTdLVHhmWkM2K3NKc3EyaUZaQWJTeGIyVW9pRGtncjFUbHh6bjhLSTA9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.184.70.11] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] Can't build DPDK-16.04 on CentOS 6.8 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Commit Message
Rami Rosen
June 12, 2016, 3:30 p.m. UTC
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"
#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
Comments
On 12 June 2016 at 11:30, Rosen, Rami <rami.rosen@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
On 13 June 2016 at 12:15, Martinx - ジェームズ <thiagocmartinsc@gmail.com> wrote: > > > On 12 June 2016 at 11:30, Rosen, Rami <rami.rosen@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
Hi, I faced the same problem while building dpdk(1.7.1, 1.8.0, 2.0.0, 2.2.0) on Rhel6.8 GA kernel. Disabling CONFIG_RTE_EAL_IGB_UIO and CONFIG_RTE_KNI_KMOD in dpdk-X/config/common_linuxapp resolved this issue. Br, Murali -----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Martinx - ????? Sent: Thursday, June 16, 2016 12:29 AM To: Rosen, Rami Cc: Yigit, Ferruh; dev Subject: Re: [dpdk-dev] Can't build DPDK-16.04 on CentOS 6.8 On 13 June 2016 at 12:15, Martinx - ジェームズ <thiagocmartinsc@gmail.com> wrote: > > > On 12 June 2016 at 11:30, Rosen, Rami <rami.rosen@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-m >> ove-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
On 6/15/2016 7:59 PM, Martinx - ジェームズ wrote: > On 13 June 2016 at 12:15, Martinx - ジェームズ > <thiagocmartinsc@gmail.com <mailto:thiagocmartinsc@gmail.com>> wrote: > > > > On 12 June 2016 at 11:30, Rosen, Rami <rami.rosen@intel.com > <mailto:rami.rosen@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 <...> I did able to compile dpdk16.04 with 3.18.34-20.el6.x86_64, is the problem can be related to gcc version? For me both gcc 5.3.1 and 4.9.3 worked fine. Or for "max-inline-insns-single limit reached" issue you can try increasing the gcc limit: -finline-limit=n > 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
On 16 June 2016 at 11:31, Ferruh Yigit <ferruh.yigit@intel.com> wrote: > On 6/15/2016 7:59 PM, Martinx - ジェームズ wrote: > > On 13 June 2016 at 12:15, Martinx - ジェームズ > > <thiagocmartinsc@gmail.com <mailto:thiagocmartinsc@gmail.com>> wrote: > > > > > > > > On 12 June 2016 at 11:30, Rosen, Rami <rami.rosen@intel.com > > <mailto:rami.rosen@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 > <...> > > I did able to compile dpdk16.04 with 3.18.34-20.el6.x86_64, is the > problem can be related to gcc version? For me both gcc 5.3.1 and 4.9.3 > worked fine. > > Or for "max-inline-insns-single limit reached" issue you can try > increasing the gcc limit: -finline-limit=n > > Hey Ferruh, I'm facing this "max-inline-insns-single limit reached" problem now (while trying to compile DPDK-16.04 on "3.18.34-20.el6.x86_64". So, as you suggested, I changed the limit from 100 to 400, here: dpdk-16.04/lib/librte_eal/linuxapp/igb_uio/Makefile ...and it worked! The CentOS 6.8 "centos-xen-release" YUM/RPM package brings Linux 3.18 to it, a new life for an old O.S... That's good... :-) Thanks! Thiago > 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 > >
--- 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)