Statistics
| Branch: | Revision:

root / migration-tcp.c @ f487b677

History | View | Annotate | Download (2.3 kB)

# Date Author Comment
b352365f 03/11/2013 02:32 pm Paolo Bonzini

migration: eliminate s->migration_file

The indirection is useless now. Backends can open s->file directly.

Reviewed-by: Orit Wasserman <>
Reviewed-by: Juan Quintela <>
Signed-off-by: Paolo Bonzini <>...

0cc3f3cc 03/11/2013 02:32 pm Paolo Bonzini

qemu-file: add writable socket QEMUFile

Reviewed-by: Orit Wasserman <>
Reviewed-by: Juan Quintela <>
Signed-off-by: Paolo Bonzini <>
Signed-off-by: Juan Quintela <>

f8bbc128 03/11/2013 02:32 pm Paolo Bonzini

migration: use QEMUFile for migration channel lifetime

As a start, use QEMUFile to store the destination and close it.
qemu_get_fd gets a file descriptor that will be used by the write
callbacks.

Reviewed-by: Orit Wasserman <>
Reviewed-by: Juan Quintela <>...

e6a1cf21 03/11/2013 02:32 pm Paolo Bonzini

migration: use QEMUFile for writing outgoing migration data

Second, drop the file descriptor indirection, and write directly to the
QEMUFile.

Reviewed-by: Orit Wasserman <>
Reviewed-by: Juan Quintela <>
Signed-off-by: Paolo Bonzini <>...

dd217b87 12/21/2012 12:09 am Juan Quintela

migration: make writes blocking

Move all the writes to the migration_thread, and make writings
blocking. Notice that are still using the iothread for everything
that we do.

Signed-off-by: Juan Quintela <>

557ec5a0 12/20/2012 11:48 pm Juan Quintela

migration: include qemu-file.h

They don't use/know anything about buffered-file.

Signed-off-by: Juan Quintela <>

1de7afc9 12/19/2012 09:32 am Paolo Bonzini

misc: move include files to include/qemu/

Signed-off-by: Paolo Bonzini <>

caf71f86 12/19/2012 09:31 am Paolo Bonzini

migration: move include files to include/migration/

Signed-off-by: Paolo Bonzini <>

737e150e 12/19/2012 09:31 am Paolo Bonzini

block: move include files to include/block/

Signed-off-by: Paolo Bonzini <>

f8fe7964 12/19/2012 09:29 am Paolo Bonzini

janitor: do not include qemu-char everywhere

Touching char/char.h basically causes the whole of QEMU to
be rebuilt. Avoid this, it is usually unnecessary.

Signed-off-by: Paolo Bonzini <>

a6ef2909 11/02/2012 07:35 pm Paolo Bonzini

migration: clean up server sockets and handlers before invoking process_incoming_migration

A first step towards making a common "suffix" for all migration protocols,
and moving it to process_incoming_migration.

Reviewed-by: Orit Wasserman <>...

09bac73c 11/02/2012 07:35 pm Paolo Bonzini

migration: use closesocket, not close

Windows requires this. Migration does not quite work under Windows
but let's be uniform across QEMU.

Reviewed-by: Orit Wasserman <>
Signed-off-by: Paolo Bonzini <>

6c360136 11/02/2012 07:35 pm Paolo Bonzini

migration: xxx_close will only be called once

No need to test s->fd again, it is tested in the caller.

Reviewed-by: Orit Wasserman <>
Signed-off-by: Paolo Bonzini <>

ab52a824 11/02/2012 07:35 pm Paolo Bonzini

migration: close socket QEMUFile from socket_close

The common suffix now is process_incoming_migration+qemu_fclose.

Reviewed-by: Orit Wasserman <>
Signed-off-by: Paolo Bonzini <>

1c12e1f5 11/02/2012 07:35 pm Paolo Bonzini

migration: move qemu_fclose to process_incoming_migration

The common suffix is now just process_incoming_migration.

Reviewed-by: Orit Wasserman <>
Signed-off-by: Paolo Bonzini <>

342ab8d1 10/23/2012 02:54 pm Paolo Bonzini

migration: centralize call to migrate_fd_error()

The call to migrate_fd_error() was missing for non-socket backends, so
centralize it in qmp_migrate().

Before:

(qemu) migrate fd:ffff
migrate: An undefined error has occurred
(qemu) info migrate...
f37afb5a 10/23/2012 02:54 pm Paolo Bonzini

migration (outgoing): add error propagation for all protocols

Error propagation is already there for socket backends. Add it to other
protocols, simplifying code that tests for errors that will never happen.
With all protocols understanding Error, the code can be simplified...

43eaae28 10/23/2012 02:54 pm Paolo Bonzini

migration (incoming): add error propagation to fd and exec protocols

And remove the superfluous integer return value.

Reviewed-by: Luiz Capitulino <>
Signed-off-by: Paolo Bonzini <>

be7059cd 10/23/2012 02:54 pm Paolo Bonzini

migration: avoid using error_is_set and thus relying on errp != NULL

The migration code is using errp to detect "internal" errors, this means
that it relies on errp being non-NULL.

No impact so far because our only QMP clients (the QMP marshaller and HMP)...

233aa5c2 09/26/2012 03:05 am Orit Wasserman

Fix address handling in inet_nonblocking_connect

getaddrinfo can give us a list of addresses, but we only try to
connect to the first one. If that fails we never proceed to
the next one. This is common on desktop setups that often have ipv6
configured but not actually working....

5db5f44c 09/26/2012 03:05 am Orit Wasserman

Separate inet_connect into inet_connect (blocking) and inet_nonblocking_connect

No need to add non blocking parameters to the blocking inet_connect
add block parameter for inet_connect_opts instead of using QemuOpt "block".

Signed-off-by: Orit Wasserman <>...

540c79fe 08/13/2012 07:20 pm Luiz Capitulino

migration: don't rely on any QERR_SOCKET_*

Use the in_progress argument for QERR_SOCKET_CONNECT_IN_PROGRESS. The
other errors are handled the same by checking if the error is set and
then calling migrate_fd_error() if it's.

It's also necessary to change inet_connect_opts() not to set...

02a08fef 08/13/2012 07:20 pm Luiz Capitulino

net: inet_connect(), inet_connect_opts(): add in_progress argument

It's used to indicate the special case where a valid file-descriptor
is returned (ie. success) but the connection can't be completed
w/o blocking.

This is needed because QERR_SOCKET_CONNECT_IN_PROGRESS is not...

d5c5dacc 05/10/2012 08:37 pm Amos Kong

use inet_listen()/inet_connect() to support ipv6 migration

Use help functions in qemu-socket.c for tcp migration,
which already support ipv6 addresses.

Currently errp will be set to UNDEFINED_ERROR when migration fails,
qemu would output "migration failed: ...", and current user can...

6b620ca3 01/13/2012 06:55 pm Paolo Bonzini

prepare for future GPLv2+ relicensing

All files under GPLv2 will get GPLv2+ changes starting tomorrow.
event_notifier.c and exec-obsolete.h were only ever touched by Red Hat
employees and can be relicensed now.

Signed-off-by: Paolo Bonzini <>...

61a5872f 12/12/2011 07:47 pm Eduardo Habkost

tcp_close(): check for close() errors too (v2)

In case close() fails, we want to report the error back.

Changes v1 -> v2:
- Use braces on if statement to match coding style

Signed-off-by: Eduardo Habkost <>
Signed-off-by: Anthony Liguori <>

ee86c61f 10/20/2011 02:23 pm Juan Quintela

migration: make migration-{tcp,unix} consistent

Files are almost identical in functionality, just remove the
differences that make no sense.

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

efab4718 10/20/2011 02:23 pm Juan Quintela

migration: Don't use callback on file defining it

Signed-off-by: Juan Quintela <>

8414ff3b 10/20/2011 02:23 pm Juan Quintela

migration: propagate error correctly

unix and tcp outgoing migration have error values, but didn't returned
it. Make them return the error. Notice that EINPROGRESS & EWOULDBLOCK
are not considered errors as call will be retry later.

Signed-off-by: Juan Quintela <>...

3f77fc55 10/20/2011 02:23 pm Juan Quintela

migration: Fold MigrationState into FdMigrationState

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

22f00a44 10/20/2011 02:23 pm Juan Quintela

migration: Rename FdMigrationState MigrationState

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

0edda1c4 10/20/2011 02:23 pm Juan Quintela

migration: Refactor MigrationState creation

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

07af4452 10/20/2011 02:23 pm Juan Quintela

migration: move migrate_new to do_migrate

Once there, remove all parameters that don't need to be passed to
*start_outgoing_migration() functions

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

7be4363a 10/20/2011 02:23 pm Juan Quintela

migration: Make *start_outgoing_migration return FdMigrationState

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

7267c094 08/21/2011 07:01 am Anthony Liguori

Use glib memory allocation and free functions

qemu_malloc/qemu_free no longer exist after this commit.

Signed-off-by: Anthony Liguori <>

a08784dd 04/15/2011 09:25 pm Blue Swirl

Remove unused sysemu.h include directives

Remove unused sysemu.h include directives to speed up build
with the following patches.

Signed-off-by: Blue Swirl <>

e0efb993 03/20/2011 11:39 pm Stefan Weil

Fix conversions from pointer to int and vice versa

Here the int values fds0, sigfd, s, sock and fd are converted
to void pointers which are later converted back to an int value.

These conversions should always use intptr_t instead of unsigned long.

They are needed for environments where sizeof(long) != sizeof(void *)....

d092c108 07/25/2010 06:03 pm Shahar Havivi

Close socket file descriptor when qemu_accept fails

Signed-off-by: Shahar Havivi <>
Signed-off-by: Aurelien Jarno <>

511c0231 06/22/2010 11:15 pm Juan Quintela

Factorize common migration incoming code

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

304e3a7c 06/14/2010 11:46 pm Yoshiaki Tamura

migration-tcp: call migrate_fd_error() instead of close() and free().

This patch fixes the following error report. When changing
migration-tcp.c to call migrate_fd_error() instead of close() and
free() by itself, monitor is resumed, and returns allocated mig_state...

cfaf6d36 03/17/2010 06:16 pm Juan Quintela

migration: Clear fd also in error cases

Not clearing the fd and closing the file makes qemu spin using 100%CPU
after incoming migration error.

See for instance bug:
https://bugzilla.redhat.com/show_bug.cgi?id=518032

Signed-off-by: Juan Quintela <>...

d0f2c4c6 02/07/2010 01:03 am malc

Do not use dprintf

dprintf is already claimed by POSIX1, and on at least one system
is implemented as a macro

[1] http://www.opengroup.org/onlinepubs/9699919799/functions/dprintf.html

Signed-off-by: malc <>

40ff6d7e 12/03/2009 07:45 pm Kevin Wolf

Don't leak file descriptors

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 <>

f327aa0c 12/03/2009 06:48 pm Jan Kiszka

live migration: Propagate output monitor to callback handler

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 <>...

c163b5ca 11/17/2009 04:49 pm lirans@il.ibm.com

Block live migration

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....

d399f677 07/30/2009 05:50 pm Paolo Bonzini

fix migration to obey -S

Since migration returns right away, starting the VM right
after calling qemu_start_incoming_migration is wrong even
if -S is not passed. We have to do this after migration
has completed.

Cc: Glauber Costa <>
Cc: Anthony Liguori <>...

89befdd1 07/17/2009 01:28 am Paolo Bonzini

honor -S on incoming migration

-S is not honored by qemu on incoming migration. If a domain is migrated
while paused, thus, it will start running on the remote machine; this
is wrong.

Given the trivial patch to fix this, it looks more like a thinko
than anything else, probably dating back to the qemu-kvm merge....

0a656f5f 05/21/2009 04:30 am malc

Cast pointer arguments of get/setsockopt, send to void * to keep GCC
from producing a warning about pointer type mismatches with Winsock

Signed-off-by: malc <>

731b0364 03/06/2009 01:01 am aliguori

monitor: Decouple terminals (Jan Kiszka)

Currently all registered (and activate) monitor terminals work in
broadcast mode: Everyone sees what someone else types on some other
terminal and what the monitor reports back. This model is broken when
you have a management monitor terminal that is automatically operated...

376253ec 03/06/2009 01:01 am aliguori

monitor: Rework API (Jan Kiszka)

Refactor the monitor API and prepare it for decoupled terminals:
term_print functions are renamed to monitor_* and all monitor services
gain a new parameter (mon) that will once refer to the monitor instance
the output is supposed to appear on. However, the argument remains...

1eec614b 02/06/2009 12:06 am aliguori

toplevel: remove error handling from qemu_malloc() callers (Avi Kivity)

Signed-off-by: Avi Kivity <>
Signed-off-by: Anthony Liguori <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6531 c046a42c-6fe2-441c-8c8c-71466251a162

8ad9fa5d 11/13/2008 12:29 am aliguori

Fix brown-paper-bag bugs from live-migration patch (Charles Duffy)

In TCP migration, prevent an endless loop trying to retrieve error status. In
exec migration, set the close pointer in the FdMigrationState structure.

Color me embarrassed.

Signed-off-by: Charles Duffy <>...

065e2813 11/11/2008 06:46 pm aliguori

Reintroduce migrate-to-exec: support (Charles Duffy)

KVM's live migration support included support for exec: URLs, allowing system
state to be written or received via an arbitrary popen()ed subprocess. This
provides a convenient way to pipe state through a compression algorithm or an...

825a4929 11/06/2008 05:30 pm aliguori

Make sure to resume the monitor only after flushing out outstanding
network traffic.

This was bug was reported by Chris Lalancette.

Signed-off-by: Anthony Liguori <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5640 c046a42c-6fe2-441c-8c8c-71466251a162

4761a48b 10/25/2008 02:25 pm blueswir1

Fix GCC 4 signedness warning

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5533 c046a42c-6fe2-441c-8c8c-71466251a162

ff8d81d8 10/25/2008 01:10 am aliguori

Fix whitespace in migration code.

Replace tabs with spaces.

Signed-off-by: Anthony Liguori <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5527 c046a42c-6fe2-441c-8c8c-71466251a162

88d2d9e0 10/25/2008 01:08 am aliguori

Fix possibly SEGV in tcp migration error case.

Spotted by hpoussin.

Signed-off-by: Anthony Liguori <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5526 c046a42c-6fe2-441c-8c8c-71466251a162

c1d36665 10/25/2008 12:55 am aliguori

Live migration for Win32 (Hervé Poussineau)

This patch fixes migration so that it works on Win32. This requires using
socket specific calls since sockets cannot be treated like file descriptors
on win32.

Signed-off-by: Hervé Poussineau <>...

17e90973 10/24/2008 05:11 pm aliguori

Fix windows build after migration changes

The live migration code broke the windows build. As part of this
change, I've switched the BIOS path to C:\Program Files\Qemu instead of
/c/Program Files/Qemu. The later is only valid when launching from MSYS
but the former is always valid....

34c9dd8e 10/13/2008 06:14 am aliguori

Introduce TCP live migration protocol

This patch introduces a tcp protocol for live migration. It can be used as
follows:

qemu-system-x86_64 -hda ~/images/linux-test.img -monitor stdio
<vm runs for a while>
(qemu) migrate tcp:localhost:1025

On the same system:...