vhost_net: a kernel-level virtio server
What it is: vhost net is a character device that can be used to reduce the number of system calls involved in virtio networking. Existing virtio net code is used in the guest without modification. There's similarity with vringfd, with some differences and reduced scope - uses eventfd for signalling - structures can be moved around in memory at any time (good for migration, bug work-arounds in userspace) - write logging is supported (good for migration) - support memory table and not just an offset (needed for kvm) common virtio related code has been put in a separate file vhost.c and can be made into a separate module if/when more backends appear. I used Rusty's lguest.c as the source for developing this part : this supplied me with witty comments I wouldn't be able to write myself. What it is not: vhost net is not a bus, and not a generic new system call. No assumptions are made on how guest performs hypercalls. Userspace hypervisors are supported as well as ...
Showing
- MAINTAINERS 9 additions, 0 deletionsMAINTAINERS
- arch/ia64/kvm/Kconfig 1 addition, 0 deletionsarch/ia64/kvm/Kconfig
- arch/powerpc/kvm/Kconfig 1 addition, 0 deletionsarch/powerpc/kvm/Kconfig
- arch/s390/kvm/Kconfig 1 addition, 0 deletionsarch/s390/kvm/Kconfig
- arch/x86/kvm/Kconfig 1 addition, 0 deletionsarch/x86/kvm/Kconfig
- drivers/Makefile 1 addition, 0 deletionsdrivers/Makefile
- drivers/vhost/Kconfig 11 additions, 0 deletionsdrivers/vhost/Kconfig
- drivers/vhost/Makefile 2 additions, 0 deletionsdrivers/vhost/Makefile
- drivers/vhost/net.c 661 additions, 0 deletionsdrivers/vhost/net.c
- drivers/vhost/vhost.c 1098 additions, 0 deletionsdrivers/vhost/vhost.c
- drivers/vhost/vhost.h 161 additions, 0 deletionsdrivers/vhost/vhost.h
- include/linux/Kbuild 1 addition, 0 deletionsinclude/linux/Kbuild
- include/linux/miscdevice.h 1 addition, 0 deletionsinclude/linux/miscdevice.h
- include/linux/vhost.h 130 additions, 0 deletionsinclude/linux/vhost.h
Please register or sign in to comment