Hi Mohammed

Thanks a lot, I confirm that it worked well on branch stable/2101.

However on master (ae34872077c956aa34ee816b55ccb5c5f6ab40a1), I got the
following error:
$ make run
/home/pantheontech/dev/vpp_master/build-root/install-vpp_debug-native/vpp/bin/vpp:
symbol lookup error:
/home/pantheontech/dev/vpp_master/build-root/install-vpp_debug-native/vpp/lib/vpp_plugins/dpdk_plugin.so:
undefined symbol: ibv_fork_init

Following the same procedure as for stable/2101, compiling from the clean
workspace, having the only changes:
$ git diff
diff --git a/build/external/packages/dpdk.mk b/build/external/packages/
dpdk.mk
index c7eb0fc3f..f1663a1aa 100644
--- a/build/external/packages/dpdk.mk
+++ b/build/external/packages/dpdk.mk
@@ -14,9 +14,9 @@
 DPDK_PKTMBUF_HEADROOM        ?= 128
 DPDK_USE_LIBBSD              ?= n
 DPDK_DEBUG                   ?= n
-DPDK_MLX4_PMD                ?= n
-DPDK_MLX5_PMD                ?= n
-DPDK_MLX5_COMMON_PMD         ?= n
+DPDK_MLX4_PMD                := y
+DPDK_MLX5_PMD                := y
+DPDK_MLX5_COMMON_PMD         := y
 DPDK_TAP_PMD                 ?= n
 DPDK_FAILSAFE_PMD            ?= n
 DPDK_MACHINE                 ?= default

Best regards
Julius

On Fri, 16 Apr 2021 at 17:27, Mohammed Hawari <moham...@hawari.fr> wrote:

> Hi Julius,
>
> You don’t need any patch for Ubuntu it should work out of the box on
> 21.01… This patch is CentOS specific because the default libdir on CentOS
> is ‘lib64' (while it is ‘lib' on Ubuntu/Debian). On Ubuntu, you only need
> to edit dpdk.mk to enable MLX4_PMD, MLX5_PMD and MLX5_COMMON_PMD.
> Internally it works like this:
> - rdma-core (and the libibverbs *static* library) is built and installed
> in some internal staging directory
> (build-root/install-vpp-native/external/lib/).
> - DPDK is configured to be statically linked against this libibverb statis
> library, and is also statically built.
> - then the VPP dpdk plugin is statically linked against DPDK.
>
> The patch fixes the first step, as on CentOS, cmake will install the
> rdma-core libraries in build-root/install-vpp-native/external/lib64 while
> the DPDK build system will look for them in
> build-root/install-vpp-native/external/lib. Note that this patch is not
> “specific” to CentOS, but is *required* for CentOS support (and is merged
> in master).
>
> Best regards,
> Mohammed
>
> On 16 Apr 2021, at 16:55, Július Milan <jmilan....@gmail.com> wrote:
>
> Hi Mohammed
>
> I am trying to create the patch similar to yours:
> https://gerrit.fd.io/r/c/vpp/+/31876
> But being able to run on Ubuntu.
> Can you point me a bit? I would like to understand how your patch is
> CentOS specific.
> Probably it has something to do with linking of libibverbs.so into
> dpdk_plugin, which I was not able to achieve yet.
> Or am I completely wrong?
>
> Best regards
> Julius
>
> On Fri, 16 Apr 2021 at 09:49, Mohammed Hawari <moham...@hawari.fr> wrote:
>
>>
>> Hi Chetan,
>>
>> On 16 Apr 2021, at 07:04, chetan bhasin <chetan.bhasin...@gmail.com>
>> wrote:
>>
>> Hi Mohammed ,
>>
>> After applying the patch you have mentioned , I am no longer facing the
>> compilation issue.
>>
>> Thanks for your support.
>>
>> With Static RDMA linking , do we need to do anything extra while bringing
>> our application on the server having Mellanox Nic ?
>>
>>
>> No we don’t, it should work out of the box!
>>
>>
>> Thanks & Regards,
>>
>> Chetan
>>
>>
>> Regards
>>
>> Mohammed
>>
>>
>> On Wed, Apr 14, 2021 at 8:33 PM chetan bhasin via lists.fd.io
>> <chetan.bhasin017=gmail....@lists.fd.io> wrote:
>>
>>> Thanks a lot Mohammed!
>>>
>>> Let me try with the rdma-core and patch mentioned by you and
>>>
>>> Thanks,
>>> Chetan
>>>
>>> On Wed, Apr 14, 2021 at 6:20 PM Mohammed Hawari <moham...@hawari.fr>
>>> wrote:
>>>
>>>> Hi Chetan
>>>>
>>>> You are building DPDK with Mellanox support relying on dlopen and the
>>>> glue library which is fine. The default approach implemented in the VPP
>>>> build system consists of statically linking DPDK with the the libraries
>>>> provided by rdma-core (as it’s also built by the VPP build system). The
>>>> default approach should work fine, provided this patch
>>>> https://gerrit.fd.io/r/c/vpp/+/31876 is applied (specific to CentOS).
>>>> But what you should work just fine. Now the reason why  you need to comment
>>>> dpdk_depends is kind of mysterious here…
>>>>
>>>> Regards,
>>>>
>>>> Mohammed
>>>>
>>>> On 14 Apr 2021, at 10:07, chetan bhasin <chetan.bhasin...@gmail.com>
>>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I have to do the following to enable Mellanox compilation under
>>>> VPP21.01 with dpdk 20.11.
>>>>
>>>> If I dont comment rdma-core dependencies , it will lead to undefined
>>>> symbols .
>>>>
>>>> Can anybody please correct , is this the right way to do it?
>>>>
>>>> -DPDK_MLX4_PMD                ?= n
>>>> -DPDK_MLX5_PMD                ?= n
>>>> -DPDK_MLX5_COMMON_PMD         ?= n
>>>> *+DPDK_MLX4_PMD                := y*
>>>> *+DPDK_MLX5_PMD                := y*
>>>> *+DPDK_MLX5_COMMON_PMD         = y*
>>>>
>>>> -DPDK_MLX_IBV_LINK            ?= static
>>>> *+DPDK_MLX_IBV_LINK            := dlopen*
>>>>
>>>> -dpdk_depends                := rdma-core $(if $(ARCH_X86_64), ipsec-mb)
>>>> *+#dpdk_depends               := rdma-core $(if $(ARCH_X86_64),
>>>> ipsec-mb)*
>>>>
>>>> Thanks,
>>>> Chetan
>>>>
>>>> On Tue, Apr 6, 2021 at 4:10 PM chetan bhasin via lists.fd.io
>>>> <chetan.bhasin017=gmail....@lists.fd.io> wrote:
>>>>
>>>>> Thanks Guys !
>>>>>
>>>>> We have a requirement to compile vppp with DPDK mellanox driver .
>>>>>
>>>>> Right now issue what i understood is , when we compile vpp_2101  ,
>>>>> using make build-release , it builds mellanox , but when it is trying to
>>>>> install vpp-ext-dep rpm , it got failed because glue library created of
>>>>> mellanox has some undefined symbols ,
>>>>> For your reference , i have set following in dpdk.mk file
>>>>>
>>>>> -DPDK_MLX4_PMD                ?= n
>>>>> -DPDK_MLX5_PMD                ?= n
>>>>> +DPDK_MLX4_PMD                := y
>>>>> +DPDK_MLX5_PMD                := y
>>>>> -DPDK_MLX_IBV_LINK            ?= static
>>>>> +DPDK_MLX_IBV_LINK            := shared
>>>>>
>>>>>  please check below logs for reference-
>>>>>
>>>>> FAILED: drivers/net/mlx4/librte_net_mlx4_glue.so.21.0
>>>>> cc  -o drivers/net/mlx4/librte_net_mlx4_glue.so.21.0
>>>>> 'drivers/net/mlx4/8672f8e@@rte_net_mlx4_glue@sha/mlx4_glue.c.o'
>>>>> -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -shared -fPIC -Wl,--start-group
>>>>> -Wl,-soname,librte_net_mlx4_glue.so.21.0 -Wl,--no-as-needed -pthread -lm
>>>>> -ldl -lnuma -Wl,-export-dynamic -Wl,-h,librte_net_mlx4_glue.so.21.0
>>>>> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libmlx4.so
>>>>> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libibverbs.so
>>>>> -Wl,--end-group
>>>>> drivers/net/mlx4/8672f8e@@rte_net_mlx4_glue@sha/mlx4_glue.c.o: In
>>>>> function `mlx4_glue_reg_mr':
>>>>> mlx4_glue.c:(.text+0x277): undefined reference to `ibv_reg_mr_iova2'
>>>>> collect2: error: ld returned 1 exit status
>>>>> [8/547] Compiling C object 'drivers/a715181@@tmp_rte_net_mlx4@sta
>>>>> /net_mlx4_mlx4_flow.c.o'
>>>>>
>>>>> ninja: build stopped: subcommand failed.
>>>>>
>>>>> On Thu, Apr 1, 2021 at 4:33 PM Юрий Иванов <format_...@outlook.com>
>>>>> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Or you can use nativa rdma driver as written in this post and build
>>>>>> vpp as usual. 😉
>>>>>>
>>>>>> Regards.
>>>>>> ------------------------------
>>>>>> *От:* vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> от имени Mohammed
>>>>>> Hawari <moham...@hawari.fr>
>>>>>> *Отправлено:* 1 апреля 2021 г. 13:16
>>>>>> *Кому:* chetan bhasin <chetan.bhasin...@gmail.com>
>>>>>> *Копия:* vpp-dev <vpp-dev@lists.fd.io>
>>>>>> *Тема:* Re: [vpp-dev] How to enable Mellanox compilation in VPP 21.01
>>>>>>
>>>>>>
>>>>>> Hi Chetan,
>>>>>>
>>>>>> If you are using CentOS, I’d suggest to cherry-pick
>>>>>> https://gerrit.fd.io/r/c/vpp/+/31876. Also please change the dpdk.mk to
>>>>>> also set DPDK_MLX5_COMMON_PMD = y. I hope this solves your issue.
>>>>>> Otherwise, please consider using the rdma native driver that does not 
>>>>>> rely
>>>>>> on DPDK.
>>>>>>
>>>>>> Regards
>>>>>>
>>>>>> Mohammed
>>>>>>
>>>>>> On 30 Mar 2021, at 12:41, chetan bhasin <chetan.bhasin...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> Hello Everyone,
>>>>>>
>>>>>> I am upgrading to vpp 2101 . I am facing a compilation issue after
>>>>>> enabling Mellanox compilation in dpdk.mk .
>>>>>>
>>>>>> --- a/build/external/packages/dpdk.mk
>>>>>> +++ b/build/external/packages/dpdk.mk
>>>>>> @@ -14,8 +14,8 @@
>>>>>>  DPDK_PKTMBUF_HEADROOM        ?= 128
>>>>>>  DPDK_USE_LIBBSD              ?= n
>>>>>>  DPDK_DEBUG                   ?= n
>>>>>> *-DPDK_MLX4_PMD                ?= n*
>>>>>> *-DPDK_MLX5_PMD                ?= n*
>>>>>> *+DPDK_MLX4_PMD                ?= y*
>>>>>> *+DPDK_MLX5_PMD                ?= y*
>>>>>>  DPDK_MLX5_COMMON_PMD         ?= n
>>>>>>
>>>>>>
>>>>>> Getting below errors . Anybody please help here ?
>>>>>>
>>>>>> [1344/1846] Compiling C object 'drivers/a715181@@tmp_rte_net_nfp@sta
>>>>>> /net_nfp_nfpcore_nfp_nsp_cmds.c.o'
>>>>>> [1345/1846] Linking target drivers/librte_net_mlx4.so.21.0
>>>>>> FAILED: drivers/librte_net_mlx4.so.21.0
>>>>>> cc  -o drivers/librte_net_mlx4.so.21.0 'drivers/a715181@
>>>>>> @rte_net_mlx4@sha/meson-generated_.._rte_net_mlx4.pmd.c.o'
>>>>>> 'drivers/a715181@@tmp_r
>>>>>> te_net_mlx4@sta/net_mlx4_mlx4.c.o' 'drivers/a715181@
>>>>>> @tmp_rte_net_mlx4@sta/net_mlx4_mlx4_ethdev.c.o' 'drivers/a715181@
>>>>>> @tmp_rte_net_mlx4@sta
>>>>>> /net_mlx4_mlx4_flow.c.o' 
>>>>>> 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4_intr.c.o'
>>>>>> 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_ml
>>>>>> x4_mp.c.o' 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4_mr.c.o'
>>>>>> 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4_rxq.c.o' 'dri
>>>>>> vers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4_rxtx.c.o'
>>>>>> 'drivers/a715181@@tmp_rte_net_mlx4@sta/net_mlx4_mlx4_txq.c.o'
>>>>>> 'drivers/a715181@
>>>>>> @tmp_rte_net_mlx4@sta/net_mlx4_mlx4_utils.c.o' 'drivers/a715181@
>>>>>> @tmp_rte_net_mlx4@sta/net_mlx4_mlx4_glue.c.o' -Wl,--as-needed
>>>>>> -Wl,--no-und
>>>>>> efined -Wl,-O1 -shared -fPIC -Wl,--start-group
>>>>>> -Wl,-soname,librte_net_mlx4.so.21 -Wl,--no-as-needed -pthread -lm -ldl
>>>>>> -lnuma lib/librte_et
>>>>>> hdev.so.21.0 lib/librte_eal.so.21.0 lib/librte_kvargs.so.21.0
>>>>>> lib/librte_telemetry.so.21.0 lib/librte_net.so.21.0 
>>>>>> lib/librte_mbuf.so.21.0
>>>>>> lib/librte_mempool.so.21.0 lib/librte_ring.so.21.0
>>>>>> lib/librte_meter.so.21.0 drivers/librte_bus_pci.so.21.0
>>>>>> lib/librte_pci.so.21.0 drivers/
>>>>>> librte_bus_vdev.so.21.0
>>>>>> -Wl,--version-script=/root/tmp/vpp/build-root/build-vpp-native/external/src-dpdk/drivers/net/mlx4/version.map
>>>>>> -lpt
>>>>>> hread -L/root/tmp/vpp/build-root/install-vpp-native/external/lib64
>>>>>> -l:libbnxt_re-rdmav25.a -l:libcxgb4-rdmav25.a -l:libefa.a -l:libhns-rdm
>>>>>> av25.a -l:libi40iw-rdmav25.a -l:libmlx4.a -l:libmlx5.a
>>>>>> -l:libmthca-rdmav25.a -l:libocrdma-rdmav25.a -l:libqedr-rdmav25.a
>>>>>> -l:libvmw_pvrdma-rdmav25.a -l:libhfi1verbs-rdmav25.a
>>>>>> -l:libipathverbs-rdmav25.a -l:librxe-rdmav25.a -l:libsiw-rdmav25.a
>>>>>> -l:libibverbs.a -l:librdma_util.a -l:libccan.a -Wl,--end-group
>>>>>> '-Wl,-rpath,$ORIGIN/../lib:$ORIGIN/'
>>>>>> -Wl,-rpath-link,/root/tmp/vpp/build-root/build-vpp-native/external/build-dpdk/lib
>>>>>> -Wl,-rpath-link,/root/tmp/vpp/build-root/build-vpp-native/external/build-dpdk/drivers
>>>>>> /bin/ld: cannot find -l:libbnxt_re-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libcxgb4-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libefa.a
>>>>>> /bin/ld: cannot find -l:libhns-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libi40iw-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libmlx4.a
>>>>>> /bin/ld: cannot find -l:libmlx5.a
>>>>>> /bin/ld: cannot find -l:libmthca-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libocrdma-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libqedr-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libvmw_pvrdma-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libhfi1verbs-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libipathverbs-rdmav25.a
>>>>>> /bin/ld: cannot find -l:librxe-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libsiw-rdmav25.a
>>>>>> /bin/ld: cannot find -l:libibverbs.a
>>>>>> /bin/ld: cannot find -l:librdma_util.a
>>>>>> /bin/ld: cannot find -l:libccan.a
>>>>>> collect2: error: ld returned 1 exit status
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>
> 
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#19242): https://lists.fd.io/g/vpp-dev/message/19242
Mute This Topic: https://lists.fd.io/mt/81718770/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to