-
Notifications
You must be signed in to change notification settings - Fork 325
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
Consider using kqueue in hypervisor socket implementation #211
Comments
Hi team, any updates on this would be appreciated |
At one point we were trying to avoid MacOS-isms in an attempt to keep the option of using Hyperkit on other platforms open in the future. I think we've basically given up on that so a PR to switch to I had thought that Have we considered whether multiplexing in vpnkit might be easier though? |
Has there been any more discussion around this ? Would love to see it fixed 😄 |
AFAIK nobody has worked on this. PRs are welcome. |
@ijc thanks for the update. I would happily have given this a go but C is not something I'm anywhere near competent in. |
The core of hyperkit uses
kqueue
viamevent.c
butpci_virtio_sock.c
uses plain oldselect
.If
hyperkit
is used together withvpnkit
in Docker for Mac and large numbers (> 1024) of connections are port forwarded thenhyperkit
becomes unable to process any moreAF_VSOCK
connections due to theaccept
ed file descriptor being greater thanFD_SETSIZE
, see for examplehyperkit/src/lib/pci_virtio_sock.c
Line 1364 in 3ace985
This manifests as errors under load, for example
from docker/for-mac#2841
This scalability limit could be removed by switching from
select
tokqueue
(orpoll
) inpci_virtio_sock.c
.The text was updated successfully, but these errors were encountered: