From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cam Macdonell Subject: [PATCH v8 0/5] Inter-VM Shared Memory Device Date: Mon, 26 Jul 2010 18:10:56 -0600 Message-ID: <1280189461-1929-1-git-send-email-cam@cs.ualberta.ca> Cc: kvm@vger.kernel.org, Cam Macdonell To: qemu-devel@nongnu.org Return-path: Received: from fleet.cs.ualberta.ca ([129.128.22.22]:33327 "EHLO fleet.cs.ualberta.ca" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752411Ab0G0ALJ (ORCPT ); Mon, 26 Jul 2010 20:11:09 -0400 Sender: kvm-owner@vger.kernel.org List-ID: Latest patch for PCI shared memory device that maps a host shared memory object to be shared between guests new in this series v8 - rebased to qemu.git - added qemu_ram_alloc_from_ptr() function - removed irqfd support as support functions are not yet in qemu v7 - 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 (5): Provide a function to add an allocated region of memory to the qemu RAM. 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 + cpu-common.h | 2 + docs/specs/ivshmem_device_spec.txt | 96 ++++ exec.c | 43 ++ hw/hw.h | 2 + hw/ivshmem.c | 834 ++++++++++++++++++++++++++++++++++++ kvm-all.c | 32 ++ kvm.h | 1 + qemu-char.c | 6 + qemu-char.h | 3 + qemu-doc.texi | 43 ++ savevm.c | 44 ++- 12 files changed, 1106 insertions(+), 3 deletions(-) create mode 100644 docs/specs/ivshmem_device_spec.txt create mode 100644 hw/ivshmem.c From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=42953 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OdXlU-0003PP-SY for qemu-devel@nongnu.org; Mon, 26 Jul 2010 20:11:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OdXlS-0006mg-LK for qemu-devel@nongnu.org; Mon, 26 Jul 2010 20:11:24 -0400 Received: from fleet.cs.ualberta.ca ([129.128.22.22]:33334) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OdXlS-0006ks-7D for qemu-devel@nongnu.org; Mon, 26 Jul 2010 20:11:22 -0400 From: Cam Macdonell Date: Mon, 26 Jul 2010 18:10:56 -0600 Message-Id: <1280189461-1929-1-git-send-email-cam@cs.ualberta.ca> Subject: [Qemu-devel] [PATCH v8 0/5] Inter-VM Shared Memory Device List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Cam Macdonell , kvm@vger.kernel.org Latest patch for PCI shared memory device that maps a host shared memory object to be shared between guests new in this series v8 - rebased to qemu.git - added qemu_ram_alloc_from_ptr() function - removed irqfd support as support functions are not yet in qemu v7 - 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 (5): Provide a function to add an allocated region of memory to the qemu RAM. 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 + cpu-common.h | 2 + docs/specs/ivshmem_device_spec.txt | 96 ++++ exec.c | 43 ++ hw/hw.h | 2 + hw/ivshmem.c | 834 ++++++++++++++++++++++++++++++++++++ kvm-all.c | 32 ++ kvm.h | 1 + qemu-char.c | 6 + qemu-char.h | 3 + qemu-doc.texi | 43 ++ savevm.c | 44 ++- 12 files changed, 1106 insertions(+), 3 deletions(-) create mode 100644 docs/specs/ivshmem_device_spec.txt create mode 100644 hw/ivshmem.c