Skip to content
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
f726e9c
WIP add test that shows pathological behaviour of SendBuffer with sma…
rklaehn Dec 12, 2025
7c2a6e3
Rename and document the SendBuffer fields
rklaehn Dec 12, 2025
f8a1772
Introduce SendBufferData to abstract the actual data storage
rklaehn Dec 12, 2025
4b66fc3
Move the offset tracking into SendBufferData
rklaehn Dec 12, 2025
5c80627
Introduce get_into and make get test only
rklaehn Dec 12, 2025
550e610
fmt
rklaehn Dec 12, 2025
c5e9f39
info logging in test
rklaehn Dec 12, 2025
b842953
Merge branch 'main-iroh' into fix-send-buffer
rklaehn Dec 12, 2025
5c87c60
Comment out test
rklaehn Dec 12, 2025
507aaea
spelling
rklaehn Dec 12, 2025
dcfd862
make coverage happy
rklaehn Dec 12, 2025
c8d73c1
Convert many_small_writes_delayed_acks into a bench
rklaehn Dec 12, 2025
e7b6ca2
Make old et conditional for test or bench
rklaehn Dec 12, 2025
b7f695f
Remove the damn test to make wasm happpy, and change module name to m…
rklaehn Dec 12, 2025
4d8363d
Merge branch 'main-iroh' into fix-send-buffer
rklaehn Dec 15, 2025
41dce79
Merge branch 'main-iroh' into fix-send-buffer
rklaehn Dec 16, 2025
0234c4a
Switch to criterion here as well
rklaehn Dec 16, 2025
eb068dd
Merge branch 'main' into fix-send-buffer
rklaehn Dec 22, 2025
a4a1c54
Remove bench from defaults - no idea how it got in there
rklaehn Dec 22, 2025
772f849
Add proptest for SendBuffer
rklaehn Dec 22, 2025
52740b8
Merge branch 'main' into fix-send-buffer
rklaehn Dec 23, 2025
f4def63
Don't run proptests in wasm
rklaehn Dec 23, 2025
f376a0d
Make the subscribe test util available and use it instead of println!
rklaehn Dec 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions quinn-proto/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ tracing-log = ["tracing/log"]
rustls-log = ["rustls?/logging"]
# Enable qlog support
qlog = ["dep:qlog"]
bench = ["dep:bencher"]

# Internal (PRIVATE!) features used to aid testing.
# Don't rely on these whatsoever. They may disappear at any time.
Expand All @@ -44,6 +45,7 @@ __rustls-post-quantum-test = []
[dependencies]
arbitrary = { workspace = true, optional = true }
aws-lc-rs = { workspace = true, optional = true }
bencher = { workspace = true, optional = true }
bytes = { workspace = true }
fastbloom = { workspace = true, optional = true }
identity-hash = { workspace = true }
Expand Down Expand Up @@ -82,6 +84,11 @@ wasm-bindgen-test = { workspace = true }
proptest = { workspace = true }
test-strategy = { workspace = true }

[[bench]]
name = "send_buffer"
harness = false
required-features = ["bench"]

[lints.rust]
# https://rust-fuzz.github.io/book/cargo-fuzz/guide.html#cfgfuzzing
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(fuzzing)'] }
Expand Down
8 changes: 8 additions & 0 deletions quinn-proto/benches/send_buffer.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
use bencher::{benchmark_group, benchmark_main};
use iroh_quinn_proto::bench_exports::send_buffer_benches::*;

// Since we can't easily access test utilities, this is a minimal benchmark
// that measures the actual problematic operations directly

benchmark_group!(benches, get_into_many_segments, get_loop_many_segments,);
benchmark_main!(benches);
3 changes: 1 addition & 2 deletions quinn-proto/src/connection/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,7 @@ pub use paths::{ClosedPath, PathEvent, PathId, PathStatus, RttEstimator, SetPath
use paths::{PathData, PathState};

pub(crate) mod qlog;

mod send_buffer;
pub(crate) mod send_buffer;

mod spaces;
#[cfg(fuzzing)]
Expand Down
Loading
Loading