|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH v7 0/4] Inter-VM shared memory device |
Date: | Mon, 26 Jul 2010 14:41:53 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.10) Gecko/20100528 Lightning/1.0b1 Thunderbird/3.0.5 |
On 07/26/2010 02:01 PM, Cam Macdonell wrote:
On Mon, Jul 26, 2010 at 7:48 AM, Anthony Liguori<address@hidden> wrote:On 06/15/2010 03:23 PM, Cam Macdonell wrote:Latest patch for PCI shared memory device that maps a host shared memory object to be shared between guestsIs this against qemu.git or qemu-kvm.git? It depends on functions like qemu_ram_map() which are not present in qemu.git (and are present in qemu-kvm.git).It is against qemu-kvm.git. Is qemu_ram_map() going into qemu.git? Another function I use (and virtio in qemu-kvm uses as well) is kvm_set_irqfd() that is not qemu.git either. Do I need ifdef these functions with CONFIG_KVM?
kvm_set_irqfd() is fine, it just needs to be ported. It should be there due to vhost though?
qemu_ram_map() is more difficult. I would think the better approach would be to invert things. Instead of a "give me a stable mapping that is shared atomically with a guest to this ram region", I would go with "go create a ram region with this preallocated memory" and then just assume that afterwards, you can make use of it and it's exposed as atomic memory.
They're both layering violations, but at least the later is encapsulated to just the shared memory driver.
Regards, Anthony Liguori
Please advise as to how to handle these two functions and then I can rebase against qemu.git. Thanks, CamRegards, Anthony Liguorinew in this series - replace marking memory from v6 with marking device as unmigratable indicating that it should be unplugged before migration and re-added after. - 'peer' case changed to require removal before migration, only 'master' devices can be migrated while attached. v6 - migration support with 'master' and 'peer' roles for guest to determine who "owns" memory - modified phys_ram_dirty array for marking memory as not to be migrated v5: - fixed segfault for non-server case - code style fixes - removed limit on the number of guests - shared memory server is now in qemu.git/contrib - made ioeventfd setup function generic - removed interrupts when guest joined (let application handle it) v4: - moved to single Doorbell register and use datamatch to trigger different VMs rather than one register per eventfd - remove writing arbitrary values to eventfds. Only values of 1 are now written to ensure correct usage Cam Macdonell (4): Device specification for shared memory PCI device Add function to assign ioeventfd to MMIO. Support marking a device as non-migratable Inter-VM shared memory PCI device Makefile.target | 3 + docs/specs/ivshmem_device_spec.txt | 96 +++++ hw/hw.h | 1 + hw/ivshmem.c | 823 ++++++++++++++++++++++++++++++++++++ kvm-all.c | 32 ++ kvm.h | 1 + qemu-char.c | 6 + qemu-char.h | 3 + qemu-doc.texi | 43 ++ savevm.c | 32 ++- 10 files changed, 1037 insertions(+), 3 deletions(-) create mode 100644 docs/specs/ivshmem_device_spec.txt create mode 100644 hw/ivshmem.c
[Prev in Thread] | Current Thread | [Next in Thread] |