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

Need vhost / vsock support #99

Open
rminnich opened this issue Aug 14, 2022 · 8 comments
Open

Need vhost / vsock support #99

rminnich opened this issue Aug 14, 2022 · 8 comments

Comments

@rminnich
Copy link
Contributor

In some environments, the only available network is vhost / vsock. It would be wonderful to have this in gokvm.

@rminnich
Copy link
Contributor Author

https://github.com/qemu/qemu/blob/master/net/vhost-user.c may be a useful place to start understanding what a vmm needs to do.

@bobuhiro11
Copy link
Owner

Thanks for sharing the material. I would like to read it along with following documents:
https://www.qemu.org/docs/master/interop/vhost-user.html
https://access.redhat.com/solutions/3394851

@shehackedyou
Copy link

Ideally its best not to use it, but the purego module originally written for the Ebiten 2d game engine will enable you to call in *.so without cgo. It would be a temporary fix.

You are doing an outstanding job; I actually had started working on this but due to life events could not finish it so Im very excited to see this and find out ways I can assist.

@bobuhiro11
Copy link
Owner

Thanks for the comment. And sorry for the late reply.
I'm not familiar with ebiten, so if you have any doc on how to get *.so and how to integrate it, that would help us understand it a bit better.

@yushoyamaguchi
Copy link

@bobuhiro11
Is this issue stopping?
Could I try?

@bobuhiro11
Copy link
Owner

@yushoyamaguchi
Yes, it’s stopping now.
Of course, there is no problem to develop this feature!
Thank you.

@yushoyamaguchi
Copy link

yushoyamaguchi commented Dec 30, 2024

@bobuhiro11

Thank you for your reply.
I’d like to confirm one thing:
Which is focused on in this discussion ?

  1. vhost-user : The backend processing is handled by the user space bypassing kernel. (e.g., DPDK )
  2. vhost-net : The backend processing is handled by the kernel.

My interest is 2.

I'm so sorry if my understanding is wrong.

@bobuhiro11
Copy link
Owner

@yushoyamaguchi

My understanding is that we need to implement vhost-net and then vsock on top of that. it seems to be 2 steps.
Right now gokvm does not have these implementations, only a naive virtio-net implementation that reads/writes directly from gokvm to the tap device.

So I think it fits your interest in "2 vhost-net". You can either do the ip/tcp communication over vhost-net or include vhost-vsock.

Again, thanks for your interest!

ref: https://lencerf.github.io/post/2023-05-28-virtio-vhost-vsock/

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

No branches or pull requests

4 participants