From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=49350 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OKeiU-0003vJ-0K for qemu-devel@nongnu.org; Fri, 04 Jun 2010 17:46:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OKeiS-0000T0-Uv for qemu-devel@nongnu.org; Fri, 04 Jun 2010 17:46:13 -0400 Received: from fleet.cs.ualberta.ca ([129.128.22.22]:52435) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OKeiS-0000Ne-MG for qemu-devel@nongnu.org; Fri, 04 Jun 2010 17:46:12 -0400 From: Cam Macdonell Date: Fri, 4 Jun 2010 15:45:36 -0600 Message-Id: <1275687942-12312-1-git-send-email-cam@cs.ualberta.ca> Subject: [Qemu-devel] [PATCH v6 0/6] Inter-VM Shared Memory Device with migration support 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 - migration support with 'master' and 'peer' roles for guest to determine who "owns" memory. With 'master', the guest has the canonical copy of the shared memory and will copy it with it on migration. With 'role=peer', the guest will not copy the shared memory, but attach to what is on the destination machine. - modified phys_ram_dirty array for marking memory as not to be migrated - add support for non-migrated memory regions 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 (6): Device specification for shared memory PCI device Adds two new functions for assigning ioeventfd and irqfds. Change phys_ram_dirty to phys_ram_status Add support for marking memory to not be migrated. On migration, memory is checked for the NO_MIGRATION_FLAG. Inter-VM shared memory PCI device the stand-alone shared memory server for inter-VM shared memory Makefile.target | 3 + arch_init.c | 28 +- contrib/ivshmem-server/Makefile | 16 + contrib/ivshmem-server/README | 30 ++ contrib/ivshmem-server/ivshmem_server.c | 353 +++++++++++++ contrib/ivshmem-server/send_scm.c | 208 ++++++++ contrib/ivshmem-server/send_scm.h | 19 + cpu-all.h | 18 +- cpu-common.h | 2 + docs/specs/ivshmem_device_spec.txt | 96 ++++ exec.c | 48 ++- hw/ivshmem.c | 852 +++++++++++++++++++++++++++++++ kvm-all.c | 32 ++ kvm.h | 1 + qemu-char.c | 6 + qemu-char.h | 3 + qemu-doc.texi | 32 ++ 17 files changed, 1710 insertions(+), 37 deletions(-) create mode 100644 contrib/ivshmem-server/Makefile create mode 100644 contrib/ivshmem-server/README create mode 100644 contrib/ivshmem-server/ivshmem_server.c create mode 100644 contrib/ivshmem-server/send_scm.c create mode 100644 contrib/ivshmem-server/send_scm.h create mode 100644 docs/specs/ivshmem_device_spec.txt create mode 100644 hw/ivshmem.c