From: "Martinx - ジェームズ" <thiagocmartinsc@gmail.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>
Cc: "Rosen, Rami" <rami.rosen@intel.com>, dev <dev@dpdk.org>
Subject: Re: [dpdk-dev] Can't build DPDK-16.04 on CentOS 6.8
Date: Tue, 28 Jun 2016 22:38:43 -0400 [thread overview]
Message-ID: <CAJSM8J3uOVmvstu30u25JtG65Y266WaDhUMdyfDpf-+ALSFAew@mail.gmail.com> (raw)
In-Reply-To: <5762C645.4000509@intel.com>
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
>
>
next prev parent reply other threads:[~2016-06-29 2:39 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-01 20:07 Martinx - ジェームズ
2016-06-03 10:45 ` Ferruh Yigit
2016-06-03 15:17 ` Martinx - ジェームズ
2016-06-12 15:30 ` Rosen, Rami
2016-06-13 16:15 ` Martinx - ジェームズ
2016-06-15 18:59 ` Martinx - ジェームズ
2016-06-15 20:27 ` Murali Krishna
2016-06-16 15:31 ` Ferruh Yigit
2016-06-29 2:38 ` Martinx - ジェームズ [this message]
2016-06-15 15:57 ` [dpdk-dev] [PATCH] igb_uio: fix build with backported kernel Ferruh Yigit
2016-06-15 15:59 ` Ferruh Yigit
2016-06-16 15:45 ` Martinx - ジェームズ
2016-06-17 9:15 ` Ferruh Yigit
2016-06-21 14:12 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAJSM8J3uOVmvstu30u25JtG65Y266WaDhUMdyfDpf-+ALSFAew@mail.gmail.com \
--to=thiagocmartinsc@gmail.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=rami.rosen@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).