USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

X410 benchmark_rate underrun at 50MSps

I am running into underflow issues when running the benchmark_rate test on a x410.  The command I am running is the following:

 

./benchmark_rate --args="addr=192.168.20.2,type=x4xx,send_frame_size=8000,recv_frame_size=8000" --tx_rate=50e6 --tx_channels=0 --tx_delay=1 --duration=60 --priority=high --ref=internal

 

I have a 100Gbit interface connected to the x410 using the below ethernet card.

 

ca:00.0 Ethernet controller: Mellanox Technologies MT2910 Family [ConnectX-7]

 

I'm running on Ubuntu 22.04.5 LTS with kernel 6.8.0-40-generic.

 

I've confirmed that the priority=high setting is working.  "top" shows the priorities of all the threads have been elevated.

 

I've also updated a number of network settings.

 

sysctl -w net.core.wmem_max=250000000
sysctl -w net.core.rmem_max=250000000
sysctl -w net.core.wmem_default=250000000
sysctl -w net.core.rmem_default=250000000
ethtool -G ens8f0np0 tx 8192 rx 8192

 

The application outputs the following:

 

[INFO] [UHD] linux; GNU C++ version 8.4.0; Boost_108300; UHD_4.6.0.HEAD-0-g50fa3baa
[00:00:00.000277] Creating the usrp device with: addr=192.168.20.2,type=x4xx,send_frame_size=8000,recv_frame_size=8000...
[INFO] [MPMD] Initializing 1 device(s) in parallel with args: mgmt_addr=192.168.20.2,type=x4xx,product=x410,serial=3289B1C,name=ni-x4xx-3289 B1C,fpga=UC_200,claimed=False,addr=192.168.20.2,send_frame_size=8000,recv_frame_size=8000
[INFO] [MPM.PeriphManager] init() called with device args `fpga=UC_200,mgmt_addr=192.168.20.2,name=ni-x4xx-3289B1C,product=x410,recv_frame_s ize=8000,send_frame_size=8000,clock_source=internal,time_source=internal,initializing=True'.
Using Device: Single USRP:
Device: X400-Series Device
Mboard 0: x410
RX Channel: 0
RX DSP: 0
RX Dboard: A
RX Subdev: 0
RX Channel: 1
RX DSP: 1
RX Dboard: A
RX Subdev: 1
RX Channel: 2
RX DSP: 2
RX Dboard: B
RX Subdev: 0
RX Channel: 3
RX DSP: 3
RX Dboard: B
RX Subdev: 1
TX Channel: 0
TX DSP: 0
TX Dboard: A
TX Subdev: 0
TX Channel: 1
TX DSP: 1
TX Dboard: A
TX Subdev: 1
TX Channel: 2
TX DSP: 2
TX Dboard: B
TX Subdev: 0
TX Channel: 3
TX DSP: 3
TX Dboard: B
TX Subdev: 1

[00:00:02.516914784] Setting device timestamp to 0...
[WARNING] [0/DUC#0] The requested interpolation is odd; the user should expect passband CIC rolloff.
Select an even interpolation to ensure that a halfband filter is enabled.

[WARNING] [MULTI_USRP] Could not set TX rate to 50.000 MHz. Actual rate is 49.152 MHz
[WARNING] [0/DUC#0] The requested interpolation is odd; the user should expect passband CIC rolloff.
Select an even interpolation to ensure that a halfband filter is enabled.

[WARNING] [MULTI_USRP] Could not set TX rate to 50.000 MHz. Actual rate is 49.152 MHz
[WARNING] [0/DUC#1] The requested interpolation is odd; the user should expect passband CIC rolloff.
Select an even interpolation to ensure that a halfband filter is enabled.

[WARNING] [MULTI_USRP] Could not set TX rate to 50.000 MHz. Actual rate is 49.152 MHz
[WARNING] [0/DUC#1] The requested interpolation is odd; the user should expect passband CIC rolloff.
Select an even interpolation to ensure that a halfband filter is enabled.

[WARNING] [MULTI_USRP] Could not set TX rate to 50.000 MHz. Actual rate is 49.152 MHz
[WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping.
Setting TX spp to 1992
[00:00:02.522008533] Testing transmit rate 49.152000 Msps on 1 channels
UUUUUUUUUUUUUUUUUUUUUUU[00:01:03.524365256] Benchmark complete.


Benchmark rate summary:
Num received samples: 0
Num dropped samples: 0
Num overruns detected: 0
Num transmitted samples: 2948209800
Num sequence errors (Tx): 0
Num sequence errors (Rx): 0
Num underruns detected: 23
Num late commands: 0
Num timeouts (Tx): 0
Num timeouts (Rx): 0


Done!

 

Does anyone have any other suggestions for what could be tried to avoid the underruns?  With a 100Gbit/s NIC, I should have plenty of network throughput.

0 Kudos
Message 1 of 1
(192 Views)