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

Incremental improvements to the router benchmark tooling #4518

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

jiceatscion
Copy link
Contributor

@jiceatscion jiceatscion commented May 3, 2024

Summary of changes:

  • The packet size is now configurable. CI uses a constant while the benchmark command accepts an optional argument.
  • The benchmark command sets the mtu to 9000 on the host side and instructs the user to do the same on the router side. In the CI test variant: an mtu of 9000 (not 8000) is used on both sides.
  • The performance index formula gained a tentative value for the NIC_CONSTANT constant.
  • The benchmark's total number of packets (per testcase) is no longer tunable. Instead, the duration is what is configurable. Both the CI test and the benchmark command use 13 seconds per test case.
  • The benchmark's output includes a bit more information: bit rate and raw (not corrected for preemptions) packet rate.
  • A useless and noisy error message was silenced in brload: that which was output for every foreign packet received (turns out that some Realtek hardware sends proprietary management traffic as Ethernet frames).
  • Improved the relevance of mmbm by deliberately misaligning buffers. Also make sure to not use more buffers than can fit in L3 cache when probing for L2 cache + TLB misses.
  • Added zip as a dependency after finding it isn't part of Debian by default.

jiceatscion and others added 4 commits April 25, 2024 10:27
* Enable variable packet sizes to explore the per packet vs per byte performance.
* Increase the fidelity of the mmbm microbenchmark: disalign the buffers deliberately to ensure full cache set diversity.
…fixes.

Fixes:
* Set MTU to 9000, not 8000. 8000 simply doesn't work sometimes.
* Remove noisy error message from brload (when encountering unknown frame types.
* Add mention of mtu in benchmark.py instructions.
* Lengthen test to 20M packets (really we need to replace that with a duration).
Mainly:
* Facilitate changing the packet size.
* Output a bit more information.
* Tune the benchmark duration rather than the number of packets.
@matzf
Copy link
Member

matzf commented May 3, 2024

This change is Reviewable

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

Successfully merging this pull request may close these issues.

None yet

2 participants