Commit 5c0b62d
authored
This branch updates our dependency on `oxide-tokio-rt` to pick up Tokio
v1.52.0 and the corresponding changes to the default runtime settings in
`oxide-tokio-rt`. In particular, this allows us to pick up two of my
upstream fixes in Tokio for a pair of issues that have been major thorns
in our side for some time:
* Tokio PR tokio-rs/tokio#7431, released in [Tokio v1.51.0], changes the
multi-threaded runtime to allow tasks in the LIFO slot to participate
in work-stealing. Therefore, it should no longer be necessary to
disable the LIFO slot optimization, as the pathology described in
#8334, where a task placed in the LIFO slot can become permanently or
semi-permanently stuck while the task that notified them runs for a
long time without yielding, can no longer occur. `oxide-tokio-rt`
v0.1.4 removes the runtime configuration to disable the LIFO slot as
the issue has been fixed upstream.
* Tokio PR tokio-rs/tokio#8010, released in [Tokio v1.52.0], which adds
eager handoff for the I/O and time drivers in the multi-threaded
runtime. This is currently an experimental feature, although it is
your author's opinion that this is really a fix for incorrect runtime
behavior.[^1] It changes worker threads in the multi-threaded runtime
to wake another worker prior to polling tasks if that worker had
previously been parked on the I/O driver or timer wheel. Eagerly
handing off these resources should prevent pathologies such as #9619.
`oxide-tokio-rt` v0.1.4 enables this behavior by default.
Fixes #8334
Fixes #9619
[Tokio v1.52.0]:
https://github.com/tokio-rs/tokio/releases/tag/tokio-1.52.0
[Tokio v1.51.0]:
https://github.com/tokio-rs/tokio/releases/tag/tokio-1.51.0
[^1]: Cue @leftwo's dictum that a "performance regression" from fixing
incorrect behavior...isn't a performance regression.
1 parent fdda81e commit 5c0b62d
3 files changed
Lines changed: 54 additions & 63 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
659 | 659 | | |
660 | 660 | | |
661 | 661 | | |
662 | | - | |
| 662 | + | |
663 | 663 | | |
664 | 664 | | |
665 | 665 | | |
| |||
0 commit comments