From: "Martinx - ジェームズ" <thiagocmartinsc@gmail.com>
To: "Rosen, Rami" <rami.rosen@intel.com>
Cc: "Yigit, Ferruh" <ferruh.yigit@intel.com>, dev <dev@dpdk.org>
Subject: Re: [dpdk-dev] Can't build DPDK-16.04 on CentOS 6.8
Date: Wed, 15 Jun 2016 14:59:05 -0400 [thread overview]
Message-ID: <CAJSM8J3WG_iV1tyEj4AEpzdG_FWV59D=mG0iCv5VuSNmxq29eg@mail.gmail.com> (raw)
In-Reply-To: <CAJSM8J2v=NYE8Es-C4P4qWjAMY_TcK8=_WZk_OOptGm2=CchWg@mail.gmail.com>
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
next prev parent reply other threads:[~2016-06-15 18:59 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 - ジェームズ [this message]
2016-06-15 20:27 ` Murali Krishna
2016-06-16 15:31 ` Ferruh Yigit
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='CAJSM8J3WG_iV1tyEj4AEpzdG_FWV59D=mG0iCv5VuSNmxq29eg@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).