Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHi all,
I recently bought a X310 usrp and a 82599ES 10-Gigabit SFI/SFP+ Network
Interface Card (the one recommended on the Ettus Website).
I first set my connections and a benchmark test shows a lot of dropped
samples and some overflows.
So i decided to try using dpdk to improve my setup.
I have UHD 3.14.1.1 and I installed dpdk with my apt package manager (dpdk
version 17.11.9).
I followed this guide https://kb.ettus.com/Getting_Started_with_DPDK_and_UHD
and when I run the benchmark with use_dpdk argument, I got the following:
[WARNING] [DPDK] Detected use_dpdk argument, but DPDK support not built in.
I really don't understand what's wrong. I tried so many things. I tried
with dpdk 18 and went back to 17 because it didn't solve anything.
Could anyone help me with that please ?
Jeremy
Jeremy,
I went through this recently and I believe you need to build UHD manually, assuming you are using pre-built UHD binaries. If you’ve installed it, DPDK support should be detected when you build the UHD driver (the output of cmake should indicate if it finds it or not).
Ryan
I recently bought a X310 usrp and a 82599ES 10-Gigabit SFI/SFP+ Network Interface Card (the one recommended on the Ettus Website).
I first set my connections and a benchmark test shows a lot of dropped samples and some overflows.
So i decided to try using dpdk to improve my setup.
I have UHD 3.14.1.1 and I installed dpdk with my apt package manager (dpdk version 17.11.9).
I followed this guide https://kb.ettus.com/Getting_Started_with_DPDK_and_UHD and when I run the benchmark with use_dpdk argument, I got the following:
[WARNING] [DPDK] Detected use_dpdk argument, but DPDK support not built in.
I really don't understand what's wrong. I tried so many things. I tried with dpdk 18 and went back to 17 because it didn't solve anything.
Could anyone help me with that please ?
Jeremy
The information contained in this message, and any attachments, may contain privileged and/or proprietary information that is intended solely for the person or entity to which it is addressed. Moreover, it may contain export restricted technical data controlled by Export Administration Regulations (EAR) or the International Traffic in Arms Regulations (ITAR). Any review, retransmission, dissemination, or re-export to foreign or domestic entities by anyone other than the intended recipient in accordance with EAR and/or ITAR regulations is prohibited.
On 06/12/2020 01:37 PM, Carmichael, Ryan via USRP-users wrote:
Jeremy,
I went through this recently and I believe you need to build UHD
manually, assuming you are using pre-built UHD binaries. If you’ve
installed it, DPDK support should be detected when you build the UHD
driver (the output of cmake should indicate if it finds it or not).
-Ryan
I recently bought a X310 usrp and a 82599ES 10-Gigabit SFI/SFP+
Network Interface Card (the one recommended on the Ettus Website).
I first set my connections and a benchmark test shows a lot of dropped
samples and some overflows.
So i decided to try using dpdk to improve my setup.
I have UHD 3.14.1.1 and I installed dpdk with my apt package manager
(dpdk version 17.11.9).
I followed this guide
https://kb.ettus.com/Getting_Started_with_DPDK_and_UHD
https://kb.ettus.com/Getting_Started_with_DPDK_and_UHD and when I
run the benchmark with use_dpdk argument, I got the following:
|[WARNING] [DPDK] Detected use_dpdk argument, but DPDK support not
built in.|
I really don't understand what's wrong. I tried so many things. I
tried with dpdk 18 and went back to 17 because it didn't solve anything.
Could anyone help me with that please ?
Jeremy
I don't think the DPDK support in UHD is "mainstream" yet (perhaps in
3.15?) so the packaged binaries don't have support for it.
Hi Ryan,
Thanks for that.
So, I tried to build UHD manually and now when I generate the MakeFile,
DPDK support is detected.
But when I try to build UHD, I got an error when linking shared library
libuhd.so:
/usr/bin/ld: //usr/local/lib/librte_eal.a(eal_thread.o): relocation
R_X86_64_TPOFF32 against per_lcore__thread_id.8433' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: //usr/local/lib/librte_eal.a(eal_vfio.o): relocation R_X86_64_TPOFF32 against per_lcore__thread_id.6718' can not be used when
making a shared object; recompile with -fPIC
/usr/bin/ld: //usr/local/lib/librte_eal.a(eal_interrupts.o): relocation
R_X86_64_TPOFF32 against per_lcore__epfd' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: //usr/local/lib/librte_eal.a(eal_common_log.o): relocation R_X86_64_TPOFF32 against per_lcore_log_cur_msg' can not be used when
making a shared object; recompile with -fPIC
/usr/bin/ld: //usr/local/lib/librte_eal.a(eal_common_errno.o): relocation
R_X86_64_TPOFF32 against per_lcore_retval.3874' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: //usr/local/lib/librte_eal.a(eal_debug.o): relocation R_X86_64_PC32 against symbol rte_dump_stack' can not be used when making a
shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
lib/CMakeFiles/uhd.dir/build.make:7976: recipe for target
'lib/libuhd.so.4.0.0' failed
make[2]: *** [lib/libuhd.so.4.0.0] Error 1
CMakeFiles/Makefile2:123: recipe for target 'lib/CMakeFiles/uhd.dir/all'
failed
make[1]: *** [lib/CMakeFiles/uhd.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2
I've read somewhere it's because librte_eal is not compiled as a shared
library. But I changed when CONFIG_RTE_BUILD_SHARED_LIB=n building dpdk.
Did you go through this issue too ?
Le ven. 12 juin 2020 à 19:37, Carmichael, Ryan Ryan.Carmichael@dynetics.com
a écrit :
Jeremy,
I went through this recently and I believe you need to build UHD manually,
assuming you are using pre-built UHD binaries. If you’ve installed it, DPDK
support should be detected when you build the UHD driver (the output of
cmake should indicate if it finds it or not).
Ryan
I recently bought a X310 usrp and a 82599ES 10-Gigabit SFI/SFP+ Network
Interface Card (the one recommended on the Ettus Website).
I first set my connections and a benchmark test shows a lot of dropped
samples and some overflows.
So i decided to try using dpdk to improve my setup.
I have UHD 3.14.1.1 and I installed dpdk with my apt package manager (dpdk
version 17.11.9).
I followed this guide
https://kb.ettus.com/Getting_Started_with_DPDK_and_UHD and when I run the
benchmark with use_dpdk argument, I got the following:
[WARNING] [DPDK] Detected use_dpdk argument, but DPDK support not built in.
I really don't understand what's wrong. I tried so many things. I tried
with dpdk 18 and went back to 17 because it didn't solve anything.
Could anyone help me with that please ?
Jeremy
Jeremy,
Sorry, I did not get that error. I would recommend building UHD-3.15-LTS branch, if that’s not what you were using already. Also, I did experience some issues with g++ 4.8.5 and had to go to a more recent version when building UHD with DPDK.
Ryan
From: Jérémy Vezinet jeremy.vezinet@gmail.com
Sent: Friday, June 12, 2020 3:54 PM
To: usrp-users@lists.ettus.com
Cc: Carmichael, Ryan Ryan.Carmichael@dynetics.com
Subject: [EXTERNAL] Re: [USRP-users] DPDK support not built in with X310
Hi Ryan,
Thanks for that.
So, I tried to build UHD manually and now when I generate the MakeFile, DPDK support is detected.
But when I try to build UHD, I got an error when linking shared library libuhd.so:
/usr/bin/ld: //usr/local/lib/librte_eal.a(eal_thread.o): relocation R_X86_64_TPOFF32 against per_lcore__thread_id.8433' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: //usr/local/lib/librte_eal.a(eal_vfio.o): relocation R_X86_64_TPOFF32 against per_lcore__thread_id.6718' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: //usr/local/lib/librte_eal.a(eal_interrupts.o): relocation R_X86_64_TPOFF32 against per_lcore__epfd' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: //usr/local/lib/librte_eal.a(eal_common_log.o): relocation R_X86_64_TPOFF32 against per_lcore_log_cur_msg' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: //usr/local/lib/librte_eal.a(eal_common_errno.o): relocation R_X86_64_TPOFF32 against per_lcore_retval.3874' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: //usr/local/lib/librte_eal.a(eal_debug.o): relocation R_X86_64_PC32 against symbol rte_dump_stack' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
lib/CMakeFiles/uhd.dir/build.make:7976: recipe for target 'lib/libuhd.so.4.0.0' failed
make[2]: *** [lib/libuhd.so.4.0.0] Error 1
CMakeFiles/Makefile2:123: recipe for target 'lib/CMakeFiles/uhd.dir/all' failed
make[1]: *** [lib/CMakeFiles/uhd.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2
I've read somewhere it's because librte_eal is not compiled as a shared library. But I changed when CONFIG_RTE_BUILD_SHARED_LIB=n building dpdk.
Did you go through this issue too ?
Le ven. 12 juin 2020 à 19:37, Carmichael, Ryan <Ryan.Carmichael@dynetics.commailto:Ryan.Carmichael@dynetics.com> a écrit :
Jeremy,
I went through this recently and I believe you need to build UHD manually, assuming you are using pre-built UHD binaries. If you’ve installed it, DPDK support should be detected when you build the UHD driver (the output of cmake should indicate if it finds it or not).
Ryan
I recently bought a X310 usrp and a 82599ES 10-Gigabit SFI/SFP+ Network Interface Card (the one recommended on the Ettus Website).
I first set my connections and a benchmark test shows a lot of dropped samples and some overflows.
So i decided to try using dpdk to improve my setup.
I have UHD 3.14.1.1 and I installed dpdk with my apt package manager (dpdk version 17.11.9).
I followed this guide https://kb.ettus.com/Getting_Started_with_DPDK_and_UHD and when I run the benchmark with use_dpdk argument, I got the following:
[WARNING] [DPDK] Detected use_dpdk argument, but DPDK support not built in.
I really don't understand what's wrong. I tried so many things. I tried with dpdk 18 and went back to 17 because it didn't solve anything.
Could anyone help me with that please ?
Jeremy
The information contained in this message, and any attachments, may contain privileged and/or proprietary information that is intended solely for the person or entity to which it is addressed. Moreover, it may contain export restricted technical data controlled by Export Administration Regulations (EAR) or the International Traffic in Arms Regulations (ITAR). Any review, retransmission, dissemination, or re-export to foreign or domestic entities by anyone other than the intended recipient in accordance with EAR and/or ITAR regulations is prohibited.