Skip to content
  • Markus Armbruster's avatar
    62a830b6
    ivshmem: Require master to have ID zero · 62a830b6
    Markus Armbruster authored
    
    
    Migration with ivshmem needs to be carefully orchestrated to work.
    Exactly one peer (the "master") migrates to the destination, all other
    peers need to unplug (and disconnect), migrate, plug back (and
    reconnect).  This is sort of documented in qemu-doc.
    
    If peers connect on the destination before migration completes, the
    shared memory can get messed up.  This isn't documented anywhere.  Fix
    that in qemu-doc.
    
    To avoid messing up register IVPosition on migration, the server must
    assign the same ID on source and destination.  ivshmem-spec.txt leaves
    ID assignment unspecified, however.
    
    Amend ivshmem-spec.txt to require the first client to receive ID zero.
    The example ivshmem-server complies: it always assigns the first
    unused ID.
    
    For a bit of additional safety, enforce ID zero for the master.  This
    does nothing when we're not using a server, because the ID is zero for
    all peers then.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <1458066895-20632-40-git-send-email-armbru@redhat.com>
    62a830b6
    ivshmem: Require master to have ID zero
    Markus Armbruster authored
    
    
    Migration with ivshmem needs to be carefully orchestrated to work.
    Exactly one peer (the "master") migrates to the destination, all other
    peers need to unplug (and disconnect), migrate, plug back (and
    reconnect).  This is sort of documented in qemu-doc.
    
    If peers connect on the destination before migration completes, the
    shared memory can get messed up.  This isn't documented anywhere.  Fix
    that in qemu-doc.
    
    To avoid messing up register IVPosition on migration, the server must
    assign the same ID on source and destination.  ivshmem-spec.txt leaves
    ID assignment unspecified, however.
    
    Amend ivshmem-spec.txt to require the first client to receive ID zero.
    The example ivshmem-server complies: it always assigns the first
    unused ID.
    
    For a bit of additional safety, enforce ID zero for the master.  This
    does nothing when we're not using a server, because the ID is zero for
    all peers then.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <1458066895-20632-40-git-send-email-armbru@redhat.com>
Loading