Lee,

Could you check that this patch fixes your issue: 
https://gerrit.fd.io/r/c/18741/
You may have to use LD_LIBRARY_PATH so DPDK can find 
librte_pmd_mlx5_glue.so.19.02.0 at runtime.

ben

> -----Original Message-----
> From: Benoit Ganne (bganne)
> Sent: lundi 8 avril 2019 10:02
> To: 'Lee Roberts' <lee.robe...@hpe.com>; vpp-dev@lists.fd.io
> Cc: 'Dave Wallace' <dwallac...@gmail.com>
> Subject: RE: runtime undefined symbol ibv_cmd_query_port when using VPP
> external rdma-core
> 
> Dave, this is probably an issue we want to fix for VPP 19.04.
> 
> Right, there is a conflict between internal VPP rdma-core and external
> (typically distribution package) rdma-core when enabling MLX DPDK support.
> We compile a very small subset of RDMA core statically to enable VPP RDMA
> driver. This subset does not include all the symbols needed by MLX DPDK
> driver, hence the issue you ran into.
> This is definitely an issue and I'll look into what we can do. Stay tuned.
> 
> Best,
> Ben
> 
> 
> > -----Original Message-----
> > From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Lee
> > Roberts
> > Sent: samedi 6 avril 2019 06:22
> > To: vpp-dev@lists.fd.io
> > Subject: [vpp-dev] runtime undefined symbol ibv_cmd_query_port when
> > using VPP external rdma-core
> >
> > I am encountering a runtime error when starting VPP 19.04-rc0 (top-of-
> > tree)
> >
> > after updating to the latest version this morning.
> >
> >
> >
> > Apr  5 17:17:38 cl41 /usr/bin/vpp[13913]: dpdk_config:1338: socket-mem
> > argument is deprecated
> >
> > Apr  5 17:17:38 cl41 vpp: /usr/bin/vpp[13913]: dpdk_config:1338:
> > socket- mem argument is deprecated
> >
> > Apr  5 17:17:38 cl41 vpp: /usr/bin/vpp[13913]: dpdk: EAL init args: -c
> > ccce -n 8 --in-memory --vdev crypto_null,socket_id=0,max_nb_queue_
> >
> > pairs=8 --file-prefix vpp -w 0000:41:00.0 -w 0000:41:00.1
> > --master-lcore 1
> >
> > Apr  5 17:17:38 cl41 /usr/bin/vpp[13913]: dpdk: EAL init args: -c ccce
> > -n
> > 8 --in-memory --vdev crypto_null,socket_id=0,max_nb_queue_pairs
> >
> > =8 --file-prefix vpp -w 0000:41:00.0 -w 0000:41:00.1 --master-lcore 1
> >
> > Apr  5 17:17:39 cl41 vpp: /usr/bin/vpp: symbol lookup error:
> > /usr/lib/vpp_plugins/dpdk_plugin.so: undefined symbol:
> > ibv_cmd_query_port
> >
> > Apr  5 17:17:39 cl41 systemd: vpp.service: main process exited,
> > code=exited, status=127/n/a
> >
> > Apr  5 17:17:39 cl41 systemd: Unit vpp.service entered failed state.
> >
> > Apr  5 17:17:39 cl41 systemd: vpp.service failed.
> >
> > Apr  5 17:17:44 cl41 systemd: vpp.service holdoff time over,
> > scheduling restart.
> >
> >
> >
> > I am running on RHEL 7.6 with its version of rdma-core:
> >
> >
> >
> > # uname -a
> >
> > Linux cl41.dpdk.nfv 3.10.0-957.el7.x86_64 #1 SMP Thu Oct 4 20:48:51
> > UTC
> > 2018 x86_64 x86_64 x86_64 GNU/Linux
> >
> > # rpm -qa | grep rdma-core
> >
> > rdma-core-17.2-3.el7.x86_64
> >
> > rdma-core-devel-17.2-3.el7.x86_64
> >
> > #
> >
> >
> >
> > I am using a ConnectX-5 adapter, so the MLX5 PMD is being included:
> >
> >
> >
> > # make install-ext-deps DPDK_MLX5_PMD=y DPDK_CCP_PMD=y
> >
> > # make pkg-rpm vpp_uses_dpdk_mlx5_pmd=yes
> >
> >
> >
> > I have found that if I remove the VPP external "rdma-core" build, then
> > VPP will start successfully.
> >
> > The following changes are used to avoid the issue:
> >
> >
> >
> > diff --git a/build/external/Makefile b/build/external/Makefile
> >
> > index c56e16d..89fe0b9 100644
> >
> > --- a/build/external/Makefile
> >
> > +++ b/build/external/Makefile
> >
> > @@ -38,17 +38,16 @@ include packages/nasm.mk
> >
> > include packages/ipsec-mb.mk
> >
> > include packages/quicly.mk
> >
> > include packages/dpdk.mk
> >
> > -include packages/rdma-core.mk
> >
> >  .PHONY: clean
> >
> > clean:
> >
> >         @rm -rf $(B) $(I)
> >
> >  .PHONY: install
> >
> > -install: dpdk-install rdma-core-install quicly-install
> >
> > +install: dpdk-install quicly-install
> >
> >  .PHONY: config
> >
> > -config: dpdk-config rdma-core-config
> >
> > +config: dpdk-config
> >
> >
> > ######################################################################
> > ####
> > ####
> >
> > # .deb packaging
> >
> >
> >
> > During the VPP build with the above changes, the Red Hat version of
> > the ibverbs library
> >
> > is used:
> >
> >
> >
> > @@@@ Configuring vpp in /opt/vpp/build-root/rpmbuild/vpp-19.04/build-
> > root/build-vpp-native/vpp @@@@
> >
> > -- The C compiler identification is GNU 7.3.1
> >
> > -- Check for working C compiler: /opt/rh/devtoolset-7/root/bin/cc
> >
> > -- Check for working C compiler: /opt/rh/devtoolset-7/root/bin/cc --
> > works
> >
> > -- Detecting C compiler ABI info
> >
> > -- Detecting C compiler ABI info - done
> >
> > -- Detecting C compile features
> >
> > -- Detecting C compile features - done
> >
> > -- Performing Test compiler_flag_march_core_avx2
> >
> > -- Performing Test compiler_flag_march_core_avx2 - Success
> >
> > -- Performing Test compiler_flag_march_skylake_avx512
> >
> > -- Performing Test compiler_flag_march_skylake_avx512 - Success
> >
> > -- Looking for ccache
> >
> > -- Looking for ccache - found
> >
> > -- Performing Test compiler_flag_no_address_of_packed_member
> >
> > -- Performing Test compiler_flag_no_address_of_packed_member - Success
> >
> > -- Looking for pthread.h
> >
> > -- Looking for pthread.h - found
> >
> > -- Looking for pthread_create
> >
> > -- Looking for pthread_create - not found
> >
> > -- Check if compiler accepts -pthread
> >
> > -- Check if compiler accepts -pthread - yes
> >
> > -- Found Threads: TRUE
> >
> > -- Performing Test HAVE_MEMFD_CREATE
> >
> > -- Performing Test HAVE_MEMFD_CREATE - Failed
> >
> > -- Performing Test HAVE_GETCPU
> >
> > -- Performing Test HAVE_GETCPU - Failed
> >
> > -- Found OpenSSL: /usr/lib64/libcrypto.so (found version "1.0.2k")
> >
> > -- The ASM compiler identification is GNU
> >
> > -- Found assembler: /opt/rh/devtoolset-7/root/bin/cc
> >
> > -- Looking for libuuid
> >
> > -- Found uuid in /usr/include
> >
> > -- dpdk plugin needs libdpdk.a library - found at
> > /opt/vpp/external/x86_64/lib/libdpdk.a
> >
> > -- Found DPDK 19.2.0 in /opt/vpp/external/x86_64/include/dpdk
> >
> > -- dpdk plugin needs numa library - found at /usr/lib64/libnuma.so
> >
> > -- dpdk plugin needs libIPSec_MB.a library - found at
> > /opt/vpp/external/x86_64/lib/libIPSec_MB.a
> >
> > -- dpdk plugin needs mnl library - found at /usr/lib64/libmnl.so
> >
> > -- dpdk plugin needs ibverbs library - found at
> > /usr/lib64/libibverbs.so
> >
> > -- dpdk plugin needs mlx5 library - found at /usr/lib64/libmlx5.so
> >
> > -- DPDK depends on libmnl, libibverbs, libmlx5 (Mellanox PMD
> > requirement)
> >
> > -- Looking for quicly
> >
> > -- Found quicly in /opt/vpp/external/x86_64/include
> >
> > -- rdma plugin needs libibverbs.a library - found at
> > /usr/lib64/libibverbs.so
> >
> > -- rdma plugin needs libmlx5.a library - found at
> > /usr/lib64/libmlx5.so
> >
> > -- Performing Test IBVERBS_COMPILES_CHECK
> >
> > -- Performing Test IBVERBS_COMPILES_CHECK - Success
> >
> > -- tlsmbedtls plugin needs mbedtls library - found at
> > /usr/lib64/libmbedtls.so
> >
> > -- tlsmbedtls plugin needs mbedx509 library - found at
> > /usr/lib64/libmbedx509.so
> >
> > -- tlsmbedtls plugin needs mbedcrypto library - found at
> > /usr/lib64/libmbedcrypto.so
> >
> > -- Looking for SSL_set_async_callback
> >
> > -- Looking for SSL_set_async_callback - not found
> >
> > -- Found PythonInterp: /usr/bin/python2.7 (found suitable version
> > "2.7.5", minimum required is "2.7")
> >
> > -- Configuration:
> >
> > VPP version         : 19.04-rc0~642-g35c5208
> >
> > VPP library version : 19.04
> >
> > GIT toplevel dir    : /opt/vpp
> >
> > Build type          :
> >
> > C flags             : -Wno-address-of-packed-member -march=corei7 -
> > mtune=corei7-avx -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC
> > -Werror
> >
> > Linker flags        : -g -O2 -DFORTIFY_SOURCE=2 -fstack-protector -fPIC
> -
> > Werror -pie
> >
> > Host processor      : x86_64
> >
> > Target processor    : x86_64
> >
> > Prefix path         : /opt/vpp/external/x86_64;/opt/vpp/build-
> > root/rpmbuild/vpp-19.04/build-root/install-vpp-native/external
> >
> > Install prefix      : /opt/vpp/build-root/rpmbuild/vpp-19.04/build-
> > root/install-vpp-native/vpp
> >
> > -- Configuring done
> >
> > -- Generating done
> >
> > -- Build files have been written to: /opt/vpp/build-root/rpmbuild/vpp-
> > 19.04/build-root/build-vpp-native/vpp
> >
> > @@@@ Building vpp in /opt/vpp/build-root/rpmbuild/vpp-19.04/build-
> > root/build-vpp-native/vpp @@@@
> >
> >
> >
> > Without the VPP external "rdma-core", VPP 19.04 will start successfully.
> >
> >
> >
> > -    Lee Roberts

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#12725): https://lists.fd.io/g/vpp-dev/message/12725
Mute This Topic: https://lists.fd.io/mt/30931630/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