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

You could imagine that you could be more clever estimating the chance of a 
conflict.
In this particular case though, there was no overlap in changeset, so I'd 
imagine that automatic detection would have been hard.
Let's assume it's a rare event.

Cheers,
Ole
> 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] On Behalf Of Dave 
>> Wallace
>> Sent: 6 marca 2018 00:19
>> To: 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 at http://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 clone ssh://<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
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Links:

You receive all messages sent to this group.

View/Reply Online (#8439): https://lists.fd.io/g/vpp-dev/message/8439
View All Messages In Topic (10): https://lists.fd.io/g/vpp-dev/topic/13284116
Mute This Topic: https://lists.fd.io/mt/13284116/21656
New Topic: https://lists.fd.io/g/vpp-dev/post

Change Your Subscription: https://lists.fd.io/g/vpp-dev/editsub/21656
Group Home: https://lists.fd.io/g/vpp-dev
Contact Group Owner: vpp-dev+ow...@lists.fd.io
Terms of Service: https://lists.fd.io/static/tos
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub
-=-=-=-=-=-=-=-=-=-=-=-

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to