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

bench(udp): run GSO, GRO and recvmmsg permutations #2010

Merged
merged 5 commits into from
Oct 24, 2024

Conversation

mxinden
Copy link
Contributor

@mxinden mxinden commented Oct 9, 2024

  • Benchmark all permutations of GSO, GRO and recvmmsg.
  • Add support for all platforms.
  • Add test-run (i.e. cargo test --benches, single execution in debug mode) to CI.

quinn-udp/Cargo.toml Show resolved Hide resolved
quinn-udp/benches/throughput.rs Show resolved Hide resolved
quinn-udp/benches/throughput.rs Outdated Show resolved Hide resolved
quinn-udp/benches/throughput.rs Show resolved Hide resolved
.github/workflows/rust.yml Outdated Show resolved Hide resolved
@mxinden mxinden marked this pull request as ready for review October 10, 2024 07:34
@mxinden
Copy link
Contributor Author

mxinden commented Oct 10, 2024

@larseggert this pull request should resolve all issues raised in #1993 (review). Can you take a look?

Targeting main directly given that changes are not tied to #1993.

@mxinden
Copy link
Contributor Author

mxinden commented Oct 10, 2024

@djc @Ralith ready for a full review. Let me know if you find this pull request helpful.

Will unblock #1993.

Copy link
Member

@djc djc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is probably a good change but would like to see more organization in terms of separate commits -- here's some early feedback.

quinn-udp/Cargo.toml Show resolved Hide resolved
quinn-udp/benches/throughput.rs Outdated Show resolved Hide resolved
quinn-udp/benches/throughput.rs Outdated Show resolved Hide resolved
quinn-udp/benches/throughput.rs Outdated Show resolved Hide resolved
quinn-udp/benches/throughput.rs Outdated Show resolved Hide resolved
@djc djc requested a review from Ralith October 14, 2024 09:21
@mxinden mxinden force-pushed the bench-throughput-gso-gro-recvmmsg branch 2 times, most recently from 190f698 to 8b31a9b Compare October 20, 2024 08:07
@mxinden
Copy link
Contributor Author

mxinden commented Oct 20, 2024

Thank you for the review @djc. I applied all suggestions. In addition, I split the one large commit into smaller atomic commits. Let me know what you think.

@mxinden
Copy link
Contributor Author

mxinden commented Oct 20, 2024

Windows CI failure seems intermittent. See e.g. https://github.com/mxinden/quinn/actions/runs/11424992884/job/31786093629 for a succeeding run, simply adding a RUST_BACKTRACE=1, and a recent failure https://github.com/quinn-rs/quinn/actions/runs/11478020814/job/31941343750?pr=2010.

quinn-udp/benches/throughput.rs Outdated Show resolved Hide resolved
quinn-udp/benches/throughput.rs Outdated Show resolved Hide resolved
quinn-udp/benches/throughput.rs Show resolved Hide resolved
@mxinden mxinden force-pushed the bench-throughput-gso-gro-recvmmsg branch 2 times, most recently from 3df3051 to 25b4414 Compare October 23, 2024 10:28
@mxinden mxinden force-pushed the bench-throughput-gso-gro-recvmmsg branch from 25b4414 to 93a2692 Compare October 23, 2024 11:01
@mxinden
Copy link
Contributor Author

mxinden commented Oct 23, 2024

Thank you for the review @Ralith. Would you mind taking another look?

@mxinden mxinden requested a review from Ralith October 23, 2024 11:39
Copy link
Member

@djc djc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this looks better!

quinn-udp/benches/throughput.rs Outdated Show resolved Hide resolved
quinn-udp/benches/throughput.rs Show resolved Hide resolved
Linux drops UDP datagrams larger than 64k, even when segmented. In other words,
64k - headers is the maximum GSO payload size.
@mxinden mxinden force-pushed the bench-throughput-gso-gro-recvmmsg branch from 93a2692 to 8d473c5 Compare October 23, 2024 14:10
Copy link
Collaborator

@Ralith Ralith left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@djc djc added this pull request to the merge queue Oct 24, 2024
Merged via the queue into quinn-rs:main with commit 91a639f Oct 24, 2024
14 checks passed
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.

4 participants