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