uhd
uhd copied to clipboard
X300 (UBX160) Tx performance regression after v3.15
Issue Description
Attempting to transmit from an X300 with a UBX160 daughter board at 200MSPS results in frequent under runs when using UHD version 4.0 or 4.1. I could not reproduce the problem on version 3.15 or 3.10.
Setup Details
- X300 with 1x UBX160
- XG firmware
- UHD v4.0.0.0 or v4.1.0.4
- Thunderbolt to SFP+ 10GbE adapter connected to SFP port 1
- Issue reproduced separately with two different hosts: Ubuntu 20.04 and CentOS 8.4.2105
- MTU 9000
ethtool -G dev tx 4096(also tried max of 8184 and other values)sysctl -w net.core.wmem_max=100000000(also tried with default value)sysctl -w net.core.wmem_default=10000000(also tried with default value)sysctl -w net.core.netdev_max_backlog=100000(also tried with default value)
Expected Behavior
Transmitting 200MSPS shouldn't consistently report frequent buffer under runs. Or it should at least behave consistently between UHD versions 3.15 and 4.0/4.1.
Actual Behaviour
Transmitting 200MSPS does consistently report frequent buffer under runs and only when using UHD versions 4.0 and 4.1.
Steps to reproduce the problem
benchmark_rate --args "addr=192.168.40.2" --tx_rate 200e6 --duration 30
The behavior of this example program matches what I see in my application with respect to the number of under runs reported. I have tried quite a few device and streamer argument combinations to no effect.
- "send_offload=true" (polling and blocking)
- "num_send_frames=512" (lots of different values with correspondingly larger buffer sizes)
- "skip_dram=1,skip_duc=1"