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

ngtcp2: Enable Linux GSO #8909

Closed
wants to merge 1 commit into from
Closed

ngtcp2: Enable Linux GSO #8909

wants to merge 1 commit into from

Conversation

tatsuhiro-t
Copy link
Contributor

Enable Linux GSO in ngtcp2 QUIC. In order to recover from the
EAGAIN/EWOULDBLOCK by sendmsg with multiple packets in one GSO write,
packet buffer is now held by struct quicsocket. GSO write might fail
in runtime depending on NIC. Disable GSO if sendmsg returns EIO.

Enable Linux GSO in ngtcp2 QUIC.  In order to recover from the
EAGAIN/EWOULDBLOCK by sendmsg with multiple packets in one GSO write,
packet buffer is now held by struct quicsocket.  GSO write might fail
in runtime depending on NIC.  Disable GSO if sendmsg returns EIO.
@tatsuhiro-t
Copy link
Contributor Author

-T 4GiB file on loopback interface against ngtcp2 server:

without GSO:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4096M  100  1080  100 4096M     84   321M  0:00:12  0:00:12 --:--:--  323M

with GSO:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4096M  100  1080  100 4096M    137   522M  0:00:07  0:00:07 --:--:--  522M

@bagder bagder added the HTTP/3 h3 or quic related label May 24, 2022
@bagder bagder closed this in 3288e9c May 31, 2022
@bagder
Copy link
Member

bagder commented May 31, 2022

Thanks!

(I did two minor edits before I merged that fixed two warnings)

@bagder bagder deleted the ngtcp2-gso branch May 31, 2022 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
HTTP/3 h3 or quic related
Development

Successfully merging this pull request may close these issues.

None yet

2 participants