Skip to content
  • Ian Jackson's avatar
    libxl: wait for qemu to acknowledge logdirty command · ab60b0b3
    Ian Jackson authored
    
    
    The current migration code in libxl instructs qemu to start or stop
    logdirty, but it does not wait for an acknowledgement from qemu before
    continuing.  This might lead to memory corruption (!)
    
    Fix this by waiting for qemu to acknowledge the command.
    
    Unfortunately the necessary ao arrangements for waiting for this
    command are unique because qemu has a special protocol for this
    particular operation.
    
    Also, this change means that the switch_qemu_logdirty callback
    implementation in libxl can no longer synchronously produce its return
    value, as it now needs to wait for xenstore.  So we tell the
    marshalling code generator that it is a message which does not need a
    reply.  This turns the callback function called by the marshaller into
    one which returns void; the callback function arranges to later
    explicitly sends the reply to the helper, when the xs watch triggers
    and the appropriate value is read from xenstore.
    
    Signed-off-by: default avatarIan Jackson <ian.jackson@eu.citrix.com>
    Acked-by: default avatarIan Campbell <ian.campbell@citrix.com>
    ab60b0b3