On 02/24/2010 08:20 AM, Cam Macdonell wrote:

Virtio is really a DMA engine.  One of the nice things about it's design is
that you can do things like transparent bounce buffering if needed.  Adding
a mechanism like this breaks this abstract and turns virtio into something
that's more than I think it should be.

For guest shared memory, what makes sense to me is to make use of uio_pci
within a guest to map bars in userspace.  The device can have the first bar
map a small MMIO region that is tied to a ioeventfd with KVM.  With just
qemu, it can be tied to a normal eventfd.  You can use irqfd with KVM to tie
an eventfd to the PCI irq.  Likewise, you can use a normal eventfd to
emulate that.  I'd suggest using a /dev/shm file to act as the shared memory
segment.  You'll need a little magic within qemu_ram_alloc() to use this
(maybe qemu_ram_alloc() should take a context parameter so this can be
setup).
Part of my goal with this patch was to support systems without PCI.
My previous patch

Which? The only one I know of is s390 (and it would be a pity not to have shared memory for that).

--
error compiling committee.c: too many arguments to function



Reply via email to