Commit message (Collapse)AuthorAgeFilesLines
* Avoid permanently disabled QEMU monitor when UNIX migration failsDaniel P. Berrange2009-12-191-5/+7
| | | | | | | | | | | | | | If a UNIX migration command is attempt to a UNIX socket which does not exist, then the monitor is suspended, but never resumed. This prevents any further use of the monitor * migration-unix.c: Only call migrate_fd_monitor_suspend() once connected to the UNIX socket. Signed-off-by: Daniel P. Berrange <> Signed-off-by: Anthony Liguori <> (cherry picked from commit 2dd650e58acbafedc7bf34045b7f81bb6c912e72)
* Don't leak file descriptorsKevin Wolf2009-12-031-3/+3
| | | | | | | | We're leaking file descriptors to child processes. Set FD_CLOEXEC on file descriptors that don't need to be passed to children to stop this misbehaviour. Signed-off-by: Kevin Wolf <> Signed-off-by: Anthony Liguori <>
* live migration: Propagate output monitor to callback handlerJan Kiszka2009-12-031-4/+6
| | | | | | | | | In order to allow proper progress reporting to the monitor that initiated the migration, forward the monitor reference through the migration layer down to SaveLiveStateHandler. Signed-off-by: Jan Kiszka <> Signed-off-by: Anthony Liguori <>
* Block live
| | | | | | | | | | | | | | | | | | | This patch introduces block migration called during live migration. Block are being copied to the destination in an async way. First the code will transfer the whole disk and then transfer all dirty blocks accumulted during the migration. Still need to improve transition from the iterative phase of migration to the end phase. For now transition will take place when all blocks transfered once, all the dirty blocks will be transfered during the end phase (guest is suspended). Changes from v4: - Global variabels moved to a global state structure allocated dynamically. - Minor coding style issues. - Poll block.c for tracking of dirty blocks instead of manage it here. Signed-off-by: Liran Schour <> Signed-off-by: Anthony Liguori <>
* Migration via unix sockets.Chris Lalancette2009-08-241-0/+216
Implement migration via unix sockets. While you can fake this using exec and netcat, this involves forking another process and is generally not very nice. By doing this directly in qemu, we can avoid the copy through the external nc command. This is useful for implementations (such as libvirt) that want to do "secure" migration; we pipe the data on the sending side into the unix socket, libvirt picks it up, encrypts it, and transports it, and then on the remote side libvirt decrypts it, dumps it to another unix socket, and feeds it into qemu. The implementation is straightforward and looks very similar to migration-exec.c and migration-tcp.c Signed-off-by: Chris Lalancette <> Signed-off-by: Anthony Liguori <>