-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
buffer: improve read reservations to efficiently handle multiple slices #14054
Merged
Merged
Changes from 5 commits
Commits
Show all changes
59 commits
Select commit
Hold shift + click to select a range
9c5199f
buffer: improve read reservations to efficiently handle multiple slices
ggreenway 246f167
Merge remote-tracking branch 'upstream/master' into multi-slice-read
ggreenway ae815f1
honor high watermark
ggreenway 6adeeab
Merge remote-tracking branch 'upstream/master' into multi-slice-read
ggreenway 6af8023
fix test expectation
ggreenway c8c9cce
fix incorrect merge conflict resolution
ggreenway a0b68b7
remove commented out code
ggreenway ff13426
Remove old reserve/commit API; migrate all uses to new API
ggreenway c0661eb
don't increase size of preferred length in watermark code trying to
ggreenway 0416701
Merge remote-tracking branch 'upstream/master' into multi-slice-read
ggreenway 6e9f1aa
api comments; delete old code
ggreenway eb3fe0e
readability cleanup
ggreenway aff7e53
change interface to have a different Reservation type for single-slic…
ggreenway 508d4dc
Merge remote-tracking branch 'upstream/master' into multi-slice-read
ggreenway abcbe9e
build fixes
ggreenway be6a9a3
fix watermark buffer reservation logic
ggreenway 11a4362
Merge remote-tracking branch 'upstream/master' into multi-slice-read
ggreenway 532edbb
remove accidental addition to setup_clang.sh
ggreenway 53fbc33
fixes
ggreenway 4bef236
Merge remote-tracking branch 'upstream/master' into multi-slice-read
ggreenway efd8057
release note
ggreenway 75278b6
fix merge conflict
ggreenway e56585c
clang_tidy
ggreenway fc7b592
fix mac build
ggreenway 45e7353
Merge remote-tracking branch 'upstream/master' into multi-slice-read
ggreenway 5885132
one more ASSERT
ggreenway 675cd59
Merge remote-tracking branch 'upstream/main' into multi-slice-read
ggreenway a1e6c3e
remove cast to fix compilation; the types matched exactly without the…
ggreenway 0e80aca
fix tls throughput benchmark correctness
ggreenway a5deffa
undo change to connection impl test buffer size
ggreenway dc4d618
ensure reservation is the desired size
ggreenway 7bd544a
comment in test regarding when slices are added, and additional
ggreenway 4e0331d
add expectation on reservation length
ggreenway b4c8e46
rework API to not take a param for reservation size for reads
ggreenway 112e3bd
reset length_ on commit()
ggreenway 6195334
check for double-commit()
ggreenway 3475f1d
remove assert that isn't true in fuzz corpus
ggreenway f8d2a72
ensure we don't overflow the inline-vector in Reservation
ggreenway 01e6ebd
Merge remote-tracking branch 'upstream/main' into multi-slice-read
ggreenway 1e20eeb
fix buffer_fuzz
ggreenway d3559f8
reserveWithMaxLength
ggreenway 54d0162
add test for ENVOY_BUG
ggreenway c837704
make IoHandle::read() max_length optional
ggreenway 530e045
Add test for freelist; fixes to make it work like a stack
ggreenway 873f6be
Merge remote-tracking branch 'upstream/main' into multi-slice-read
ggreenway 0c92529
fix ordering of release notes (auto-merge got wrong order)
ggreenway 2cfd939
fix spelling
ggreenway 0c26ceb
slightly improve speed_test
ggreenway 07a9314
only allocate one block for impl to track ownership in reservation,
ggreenway 6bc1fc3
fix build
ggreenway 9f3a717
optimize: only lookup thread_local once per reservation
ggreenway ef66dc4
fix test
ggreenway 47d7cfd
clang-tidy
ggreenway ea5e975
minor cleanup of `len_` handling
ggreenway 4a92b7d
more expectations in ReserveZeroCommit
ggreenway 97bd65b
Merge remote-tracking branch 'upstream/main' into multi-slice-read
ggreenway 7b94c6f
Remove a test that no longer makes sense.
ggreenway 180ab4b
Merge remote-tracking branch 'upstream/main' into multi-slice-read
ggreenway 875e8d3
Merge remote-tracking branch 'upstream/main' into multi-slice-read
ggreenway File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the default move constructor work for this class?
I looked at the implementation of absl::InlinedVector's move constructor and I see it sets the size of the original to 0 in cases where inlined storage is used (good).
The buffer_ and length_ are still set to their original values after the move. I guess that's probably fine.