Hi Aaron, Two things: 1) I am getting an error message at the conclusion of a successful run (see below). Not sure if this is something I should be looking at or if it is harmless. 2) I figured out a sequence of steps that can "fix" my broken state following a successful run. If I do the following, the links are fixed: a) dpdk-devbind -b i40e 03:00.0 03:00.1 // bind to the normal driver b) dpdk-devbind -b vfio-pci 03:00.0 03:00.1 // bind back to the vfio-pci driver c) physically unplug & plug the XL710 QSFP+ transceiver (mine is optical, but unplugging just the MTP does not do the trick - I need to unplug the full transceiver)
Once I complete the sequence above, the link LEDs are back to normal and I can complete another run of benchmark_rate. This is obviously a bad solution so if you have any ideas, please let me know. Rob [00:00:05.113788990] Testing receive rate 125.000000 Msps on 4 channels [00:00:05.120454627] Testing transmit rate 125.000000 Msps on 4 channels [00:00:15.373972384] Benchmark complete. Benchmark rate summary: Num received samples: 5099558824 Num dropped samples: 0 Num overruns detected: 0 Num transmitted samples: 4999335588 Num sequence errors (Tx): 0 Num sequence errors (Rx): 0 Num underruns detected: 0 Num late commands: 0 Num timeouts (Tx): 0 Num timeouts (Rx): 0 Done! i40e_phy_conf_link(): Failed to get PHY capabilities: -7 On Wed, Feb 3, 2021 at 10:16 AM Rob Kossler <rkoss...@nd.edu> wrote: > Hi Aaron, > Unfortunately, I already tried playing around with the link timeout > increasing up to 10 seconds. No luck. But, I am presently troubleshooting > the issue and trying to switch back and forth between DPDK and normal > networking. I am finding that normal networking is not working after 1 run > of DPDK. And, I'm noticing that link LEDs are messed up and normal pings > are not working. I am playing around with disconnecting / reconnecting > links in order to get the link LEDs back to normal. My guess is that > things are not cleaning up as they should. > Rob > > On Wed, Feb 3, 2021 at 9:51 AM Aaron Rossetto via USRP-users < > usrp-users@lists.ettus.com> wrote: > >> I notice in the second and subsequent runs, you get this message from UHD: >> >> [ERROR] [DPDK] All DPDK links did not report as up! >> >> One of the other issues I've noticed with DPDK (and unfortunately >> don't have an answer for) is that link detection seems to have issues. >> I'm not sure if this is an XL710-specific problem or whether it's more >> widespread, but I added some code to try to mitigate things somewhat >> in commit eada49e4d. This commit checks the link status at >> 250-millisecond intervals for up to the link status timeout (default 1 >> second) in case the links take a while to register as up. One thing >> you could try is overriding the default link status timeout and >> increasing the value, which you can do by adding a dpdk_link_timeout=X >> line to the [use_dpdk=1] section of your uhd.conf file, where X is the >> new timeout in number of milliseconds. >> >> Best regards, >> Aaron >> >> On Tue, Feb 2, 2021 at 1:47 PM Rob Kossler <rkoss...@nd.edu> wrote: >> > >> > Hi Aaron, >> > This did indeed help. Now I am able to run ONCE successfully. After >> that I get an error. Same behavior on both systems. Not yet sure how to >> clear the error. I played with dpdk_link_timeout and even tried resetting >> the N310 using "overlay rm n310 && overlay add n310 && systemctl restart >> usrp-hwd". But no luck. >> > Rob >> > >> > // First run succeeds >> > root@irisheyes5-hp-z240-sff:~# uhd_image_loader >> --args="addr=192.168.1.88,type=n3xx,fpga=XG" >> > [INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; >> UHD_4.0.0.0-50-ge520e3ff >> > [INFO] [MPMD] Initializing 1 device(s) in parallel with args: >> mgmt_addr=192.168.1.88,type=n3xx,product=n310,serial=3144673,claimed=False,skip_init=1 >> > [WARNING] [MPM.RPCServer] A timeout event occured! >> > [INFO] [MPMD] Claimed device without full initialization. >> > [INFO] [MPMD IMAGE LOADER] Starting update. This may take a while. >> > [INFO] [MPM.PeriphManager] Updating component `fpga' >> > [INFO] [MPM.PeriphManager] Updating component `dts' >> > [INFO] [MPM.RPCServer] Resetting peripheral manager. >> > [INFO] [MPM.PeriphManager] Device serial number: 3144673 >> > [INFO] [MPM.PeriphManager] Initialized 2 daughterboard(s). >> > [INFO] [MPM.PeriphManager] init() called with device args >> `clock_source=internal,time_source=internal'. >> > [INFO] [MPMD IMAGE LOADER] Update component function succeeded. >> > root@irisheyes5-hp-z240-sff:~# benchmark_rate --tx_rate=62.5e6 >> --rx_rate=62.5e6 --channels="0,1,2,3" >> --args="use_dpdk=1,mgmt_addr=192.168.1.88,addr=192.168.60.2" >> > >> > [INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; >> UHD_4.0.0.0-50-ge520e3ff >> > EAL: Detected 8 lcore(s) >> > EAL: Detected 1 NUMA nodes >> > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket >> > EAL: No free hugepages reported in hugepages-1048576kB >> > EAL: Probing VFIO support... >> > EAL: VFIO support initialized >> > EAL: PCI device 0000:03:00.0 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > EAL: using IOMMU type 1 (Type 1) >> > EAL: PCI device 0000:03:00.1 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > EAL: PCI device 0000:03:00.2 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > EAL: PCI device 0000:03:00.3 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > [00:00:00.000152] Creating the usrp device with: >> use_dpdk=1,mgmt_addr=192.168.1.88,addr=192.168.60.2... >> > [INFO] [MPMD] Initializing 1 device(s) in parallel with args: >> mgmt_addr=192.168.1.88,type=n3xx,product=n310,serial=3144673,claimed=False,use_dpdk=1,addr=192.168.60.2 >> > [INFO] [MPM.PeriphManager] init() called with device args >> `mgmt_addr=192.168.1.88,product=n310,use_dpdk=1,clock_source=internal,time_source=internal'. >> > Using Device: Single USRP: >> > Device: N300-Series Device >> > Mboard 0: n310 >> > RX Channel: 0 >> > RX DSP: 0 >> > RX Dboard: A >> > RX Subdev: Magnesium >> > RX Channel: 1 >> > RX DSP: 1 >> > RX Dboard: A >> > RX Subdev: Magnesium >> > RX Channel: 2 >> > RX DSP: 2 >> > RX Dboard: B >> > RX Subdev: Magnesium >> > RX Channel: 3 >> > RX DSP: 3 >> > RX Dboard: B >> > RX Subdev: Magnesium >> > TX Channel: 0 >> > TX DSP: 0 >> > TX Dboard: A >> > TX Subdev: Magnesium >> > TX Channel: 1 >> > TX DSP: 1 >> > TX Dboard: A >> > TX Subdev: Magnesium >> > TX Channel: 2 >> > TX DSP: 2 >> > TX Dboard: B >> > TX Subdev: Magnesium >> > TX Channel: 3 >> > TX DSP: 3 >> > TX Dboard: B >> > TX Subdev: Magnesium >> > >> > [00:00:03.21715319] Setting device timestamp to 0... >> > [INFO] [MULTI_USRP] 1) catch time transition at pps edge >> > [INFO] [MULTI_USRP] 2) set times next pps (synchronously) >> > [WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping. >> > [WARNING] [0/Radio#1] Attempting to set tick rate to 0. Skipping. >> > [WARNING] [0/Radio#1] Attempting to set tick rate to 0. Skipping. >> > [WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping. >> > Setting TX spp to 1989 >> > [00:00:04.907401082] Testing receive rate 62.500000 Msps on 4 channels >> > [00:00:04.914615576] Testing transmit rate 62.500000 Msps on 4 channels >> > [00:00:15.167869894] Benchmark complete. >> > >> > >> > Benchmark rate summary: >> > Num received samples: 2549794336 >> > Num dropped samples: 0 >> > Num overruns detected: 0 >> > Num transmitted samples: 2499910452 >> > Num sequence errors (Tx): 0 >> > Num sequence errors (Rx): 0 >> > Num underruns detected: 0 >> > Num late commands: 0 >> > Num timeouts (Tx): 0 >> > Num timeouts (Rx): 0 >> > >> > >> > Done! >> > >> > // Second run fails >> > root@irisheyes5-hp-z240-sff:~# benchmark_rate --tx_rate=62.5e6 >> --rx_rate=62.5e6 --channels="0,1,2,3" >> --args="use_dpdk=1,mgmt_addr=192.168.1.88,addr=192.168.60.2" >> > >> > [INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; >> UHD_4.0.0.0-50-ge520e3ff >> > EAL: Detected 8 lcore(s) >> > EAL: Detected 1 NUMA nodes >> > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket >> > EAL: No free hugepages reported in hugepages-1048576kB >> > EAL: Probing VFIO support... >> > EAL: VFIO support initialized >> > EAL: PCI device 0000:03:00.0 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > EAL: using IOMMU type 1 (Type 1) >> > EAL: PCI device 0000:03:00.1 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > EAL: PCI device 0000:03:00.2 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > EAL: PCI device 0000:03:00.3 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > [ERROR] [DPDK] All DPDK links did not report as up! >> > EAL: FATAL: already called initialization. >> > EAL: already called initialization. >> > [ERROR] [UHD] Device discovery error: RuntimeError: DPDK: All DPDK >> links did not report as up! >> > [ERROR] [DPDK] Error with EAL initialization >> > [ERROR] [X300] X300 Network discovery error RuntimeError: Error with >> EAL initialization >> > [00:00:00.000122] Creating the usrp device with: >> use_dpdk=1,mgmt_addr=192.168.1.88,addr=192.168.60.2... >> > EAL: FATAL: already called initialization. >> > EAL: already called initialization. >> > [ERROR] [DPDK] Error with EAL initialization >> > [ERROR] [UHD] Device discovery error: RuntimeError: Error with EAL >> initialization >> > EAL: FATAL: already called initialization. >> > EAL: already called initialization. >> > [ERROR] [DPDK] Error with EAL initialization >> > [ERROR] [X300] X300 Network discovery error RuntimeError: Error with >> EAL initialization >> > Error: LookupError: KeyError: No devices found for -----> >> > Device Address: >> > use_dpdk: 1 >> > mgmt_addr: 192.168.1.88 >> > addr: 192.168.60.2 >> > >> > // Third run fails >> > root@irisheyes5-hp-z240-sff:~# benchmark_rate --tx_rate=62.5e6 >> --rx_rate=62.5e6 --channels="0,1,2,3" >> --args="use_dpdk=1,mgmt_addr=192.168.1.88,addr=192.168.60.2" >> > >> > [INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; >> UHD_4.0.0.0-50-ge520e3ff >> > EAL: Detected 8 lcore(s) >> > EAL: Detected 1 NUMA nodes >> > EAL: Multi-process socket /var/run/dpdk/rte/mp_socket >> > EAL: No free hugepages reported in hugepages-1048576kB >> > EAL: Probing VFIO support... >> > EAL: VFIO support initialized >> > EAL: PCI device 0000:03:00.0 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > EAL: using IOMMU type 1 (Type 1) >> > EAL: PCI device 0000:03:00.1 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > EAL: PCI device 0000:03:00.2 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > EAL: PCI device 0000:03:00.3 on NUMA socket -1 >> > EAL: Invalid NUMA socket, default to 0 >> > EAL: probe driver: 8086:1584 net_i40e >> > [ERROR] [DPDK] All DPDK links did not report as up! >> > EAL: FATAL: already called initialization. >> > EAL: already called initialization. >> > [ERROR] [UHD] Device discovery error: RuntimeError: DPDK: All DPDK >> links did not report as up! >> > [ERROR] [DPDK] Error with EAL initialization >> > [ERROR] [X300] X300 Network discovery error RuntimeError: Error with >> EAL initialization >> > [00:00:00.000148] Creating the usrp device with: >> use_dpdk=1,mgmt_addr=192.168.1.88,addr=192.168.60.2... >> > EAL: FATAL: already called initialization. >> > EAL: already called initialization. >> > [ERROR] [DPDK] Error with EAL initialization >> > [ERROR] [UHD] Device discovery error: RuntimeError: Error with EAL >> initialization >> > EAL: FATAL: already called initialization. >> > EAL: already called initialization. >> > [ERROR] [DPDK] Error with EAL initialization >> > [ERROR] [X300] X300 Network discovery error RuntimeError: Error with >> EAL initialization >> > Error: LookupError: KeyError: No devices found for -----> >> > Device Address: >> > use_dpdk: 1 >> > mgmt_addr: 192.168.1.88 >> > addr: 192.168.60.2 >> > >> > >> > >> > On Tue, Feb 2, 2021 at 11:53 AM Aaron Rossetto via USRP-users < >> usrp-users@lists.ettus.com> wrote: >> >> >> >> On Mon, Feb 1, 2021 at 9:02 PM Rob Kossler via USRP-users >> >> <usrp-users@lists.ettus.com> wrote: >> >> >> >> > Has anyone successfully used DPDK with Ubuntu 20.04, UHD 4.0, Intel >> XL710 NIC, and N310 (or X310)? >> >> >> >> If I remember correctly, I believe DPDK tries to dlopen() *everything* >> >> in the directory specified by the dpdk_driver parameter in the DPDK >> >> section of uhd.conf, leading to a lot of errors similar to yours >> >> ('Invalid ELF header' and the like). Having the correct collection of >> >> .so files in that directory is key. >> >> >> >> What's worked for me in the past when using DPDK with an Intel XL710 >> >> is creating a directory (I used /usr/local/lib/dpdk-pmds) and copying >> >> a specific set of DPDK .so files into this directory: >> >> * librte_mempool_ring.so >> >> * librte_pdump.so (I think this one is optional--I had been trying to >> >> get packet dumps from DPDK a while back) >> >> * librte_pmd_i40e.so >> >> * librte_pmd_ixgbe.so (may be optional?) >> >> * librte_pmd_pcap.so (this one is also optional, I think) >> >> * librte_pmd_ring.so >> >> >> >> (Symlinking to the actual libraries wherever they get installed >> >> instead of copying them into the directory would probably work as >> >> well.) >> >> >> >> Then, make sure that the dpdk-driver key in the [use_dpdk=1] section >> >> of uhd.conf points to that directory: >> >> dpdk_driver = /usr/local/lib/dpdk-pmds >> >> >> >> Hopefully that will resolve the issue and get you a little further >> >> down the road. >> >> >> >> Best regards, >> >> Aaron >> >> >> >> _______________________________________________ >> >> USRP-users mailing list >> >> USRP-users@lists.ettus.com >> >> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> >> _______________________________________________ >> USRP-users mailing list >> USRP-users@lists.ettus.com >> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> >
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com