DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: "Martinx - ジェームズ" <thiagocmartinsc@gmail.com>,
	"Rosen, Rami" <rami.rosen@intel.com>
Cc: dev <dev@dpdk.org>
Subject: Re: [dpdk-dev] Can't build DPDK-16.04 on CentOS 6.8
Date: Thu, 16 Jun 2016 16:31:17 +0100	[thread overview]
Message-ID: <5762C645.4000509@intel.com> (raw)
In-Reply-To: <CAJSM8J3WG_iV1tyEj4AEpzdG_FWV59D=mG0iCv5VuSNmxq29eg@mail.gmail.com>

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

  parent reply	other threads:[~2016-06-16 15:31 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 [this message]
2016-06-29  2:38             ` Martinx - ジェームズ
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=5762C645.4000509@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=dev@dpdk.org \
    --cc=rami.rosen@intel.com \
    --cc=thiagocmartinsc@gmail.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).