Marek,

Thanks for the clarification.
I'm trying to understand if there is a way to avoid the branch build breakage.


Cheers,
-daw-

On 3/6/2018 11:12 AM, Marek Gradzki -X (mgradzki - PANTHEON TECHNOLOGIES@Cisco) wrote:

Dave,

these patches were not dependent, but rather in conflict.

And this is the responsibility of merge job to detect them.

If such situation happens patch should be reverted.

So I think everything was done right.

I am totally fine with “Rebase if necessary”.

But personally I often rebase patches before submitting.

Especially these that might affect several components.

Regards,

Marek

*From:*vpp-dev@lists.fd.io [mailto:vpp-dev@lists.fd.io] *On Behalf Of *Dave Wallace
*Sent:* 6 marca 2018 16:59
*To:* vpp-dev@lists.fd.io
*Subject:* Re: [vpp-dev] VPP DPDK build failure with Mellanox interface(aarch64)

Hi Marek,

Thanks for the analysis.  VPP's gerrit "Submit Type" is "Rebase if Necessary".  This means that occasionally we may encounter build breakage due to dependent patches.  Changing the type to "Fast forward only" is NOT worth the extra time/effort to avoid this.

In general, dependent patches are not recommended, but sometimes it can be better to separate the change sets into smaller patches. It would also be helpful if the merge jobs would send an email to the reviewers list on the patch.

Thanks,
-daw-

On 3/6/18 4:20 AM, Marek Gradzki -X (mgradzki - PANTHEON TECHNOLOGIES at Cisco) wrote:

    Hi,

    verify of 10920 would fail if it was rebased before submission.

    JVPP generation was updated recently to use service definitions

    Instead of inferring message type based on its name.

    10920 was verified against previous version.

    Here is updated version of 10920 with updated service definitions:

    https://gerrit.fd.io/r/#/c/10973/

    Regards,

    Marek

    *From:*vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
    [mailto:vpp-dev@lists.fd.io] *On Behalf Of *Dave Wallace
    *Sent:* 6 marca 2018 00:19
    *To:* vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
    *Subject:* Re: [vpp-dev] VPP DPDK build failure with Mellanox
    interface(aarch64)

    Sirshak,

    The JVPP error was caused by a patch (10920) that somehow passed
    the Verify job, but failed during the merge job.  I have just
    merged the patch (10965) which reverts the patch which introduced
    the JVPP build errors.

    Thanks,
    -daw-

    On 3/5/2018 5:44 PM, Sirshak Das wrote:

        Hi Marco,

        Thanks for replying.

        I am not sure if you read the last part of my email:

                Finally what is strange is if I copy dpdk-18.02.tar.gz to 
seperate

                location and turn MLx5 config and build this builds fine.

                Build drivers/net/mlx5

                   CC mlx5.o

                   PMDINFO mlx5.o.pmd.c

                   CC mlx5.o.pmd.o

                   LD mlx5.o

                   CC mlx5_glue.o

                   CC mlx5_rxq.o

                   CC mlx5_txq.o

                   CC mlx5_rxtx.o

                   CC mlx5_rxtx_vec.o

                   CC mlx5_trigger.o

                   CC mlx5_ethdev.o

                   CC mlx5_mac.o

                   CC mlx5_rxmode.o

                   CC mlx5_vlan.o

                   CC mlx5_stats.o

                   CC mlx5_rss.o

                   CC mlx5_mr.o

                   CC mlx5_flow.o

                   CC mlx5_socket.o

                   AR librte_pmd_mlx5.a

                   INSTALL-LIB librte_pmd_mlx5.a

        I dont know if Kernel Version is still an issue as dpdk(mlx5 pmd) works

        for me on its own.

        So in order to go past the issue I tried this change to vpp.mk:

        # DPDK configuration parameters

        vpp_uses_dpdk_mlx5_pmd = yes

        vpp_uses_external_dpdk = yes

        vpp_dpdk_inc_dir = <DPDK INSTALL DIR>/dpdk-18.02/build/include

        vpp_dpdk_lib_dir = <DPDK INSTALL DIR>/dpdk-18.02/build/lib

        vpp_dpdk_shared_lib = yes

        I was able to go past the issue but currently I am facing issue with

        jvpp building:

        $ javac -version

        javac 1.8.0_161

        $ java -version

        java version "1.8.0_161"

        Java(TM) SE Runtime Environment (build 1.8.0_161-b12)

        Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

        Entering directory 
'/home/sirdas/code/common/vpp/build-root/build-vpp-native/vpp/vpp-api/java'

           JVPP GEN  jvpp-registry/io_fd_vpp_jvpp_VppJNIConnection.h

           JVPP GEN  jvpp-gtpu/io_fd_vpp_jvpp_gtpu_JVppGtpuImpl.h

           JVPP GEN  jvpp-pppoe/io_fd_vpp_jvpp_pppoe_JVppPppoeImpl.h

           JVPP GEN  jvpp-core/io_fd_vpp_jvpp_core_JVppCoreImpl.h

           JVPP GEN  jvpp-ioampot/io_fd_vpp_jvpp_ioampot_JVppIoampotImpl.h

           JVPP GEN  jvpp-acl/io_fd_vpp_jvpp_acl_JVppAclImpl.h

           JVPP GEN  
jvpp-ioamexport/io_fd_vpp_jvpp_ioamexport_JVppIoamexportImpl.h

           JVPP GEN  jvpp-ioamtrace/io_fd_vpp_jvpp_ioamtrace_JVppIoamtraceImpl.h

           JVPP GEN  jvpp-nat/io_fd_vpp_jvpp_nat_JVppNatImpl.h

        
jvpp-core/target/io/fd/vpp/jvpp/core/callfacade/CallbackJVppCoreFacade.java:2177:
 error: cannot find symbol

             public final void 
wantIp4NbrStats(io.fd.vpp.jvpp.core.dto.WantIp4NbrStats request, 
io.fd.vpp.jvpp.core.callback.WantIp4NbrStatsCallback callback) throws 
io.fd.vpp.jvpp.VppInvocationException {

                                                                                
                                            ^

           symbol:   class WantIp4NbrStatsCallback

           location: package io.fd.vpp.jvpp.core.callback

        
jvpp-core/target/io/fd/vpp/jvpp/core/callfacade/CallbackJVppCoreFacade.java:2183:
 error: cannot find symbol

             public final void 
wantIp6NbrStats(io.fd.vpp.jvpp.core.dto.WantIp6NbrStats request, 
io.fd.vpp.jvpp.core.callback.WantIp6NbrStatsCallback callback) throws 
io.fd.vpp.jvpp.VppInvocationException {

                                                                                
                                            ^

           symbol:   class WantIp6NbrStatsCallback

           location: package io.fd.vpp.jvpp.core.callback

        
jvpp-core/target/io/fd/vpp/jvpp/core/callfacade/CallbackJVppCore.java:368: 
error: cannot find symbol

             void wantIp4NbrStats(io.fd.vpp.jvpp.core.dto.WantIp4NbrStats 
request, io.fd.vpp.jvpp.core.callback.WantIp4NbrStatsCallback callback) throws 
io.fd.vpp.jvpp.VppInvocationException;

                                                                                
                               ^

           symbol:   class WantIp4NbrStatsCallback

           location: package io.fd.vpp.jvpp.core.callback

        
jvpp-core/target/io/fd/vpp/jvpp/core/callfacade/CallbackJVppCore.java:369: 
error: cannot find symbol

             void wantIp6NbrStats(io.fd.vpp.jvpp.core.dto.WantIp6NbrStats 
request, io.fd.vpp.jvpp.core.callback.WantIp6NbrStatsCallback callback) throws 
io.fd.vpp.jvpp.VppInvocationException;

                                                                                
                               ^

           symbol:   class WantIp6NbrStatsCallback

           location: package io.fd.vpp.jvpp.core.callback

        
jvpp-core/target/io/fd/vpp/jvpp/core/future/FutureJVppCoreFacade.java:1815: 
error: incompatible types: inference variable REPLY has incompatible bounds

                 return send(request);

                            ^

             equality constraints: WantIp4NbrStats

             upper bounds: JVppReply<REQ>

           where REPLY,REQ are type-variables:

             REPLY extends JVppReply<REQ> declared in method 
<REQ,REPLY>send(REQ)

             REQ extends JVppRequest declared in method <REQ,REPLY>send(REQ)

        
jvpp-core/target/io/fd/vpp/jvpp/core/future/FutureJVppCoreFacade.java:1820: 
error: incompatible types: inference variable REPLY has incompatible bounds

                 return send(request);

                            ^

             equality constraints: WantIp6NbrStats

             upper bounds: JVppReply<REQ>

           where REPLY,REQ are type-variables:

             REPLY extends JVppReply<REQ> declared in method 
<REQ,REPLY>send(REQ)

             REQ extends JVppRequest declared in method <REQ,REPLY>send(REQ)

        If you or anybody else could help me with the issue it will be great.

        Thank you

        Sirshak Das

        Marco Varlese writes:

            Hi Sirshak,

            Can you please take a look at this thread:

            https://lists.fd.io/g/vpp-dev/message/8219

            Also, take a look athttp://dpdk.org/doc/guides/nics/mlx5.html  for 
detailed

            explanations and steps for DPDK to work with Mellanox NICs...

            Likely, it's a kernel issue: for Mellanox latest PMD drivers (DPDK 
17.11 and

            above) you're required to have 4.15.x whilst I see you're running 
4.10.x

            Hope this helps.

            Cheers,

            Marco

            On Thu, 2018-03-01 at 18:02 -0600, Sirshak Das wrote:

                Hi all,

                I am facing an issue with building VPP with DPDK (Mellanox 
Drivers

                enabled) on aarch64.

                The OFED version installed:

                $ ofed_info -s

                MLNX_OFED_LINUX-4.2-1.2.0.0:

                Kernel Version:

                $ uname -r

                4.10.0-28-generic

                Operating System Version:

                Ubuntu 16.04.4 LTS (GNU/Linux 4.10.0-28-generic aarch64)

                gcc version:

                gcc version 5.4.0 20160609 (Ubuntu/Linaro 
5.4.0-6ubuntu1~16.04.9)

                Target Machine:

                Qualcomm Centriq

                lspci:

                0004:01:00.0 Ethernet controller: Mellanox Technologies MT27700 
Family

                [ConnectX-4]

                Steps I followed:

                $ git clonessh://<my-user-id>@gerrit.fd.io:29418/vpp.git

                $ cd vpp/

                $ sed -i '/vpp_uses_dpdk_mlx5_pmd/s/^# //g' 
build-data/platforms/vpp.mk

                $ make dpdk-install-dev DPDK_MLX5_PMD=y

                <INSTALL DIR>/vpp/dpdk/deb/_build/dpdk-

                18.02/drivers/net/mlx5/mlx5_flow.c:38:8: error: redefinition of 
‘struct

                ibv_flow_spec_counter_action’

                  struct ibv_flow_spec_counter_action {

                         ^

                In file included from <INSTALL DIR>/vpp/dpdk/deb/_build/dpdk-

                18.02/drivers/net/mlx5/mlx5_flow.c:14:0:

                /usr/include/infiniband/verbs.h:1360:8: note: originally 
defined here

                  struct ibv_flow_spec_counter_action {

                By looking at this file:

                <INSTALL

                DIR>/vpp/dpdk/deb/_build/dpdk-18.02/arm64-armv8a-linuxapp-

                gcc/build/drivers/net/mlx5/mlx5_autoconf.h

                Which looks like this:

                /* HAVE_IBV_DEVICE_VXLAN_SUPPORT is not defined.

                */

                /* HAVE_IBV_WQ_FLAG_RX_END_PADDING is not defined.

                */

                /* HAVE_IBV_MLX5_MOD_MPW is not defined.

                */

                /* HAVE_IBV_MLX5_MOD_CQE_128B_COMP is not defined.

                */

                /* HAVE_ETHTOOL_LINK_MODE_25G is not defined. */

                /* HAVE_ETHTOOL_LINK_MODE_50G is not defined.

                */

                /* HAVE_ETHTOOL_LINK_MODE_100G is not defined.

                */

                /* HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT is not defined. */

                So I moved my attentions to this file:

                <INSTALL 
DIR>/vpp/dpdk/deb/_build/dpdk-18.02/drivers/net/mlx5/Makefile

                This whole section fails:

                mlx5_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-

                h.sh

                         $Q $(RM) -f --

                '$@'

                         $Q sh -- '$<' '$@'

                \

                                 HAVE_IBV_DEVICE_VXLAN_SUPPORT

                \

                                 infiniband/verbs.h

                \

                                 enum IBV_DEVICE_VXLAN_SUPPORT

                \

                                 $(AUTOCONF_OUTPUT)

                         $Q sh -- '$<' '$@'

                \

                                 HAVE_IBV_WQ_FLAG_RX_END_PADDING

                \

                                 infiniband/verbs.h

                \

                                 enum IBV_WQ_FLAG_RX_END_PADDING

                \

                                 $(AUTOCONF_OUTPUT)

                         $Q sh -- '$<' '$@'

                \

                                 HAVE_IBV_MLX5_MOD_MPW

                \

                                 infiniband/mlx5dv.h

                \

                                 enum MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED

                \

                                 $(AUTOCONF_OUTPUT)

                         $Q sh -- '$<' '$@'

                \

                                 HAVE_IBV_MLX5_MOD_CQE_128B_COMP

                \

                                 infiniband/mlx5dv.h

                \

                                 enum MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP

                \

                                 $(AUTOCONF_OUTPUT)

                         $Q sh -- '$<' '$@'

                \

                                 HAVE_ETHTOOL_LINK_MODE_25G

                \

                                 /usr/include/linux/ethtool.h

                \

                                 enum ETHTOOL_LINK_MODE_25000baseCR_Full_BIT

                \

                                 $(AUTOCONF_OUTPUT)

                         $Q sh -- '$<' '$@'

                \

                                 HAVE_ETHTOOL_LINK_MODE_50G

                \

                                 /usr/include/linux/ethtool.h

                \

                                 enum ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT

                \

                                 $(AUTOCONF_OUTPUT)

                         $Q sh -- '$<' '$@'

                \

                                 HAVE_ETHTOOL_LINK_MODE_100G

                \

                                 /usr/include/linux/ethtool.h

                \

                                 enum ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT

                \

                                 $(AUTOCONF_OUTPUT)

                         $Q sh -- '$<' '$@'

                \

                                 HAVE_IBV_DEVICE_COUNTERS_SET_SUPPORT

                \

                                 infiniband/verbs.h

                \

                                 enum IBV_FLOW_SPEC_ACTION_COUNT

                \

                                 $(AUTOCONF_OUTPUT)

                Which ideally shouldnt because all these files exist:

                $ ls -l /usr/include/infiniband/

                total 156

                -rw-r--r-- 1 root root  1939 Nov 25 12:17 arch.h

                -rw-r--r-- 1 root root  2897 Nov 25 12:17 ib.h

                -rw-r--r-- 1 root root 27353 Nov 25 12:17 kern-abi.h

                -rw-r--r-- 1 root root 12895 Nov 25 12:17 mlx4dv.h

                -rw-r--r-- 1 root root 17121 Nov 25 12:17 mlx5dv.h

                -rw-r--r-- 1 root root  5694 Nov 25 12:17 opcode.h

                -rw-r--r-- 1 root root  4074 Nov 25 12:17 sa.h

                -rw-r--r-- 1 root root  1622 Nov 25 12:17 sa-kern-abi.h

                -rw-r--r-- 1 root root 67777 Nov 25 12:17 verbs.h

                $ ls -l /usr/include/linux/ethtool.h

                -rw-r--r-- 1 root root 65636 Feb 12 17:44 
/usr/include/linux/ethtool.h

                Finally what is strange is if I copy dpdk-18.02.tar.gz to 
seperate

                location and turn MLx5 config and build this builds fine.

                Build drivers/net/mlx5

                   CC mlx5.o

                   PMDINFO mlx5.o.pmd.c

                   CC mlx5.o.pmd.o

                   LD mlx5.o

                   CC mlx5_glue.o

                   CC mlx5_rxq.o

                   CC mlx5_txq.o

                   CC mlx5_rxtx.o

                   CC mlx5_rxtx_vec.o

                   CC mlx5_trigger.o

                   CC mlx5_ethdev.o

                   CC mlx5_mac.o

                   CC mlx5_rxmode.o

                   CC mlx5_vlan.o

                   CC mlx5_stats.o

                   CC mlx5_rss.o

                   CC mlx5_mr.o

                   CC mlx5_flow.o

                   CC mlx5_socket.o

                   AR librte_pmd_mlx5.a

                   INSTALL-LIB librte_pmd_mlx5.a

                I feel I am missing some trivial step in vpp build process 
please help

                me out I am new to vpp. Let me know if you need any more infor 
to debug

                this issue.

                Thank you

                Sirshak Das



Reply via email to