diff options
-rw-r--r-- | docs/specs/ivshmem-spec.txt | 2 | ||||
-rw-r--r-- | hw/misc/ivshmem.c | 6 | ||||
-rw-r--r-- | qemu-doc.texi | 5 |
3 files changed, 13 insertions, 0 deletions
diff --git a/docs/specs/ivshmem-spec.txt b/docs/specs/ivshmem-spec.txt index f3912c0..a1f5499 100644 --- a/docs/specs/ivshmem-spec.txt +++ b/docs/specs/ivshmem-spec.txt @@ -164,6 +164,8 @@ For each new client that connects to the server, the server - sends interrupt setup messages to the new client (these contain file descriptors for receiving interrupts). +The first client to connect to the server receives ID zero. + When a client disconnects from the server, the server sends disconnect notifications to the other clients. diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 4552060..132387f 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -887,6 +887,12 @@ static void ivshmem_common_realize(PCIDevice *dev, Error **errp) return; } + if (s->master == ON_OFF_AUTO_ON && s->vm_id != 0) { + error_setg(errp, + "master must connect to the server before any peers"); + return; + } + qemu_chr_add_handlers(s->server_chr, ivshmem_can_receive, ivshmem_read, NULL, s); diff --git a/qemu-doc.texi b/qemu-doc.texi index 0dd01c7..79141d3 100644 --- a/qemu-doc.texi +++ b/qemu-doc.texi @@ -1295,12 +1295,17 @@ When using the server, the guest will be assigned a VM ID (>=0) that allows gues using the same server to communicate via interrupts. Guests can read their VM ID from a device register (see ivshmem-spec.txt). +@subsubsection Migration with ivshmem + With device property @option{master=on}, the guest will copy the shared memory on migration to the destination host. With @option{master=off}, the guest will not be able to migrate with the device attached. In the latter case, the device should be detached and then reattached after migration using the PCI hotplug support. +At most one of the devices sharing the same memory can be master. The +master must complete migration before you plug back the other devices. + @subsubsection ivshmem and hugepages Instead of specifying the <shm size> using POSIX shm, you may specify |