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


Reply via email to