Re: [PATCH] AF_VMCHANNEL address family for guest<->host communication.

Anthony Liguori
2008-12-15T23:17:43Z

David Miller wrote:
> From: Anthony Liguori <anthony@codemonkey.ws>
> Date: Mon, 15 Dec 2008 17:01:14 -0600
>
>
>> No, TCP falls under the not simple category because it requires the
>> backend to have access to a TCP/IP stack.
>>
>
> I'm at a loss for words if you need TCP in the hypervisor, if that's
> what you're implying here.
>

No. KVM is not a traditional "hypervisor". It's more of a userspace
accelerator for emulators.

QEMU, a system emulator, calls in to the Linux kernel whenever it needs
to run guest code. Linux returns to QEMU whenever the guest has done an
MMIO operation or something of that nature. In this way, all of our
device emulation (including paravirtual backends) are implemented in the
host userspace in the QEMU process.

If we used TCP, we don't have a useful TCP/IP stack in QEMU, so we'd
have to inject that traffic into the host Linux instance, and then
receive the traffic in QEMU. Besides being indirect, it has some nasty
security implications that I outlined in my response to Jeremy's last note.

Regards,

Anthony Liguori

> You only need it in the guest and the host, which you already have,
> in the Linux kernel. Just transport that over virtio or whatever
> and be done with it.
>