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

Transmit directly from connection tasks #1729

Merged
merged 15 commits into from
Apr 26, 2024
Merged

Transmit directly from connection tasks #1729

merged 15 commits into from
Apr 26, 2024

Commits on Apr 26, 2024

  1. Fold redundant use blocks

    Ralith committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    d1b4c6c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0dd88ad View commit details
    Browse the repository at this point in the history
  3. Replace AsyncUdpSocket::poll_send with try_send and poller object

    Allows multiple tasks to concurrently wait for writability on the same
    socket. See the [tokio] and [async-io] docs for details.
    
    [tokio]: https://docs.rs/tokio/latest/tokio/net/struct.UdpSocket.html
    [async-io]: https://docs.rs/async-io/latest/async_io/struct.Async.html#concurrent-io
    Ralith committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    1c27e39 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8c527ba View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9bd70fa View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0886c2d View commit details
    Browse the repository at this point in the history
  7. Reduce rightward drift

    Ralith committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    d309daf View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    38b445b View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    7276154 View commit details
    Browse the repository at this point in the history
  10. Don't buffer endpoint-generated datagrams

    Dropping these has low cost because they're not associated with any
    connection.
    Ralith committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    68af423 View commit details
    Browse the repository at this point in the history
  11. Fix bitrotted fallback UDP backend

    `UdpState` was removed some time ago, and various other interface
    details have changed. As a result, the build would fail on platforms
    without native support.
    Ralith committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    a8f2c86 View commit details
    Browse the repository at this point in the history
  12. Drop sendmmsg support

    As we no longer buffer multiple transmits in memory, this complexity
    is unused. GSO is expected to account for most, if not all, of the
    performance benefit.
    Ralith committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    b3a0fc0 View commit details
    Browse the repository at this point in the history
  13. Transmit borrowed UDP payloads

    Because we no longer buffer transmits for unpredictable periods,
    there's no need to share ownership of their contents.
    Ralith committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    c23674e View commit details
    Browse the repository at this point in the history
  14. Fix incorrect size in split_transmit

    This didn't impact any tests, but was confusing.
    Ralith committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    b84d1df View commit details
    Browse the repository at this point in the history
  15. Replace BytesMut transmit buffers with Vec

    We no longer need to share ownership of this memory, so we should use
    a simpler type to reflect our simpler requirements.
    Ralith committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    1b63ecf View commit details
    Browse the repository at this point in the history