Skip to content

Conversation

@mkeeter
Copy link
Contributor

@mkeeter mkeeter commented Apr 10, 2024

This is another standalone prep PR for #1252

We are planning to use backpressure alone to limit queue lengths for an Active downstairs, removing the IO_MAX_ACTIVE_JOBS/BYTES fault condition; using bounded queues doesn't make sense any more (and gives a false sense of security).

Using unbounded queues is more honest about our strategy, and also removes async from large chunks of the codebase. The latter isn't done in this PR (to avoid churn), but once DownstairsClient::send is made sync, it will ripple through a bunch of places!

@mkeeter mkeeter requested review from jmpesp and leftwo April 10, 2024 14:40
Copy link
Contributor

@leftwo leftwo left a comment

Choose a reason for hiding this comment

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

Release the queues!

@mkeeter mkeeter merged commit 6fcb470 into oxidecomputer:main Apr 10, 2024
@mkeeter mkeeter deleted the unbounded-queues branch April 10, 2024 19:34
mkeeter added a commit that referenced this pull request Apr 19, 2024
#1256 allowed `DownstairsClient::send` to become synchronous, but left
it `async` to avoid touching too many LOC.

This PR makes that single change, then turns the crank until `rustc` and
`clippy` stop complaining.

The result is pretty nice: waiting for events in `Upstairs::select`
remains async, but applying them becomes synch.
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.

3 participants