[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Using virtio for inter-VM communication
From: |
Rusty Russell |
Subject: |
Re: [Qemu-devel] Using virtio for inter-VM communication |
Date: |
Thu, 12 Jun 2014 11:57:07 +0930 |
User-agent: |
Notmuch/0.17 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-pc-linux-gnu) |
Henning Schild <address@hidden> writes:
> Hi,
>
> i am working on the jailhouse[1] project and am currently looking at
> inter-VM communication. We want to connect guests directly with virtual
> consoles based on shared memory. The code complexity in the hypervisor
> should be minimal, it should just make the shared memory discoverable
> and provide a signaling mechanism.
Hi Henning,
The virtio assumption was that the host can see all of guest
memory. This simplifies things significantly, and makes it efficient.
If you don't have this, *someone* needs to do a copy. Usually the guest
OS does a bounce buffer into your shared region. Goodbye performance.
Or you can play remapping tricks. Goodbye performance again.
My preferred model is to have a trusted helper (ie. host) which
understands how to copy between virtio rings. The backend guest (to
steal Xen vocab) R/O maps the descriptor, avail ring and used rings in
the guest. It then asks the trusted helper to do various operation
(copy into writable descriptor, copy out of readable descriptor, mark
used). The virtio ring itself acts as a grant table.
Note: that helper mechanism is completely protocol agnostic. It was
also explicitly designed into the virtio mechanism (with its 4k
boundaries for data structures and its 'len' field to indicate how much
was written into the descriptor).
It was also never implemented, and remains a thought experiment.
However, implementing it in lguest should be fairly easy.
Cheers,
Rusty.
- Re: [Qemu-devel] Why I advise against using ivshmem, (continued)
- Re: [Qemu-devel] Why I advise against using ivshmem, Markus Armbruster, 2014/06/13
- Re: [Qemu-devel] Why I advise against using ivshmem, Vincent JARDIN, 2014/06/13
- Re: [Qemu-devel] Why I advise against using ivshmem, Jobin Raju George, 2014/06/13
- Re: [Qemu-devel] Why I advise against using ivshmem, Paolo Bonzini, 2014/06/13
- Re: [Qemu-devel] Why I advise against using ivshmem, Vincent JARDIN, 2014/06/13
- Re: [Qemu-devel] Why I advise against using ivshmem, Paolo Bonzini, 2014/06/13
- Re: [Qemu-devel] Why I advise against using ivshmem, Vincent JARDIN, 2014/06/14
- Re: [Qemu-devel] Why I advise against using ivshmem, Stefan Hajnoczi, 2014/06/16
- Re: [Qemu-devel] Why I advise against using ivshmem, Olivier MATZ, 2014/06/13
- Re: [Qemu-devel] Why I advise against using ivshmem, Jobin Raju George, 2014/06/13
Re: [Qemu-devel] Using virtio for inter-VM communication,
Rusty Russell <=
- Re: [Qemu-devel] Using virtio for inter-VM communication, Jan Kiszka, 2014/06/12
- Re: [Qemu-devel] Using virtio for inter-VM communication, Rusty Russell, 2014/06/12
- Re: [Qemu-devel] Using virtio for inter-VM communication, Jan Kiszka, 2014/06/13
- Re: [Qemu-devel] Using virtio for inter-VM communication, Paolo Bonzini, 2014/06/13
- Re: [Qemu-devel] Using virtio for inter-VM communication, Jan Kiszka, 2014/06/15
- Re: [Qemu-devel] Using virtio for inter-VM communication, Paolo Bonzini, 2014/06/17
- Re: [Qemu-devel] Using virtio for inter-VM communication, Jan Kiszka, 2014/06/17