Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

X300 (UBX160) Tx performance regression after v3.15 #536

Open
benjaminogles opened this issue Nov 30, 2021 · 0 comments
Open

X300 (UBX160) Tx performance regression after v3.15 #536

benjaminogles opened this issue Nov 30, 2021 · 0 comments

Comments

@benjaminogles
Copy link

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"

Additional Information

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant