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

Support epoll Without Using sendmmsg #1884

Closed
hros opened this issue Aug 8, 2021 · 4 comments · Fixed by #1896
Closed

Support epoll Without Using sendmmsg #1884

hros opened this issue Aug 8, 2021 · 4 comments · Fixed by #1896
Labels
Milestone

Comments

@hros
Copy link
Contributor

hros commented Aug 8, 2021

I am trying to port msquic to Julia
The Julia packaging framework, BinaryBuilder, is based on a relatively old version of libc which does not support sendmmsg which is used in src/platform/datapath_epoll.c
The library versions used by BinaryBuilder, are listed in this page

Is it possible to build msquic for Linux without the use of sendmmsg?
Would it impact performance?
Is there an option to add the necessary support without relying on a new version of glibc?

@nibanks nibanks added this to the Future milestone Aug 9, 2021
@nibanks nibanks changed the title sendmmsg Support epoll Without Using sendmmsg Aug 9, 2021
@thhous-msft
Copy link
Contributor

There will be a performance impact removing sendmmsg. Likely a significant one as well. Currently there is no build option to fall back to sendmsg, but that is potentially something that can be looked at in the future.

@hros
Copy link
Contributor Author

hros commented Aug 9, 2021

Then, if I understand correctly there is no way to build the project with older glib libraries?

What about adding the sendmmsg functionality as an external file when linking with older glib libraries?

@thhous-msft
Copy link
Contributor

thhous-msft commented Aug 9, 2021

Right now now sendmmsg is a requirement. Not something that couldn't be fixed, but glibc 2.14 (which was the first release to have sendmmsg) is 10 years old at this point, so we would need to prioritize it appropriately.

@thhous-msft
Copy link
Contributor

One other thing to add is that with older glibc versions you won't have GSO support either. So both features combined missing will result in the largest performance drop, as you only will be able to send a single UDP packet at a time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants