From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wj0-f194.google.com (mail-wj0-f194.google.com [209.85.210.194]) by dpdk.org (Postfix) with ESMTP id 064033DC for ; Sun, 18 Dec 2016 17:06:09 +0100 (CET) Received: by mail-wj0-f194.google.com with SMTP id xy5so20573604wjc.1 for ; Sun, 18 Dec 2016 08:06:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=fzgdTkCCFW6DTx7Lfhch0TS+uVp/TvL2uNRlKqVQRc0=; b=a2POu2txZik4mUj9uE2Oi8i5NITgeKND/WNUB5DLxhYp2gqzWkFgp9TsskMENlCoge +WtxXG3o7rGcnPPQqz1i4ZEMyUwZWM9RYIO2kJHzWCbuIEp5AnxGEowNiun/R4n9RUbi +dOEeo6v6sHefDvQAx4SUQiVA+/jtFvxhWODQc1z7M4+4Q8JkKXxuvZYynw/5e7MTwin aTf/u63OFYPbTz2hCcNs+0+XDTTnf6Ub6zDsSrI+lqsOsBS7rWaiwnWpXDp6JJm+fYNX MhvyhfjN79WlLzba40FN5y0mqbK6qtCd5VM0EWCE5GvBlRMP0Hc4O9UsrfMxYlKPVbrx M/Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=fzgdTkCCFW6DTx7Lfhch0TS+uVp/TvL2uNRlKqVQRc0=; b=IorFM5DB9q3fAg3mwYL/xKq6zZTbne2d0Gft0n8GMIne8K9/V2GqJ5HG26bBYpVheM 4fIg+CoZeVtURqP39djeen6DuCssO3Jwc9SspXs0bjDstXtKRU6h66sbeQ5bWhEvI4Fk NyIxbIuHNUP1YU8FMHS90nMfdPZRtzSuKt5AfP19zn7ET7A6G4ohDBDtNve1wnSviCuG ebdLFIxKlQB49fFLpfoyS3MsqkM5WM3hC43A8MczCtOFDrvAhGbogCp3oztcbdbJKHzI hO3l9aRs/l6JX8ZOZYy0tsmMI5zTLi3ImnNTJH0UML8cbtpkrE5V7K/1ZknxkGTwJmI0 opFg== X-Gm-Message-State: AIkVDXJp8CRLnFWHtQROgPcru1i/qTTSWjT4md7DebJ0BiihVjESBMBfzeiXoipbnnAAni2BGzLYnnzoRYMfkg== X-Received: by 10.194.71.228 with SMTP id y4mr12167884wju.136.1482077168638; Sun, 18 Dec 2016 08:06:08 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.151.131 with HTTP; Sun, 18 Dec 2016 08:06:07 -0800 (PST) In-Reply-To: References: <20160818160546.GS31423@6wind.com> From: george.dit@gmail.com Date: Sun, 18 Dec 2016 17:06:07 +0100 Message-ID: To: Olga Shern Cc: "dev@dpdk.org" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] ConnectX4 100GbE - Compilation problem X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Dec 2016 16:06:09 -0000 Hi again, I have a follow up question. I noticed that when I compile DPDK with CONFIG_RTE_LIBRTE_MLX5_PMD=3Dy, the compilation fate depends upon the OFED version that I have. To become more clear, with DPDK 16.11 and OFED 3.4-2.0.0.0 it compiles, but DPDK 16.07 and the same OFED fails with: =3D=3D Build drivers/net/mlx5 CC mlx5.o PMDINFO mlx5.o.pmd.c CC mlx5.o.pmd.o LD mlx5.o CC mlx5_rxq.o CC mlx5_txq.o CC mlx5_rxtx.o In file included from /opt/dpdk/drivers/net/mlx5/mlx5.h:41:0, from /opt/dpdk/drivers/net/mlx5/mlx5_rxtx.c:65: /opt/dpdk/drivers/net/mlx5/mlx5_rxtx.c: In function =E2=80=98mlx5_mpw_new= =E2=80=99: /opt/dpdk/drivers/net/mlx5/mlx5_rxtx.c:911:9: error: =E2=80=98MLX5_OPCODE_L= SO_MPW=E2=80=99 undeclared (first use in this function) MLX5_OPCODE_LSO_MPW); ^ /opt/dpdk/drivers/net/mlx5/mlx5_rxtx.c:911:9: note: each undeclared identifier is reported only once for each function it appears in /opt/dpdk/drivers/net/mlx5/mlx5_rxtx.c: In function =E2=80=98mlx5_mpw_inlin= e_new=E2=80=99: /opt/dpdk/drivers/net/mlx5/mlx5_rxtx.c:1110:13: error: =E2=80=98MLX5_OPCODE_LSO_MPW=E2=80=99 undeclared (first use in this functio= n) MLX5_OPCODE_LSO_MPW); ^ /opt/dpdk/mk/internal/rte.compile-pre.mk:138: recipe for target 'mlx5_rxtx.o' failed make[6]: *** [mlx5_rxtx.o] Error 1 /opt/dpdk/mk/rte.subdir.mk:61: recipe for target 'mlx5' failed make[5]: *** [mlx5] Error 2 /opt/dpdk/mk/rte.subdir.mk:61: recipe for target 'net' failed make[4]: *** [net] Error 2 /opt/dpdk/mk/rte.sdkbuild.mk:78: recipe for target 'drivers' failed make[3]: *** [drivers] Error 2 /opt/dpdk/mk/rte.sdkroot.mk:123: recipe for target 'all' failed make[2]: *** [all] Error 2 /opt/dpdk/mk/rte.sdkinstall.mk:84: recipe for target 'pre_install' failed make[1]: *** [pre_install] Error 2 /opt/dpdk/mk/rte.sdkroot.mk:98: recipe for target 'install' failed make: *** [install] Error 2 Is there a way to have DPDK compiled with MLX5 support across a variety of DPDK versions (i.e, from 2.2.0 up to 16.11)? Thanks in advance and best regards, Georgios On Sun, Dec 18, 2016 at 8:58 AM, wrote: > Hi Olga, > > That was the issue indeed, thank you very much! > > Best regards, > Georgios > > On Sat, Dec 17, 2016 at 10:26 PM, Olga Shern wrote: > >> Hi Georgios, >> >> Did you install MLNX_OFED? >> You probably missing libmlx5-devel package >> >> Best Regards, >> Olga >> >> -----Original Message----- >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of george.dit@gmail.co= m >> Sent: Friday, December 16, 2016 4:46 PM >> To: Georgios Katsikas ; dev@dpdk.org >> Subject: Re: [dpdk-dev] ConnectX4 100GbE - Compilation problem >> >> Hi all, >> >> I am coming back to you regarding the Mellanox Connectx4 100Gbps DPDK >> driver. >> We exchanged some e-mails last summer and I managed to compile the >> DPDK-based Mellanox driver using DPDK 16.07 on top of Ubuntu server >> 16.04.01. >> >> A few days ago, I installed a fresh Ubuntu server 16.04.1 on my machine >> and attempted to re-install DPDK. >> This time, DPDK does not compile because of the following error: >> \=3D=3D Build drivers/net/mlx5 >> CC mlx5.o >> In file included from /opt/dpdk/drivers/net/mlx5/mlx5.h:67:0, >> from /opt/dpdk/drivers/net/mlx5/mlx5.c:66: >> /opt/dpdk/drivers/net/mlx5/mlx5_rxtx.h:46:32: fatal error: >> infiniband/mlx5_hw.h: No such file or directory compilation terminated. >> /opt/dpdk/mk/internal/rte.compile-pre.mk:138: recipe for target 'mlx5.o' >> failed >> make[6]: *** [mlx5.o] Error 1 >> /opt/dpdk/mk/rte.subdir.mk:61: recipe for target 'mlx5' failed >> make[5]: *** [mlx5] Error 2 >> /opt/dpdk/mk/rte.subdir.mk:61: recipe for target 'net' failed >> make[4]: *** [net] Error 2 >> /opt/dpdk/mk/rte.sdkbuild.mk:78: recipe for target 'drivers' failed >> make[3]: *** [drivers] Error 2 >> /opt/dpdk/mk/rte.sdkroot.mk:126: recipe for target 'all' failed >> make[2]: *** [all] Error 2 >> /opt/dpdk/mk/rte.sdkinstall.mk:85: recipe for target 'pre_install' faile= d >> make[1]: *** [pre_install] Error 2 >> /opt/dpdk/mk/rte.sdkroot.mk:101: recipe for target 'install' failed >> make: *** [install] Error 2 >> [ ERROR] [ CheckStatus] Command make install failed >> >> I tried 2 different kernels (4.4 and 4.8) both compiled from sources and >> I also tried 3 different DPDk versions (16.04/07/11) but they all get st= uck >> to this point. >> The way I configure DPDK is via config/common_base, where I set >> CONFIG_RTE_LIBRTE_MLX5_PMD=3Dy. >> The file infiniband/mlx5_hw.h does not exist in my system although I hav= e >> installed libmlx5. >> >> Do you know why does this happen now? >> >> Thanks in advance and best regards, >> Georgios >> >> On Thu, Aug 18, 2016 at 7:35 PM, wrote: >> >> > Hi Adrien, >> > >> > Thanks for the prompt reply! >> > You are right, I didn't go via the DPDK route, in the hope that >> > Mellanox will provide the exact source and configuration. >> > DPDK 16.07 from dpdk.org works like a charm and my NIC is in PMD mode, >> > thanks a lot for your guidance! >> > >> > Best regards, >> > Georgios >> > >> > On Thu, Aug 18, 2016 at 6:05 PM, Adrien Mazarguil < >> > adrien.mazarguil@6wind.com> wrote: >> > >> >> Hi George, >> >> >> >> On Thu, Aug 18, 2016 at 05:41:38PM +0200, george.dit@gmail.com wrote: >> >> > Hi, >> >> > >> >> > I have a single port Mellanox ConnectX 4 100GbE NIC and I want to >> >> > test >> >> its >> >> > Rx/Tx capabilites using DPDK. >> >> > My system runs a Linux kernel 4.4 compiled from sources. >> >> > >> >> > I found the PMD driver for this NIC as provided by Mellanox here >> >> > > >> 9&mtag=3Dpmd_for_dpdk> >> >> > . >> >> > Following this >> >> > > >> DPDK_Quick_Start_Guide_v2.2_2.7.pdf> >> >> > guideline, I put my NIC in Ethernet mode, configured the 3 options >> >> > regarding mlx5 in the config/common_linuxapp file and applied 'make >> >> install >> >> > T=3Dx86_64-native-linuxapp-gcc'. >> >> >> >> Please note this is a third party package maintained by Mellanox, >> >> therefore this mailing list is not the right place to discuss related >> >> errors, unless they can be reproduced with a version downloaded from >> >> dpdk.org. >> >> >> >> > Then, I stumbled upon a compilation problem in the mlx4 module. >> >> > The compiler's output is as follows: >> >> > >> >> > =3D=3D Build drivers/net/mlx4 >> >> > CC mlx4.o >> >> > In file included from /usr/include/linux/if.h:31:0, >> >> > from /opt/MLNX_DPDK_2.2_2.7/drivers >> >> /net/mlx4/mlx4.c:57: >> >> > /usr/include/linux/hdlc/ioctl.h:73:14: error: =E2=80=98IFNAMSIZ=E2= =80=99 undeclared >> >> here >> >> > (not in a function) >> >> > char master[IFNAMSIZ]; /* Name of master FRAD device */ >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:612:53: error: >> >> > =E2=80=98struct ifreq=E2=80=99 declared inside parameter list [-Wer= ror] >> >> > priv_ifreq(const struct priv *priv, int req, struct ifreq *ifr) >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:612:53: error: its >> >> scope is >> >> > only this definition or declaration, which is probably not what you >> >> > want [-Werror] >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function >> >> =E2=80=98priv_ifreq=E2=80=99: >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:619:32: error: >> >> dereferencing >> >> > pointer to incomplete type =E2=80=98struct ifreq=E2=80=99 >> >> > if (priv_get_ifname(priv, &ifr->ifr_name) =3D=3D 0) >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function >> >> =E2=80=98rxq_setup=E2=80=99: >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:3735:29: error: >> >> > unused parameter =E2=80=98inactive=E2=80=99 [-Werror=3Dunused-param= eter] >> >> > unsigned int socket, int inactive, const struct rte_eth_rxconf >> >> *conf, >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function >> >> > =E2=80=98mlx4_link_update_unlocked=E2=80=99: >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4712:15: error: >> >> > storage >> >> size >> >> > of =E2=80=98ifr=E2=80=99 isn=E2=80=99t known >> >> > struct ifreq ifr; >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4724:43: error: >> =E2=80=98IFF_UP=E2=80=99 >> >> > undeclared (first use in this function) >> >> > dev_link.link_status =3D ((ifr.ifr_flags & IFF_UP) && >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4724:43: note: each >> >> > undeclared identifier is reported only once for each function it >> >> appears in >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4725:22: error: >> >> > =E2=80=98IFF_RUNNING=E2=80=99 undeclared (first use in this functio= n) >> >> > (ifr.ifr_flags & IFF_RUNNING)); >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4712:15: error: >> >> > unused variable =E2=80=98ifr=E2=80=99 [-Werror=3Dunused-variable] >> >> > struct ifreq ifr; >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function >> >> > =E2=80=98mlx4_dev_get_flow_ctrl=E2=80=99: >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4880:15: error: >> >> > storage >> >> size >> >> > of =E2=80=98ifr=E2=80=99 isn=E2=80=99t known >> >> > struct ifreq ifr; >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4880:15: error: >> >> > unused variable =E2=80=98ifr=E2=80=99 [-Werror=3Dunused-variable] >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function >> >> > =E2=80=98mlx4_dev_set_flow_ctrl=E2=80=99: >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4930:15: error: >> >> > storage >> >> size >> >> > of =E2=80=98ifr=E2=80=99 isn=E2=80=99t known >> >> > struct ifreq ifr; >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:4930:15: error: >> >> > unused variable =E2=80=98ifr=E2=80=99 [-Werror=3Dunused-variable] >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function >> >> =E2=80=98priv_get_mac=E2=80=99: >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:5184:15: error: >> >> > storage >> >> size >> >> > of =E2=80=98request=E2=80=99 isn=E2=80=99t known >> >> > struct ifreq request; >> >> > ^ >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:5184:15: error: >> >> > unused variable =E2=80=98request=E2=80=99 [-Werror=3Dunused-variabl= e] >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c: In function >> >> > =E2=80=98mlx4_pci_devinit=E2=80=99: >> >> > /opt/MLNX_DPDK_2.2_2.7/drivers/net/mlx4/mlx4.c:5725:25: error: >> =E2=80=98IFF_UP=E2=80=99 >> >> > undeclared (first use in this function) >> >> > priv_set_flags(priv, ~IFF_UP, IFF_UP); >> >> > ^ >> >> > cc1: all warnings being treated as errors >> >> > /opt/MLNX_DPDK_2.2_2.7/mk/internal/rte.compile-pre.mk:126: recipe >> >> > for target 'mlx4.o' failed >> >> > >> >> > Iwould appreciate any suggestions and guidance. >> >> >> >> Well fortunately these errors are also present in v2.2.0 and should >> >> have been addressed since v16.07 by the following commit: >> >> >> >> http://dpdk.org/browse/dpdk/commit/?id=3Dd06c608c013c36711e7a >> >> 693b3fece68a93ae4369 >> >> >> >> You can either upgrade to v16.07, back-port this commit yourself or >> >> wait for an update from Mellanox. >> >> >> >> -- >> >> Adrien Mazarguil >> >> 6WIND >> >> >> > >> > >> > >> > -- >> > Georgios Katsikas >> > Ph.D. Student and Research Assistant >> > Network Systems Lab (NSL) >> > >> > >> > >> > *E-Mail:* george .dit@gmail.com >> > *Web Site:* http://www.di.uoa.gr/~katsikas/ >> > >> > >> >> >> >> -- >> Georgios Katsikas >> Ph.D. Student and Research Assistant >> Network Systems Lab (NSL) >> >> >> >> *E-Mail:* george .dit@gmail.com >> *Web Site:* http://www.di.uoa.gr/~katsikas/ < >> http://people.networks.imdea.org/~george_katsikas/index.html> >> > > > > -- > Georgios Katsikas > Ph.D. Student and Research Assistant > Network Systems Lab (NSL) > > > > *E-Mail:* george .dit@gmail.com > *Web Site:* http://www.di.uoa.gr/~katsikas/ > > --=20 Georgios Katsikas Ph.D. Student and Research Assistant Network Systems Lab (NSL) *E-Mail:* george .dit@gmail.com *Web Site:* http://www.di.uoa.gr/~katsikas/