From: Anthony Liguori <anthony@codemonkey.ws>
To: Juan Quintela <quintela@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 14/23] migration: Move exported functions to the end of the file
Date: Tue, 04 Oct 2011 09:24:28 -0500 [thread overview]
Message-ID: <4E8B171C.3060301@codemonkey.ws> (raw)
In-Reply-To: <ce925b1d89618540a62e5320156a72f57520a17c.1316782367.git.quintela@redhat.com>
On 09/23/2011 07:57 AM, Juan Quintela wrote:
> This means we can remove the two forward declarations.
>
> Signed-off-by: Juan Quintela<quintela@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Regards,
Anthony Liguori
> ---
> migration.c | 188 ++++++++++++++++++++++++++++------------------------------
> 1 files changed, 91 insertions(+), 97 deletions(-)
>
> diff --git a/migration.c b/migration.c
> index 9bc7ffa..9bb089a 100644
> --- a/migration.c
> +++ b/migration.c
> @@ -77,91 +77,6 @@ void process_incoming_migration(QEMUFile *f)
> }
> }
>
> -static MigrationState *migrate_create_state(Monitor *mon,
> - int64_t bandwidth_limit,
> - int detach, int blk, int inc);
> -
> -int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
> -{
> - MigrationState *s = NULL;
> - const char *p;
> - int detach = qdict_get_try_bool(qdict, "detach", 0);
> - int blk = qdict_get_try_bool(qdict, "blk", 0);
> - int inc = qdict_get_try_bool(qdict, "inc", 0);
> - const char *uri = qdict_get_str(qdict, "uri");
> - int ret;
> -
> - if (current_migration&&
> - current_migration->state == MIG_STATE_ACTIVE) {
> - monitor_printf(mon, "migration already in progress\n");
> - return -1;
> - }
> -
> - if (qemu_savevm_state_blocked(mon)) {
> - return -1;
> - }
> -
> - s = migrate_create_state(mon, max_throttle, detach, blk, inc);
> -
> - if (strstart(uri, "tcp:",&p)) {
> - ret = tcp_start_outgoing_migration(s, p);
> -#if !defined(WIN32)
> - } else if (strstart(uri, "exec:",&p)) {
> - ret = exec_start_outgoing_migration(s, p);
> - } else if (strstart(uri, "unix:",&p)) {
> - ret = unix_start_outgoing_migration(s, p);
> - } else if (strstart(uri, "fd:",&p)) {
> - ret = fd_start_outgoing_migration(s, p);
> -#endif
> - } else {
> - monitor_printf(mon, "unknown migration protocol: %s\n", uri);
> - ret = -EINVAL;
> - goto free_migrate_state;
> - }
> -
> - if (ret< 0) {
> - monitor_printf(mon, "migration failed\n");
> - goto free_migrate_state;
> - }
> -
> - g_free(current_migration);
> - current_migration = s;
> - notifier_list_notify(&migration_state_notifiers, NULL);
> - return 0;
> -free_migrate_state:
> - g_free(s);
> - return -1;
> -}
> -
> -static void migrate_fd_cancel(MigrationState *s);
> -
> -int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data)
> -{
> - if (current_migration) {
> - migrate_fd_cancel(current_migration);
> - }
> - return 0;
> -}
> -
> -int do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data)
> -{
> - int64_t d;
> - MigrationState *s;
> -
> - d = qdict_get_int(qdict, "value");
> - if (d< 0) {
> - d = 0;
> - }
> - max_throttle = d;
> -
> - s = current_migration;
> - if (s&& s->file) {
> - qemu_file_set_rate_limit(s->file, max_throttle);
> - }
> -
> - return 0;
> -}
> -
> /* amount of nanoseconds we are willing to wait for migration to be down.
> * the choice of nanoseconds is because it is the maximum resolution that
> * get_clock() can achieve. It is an internal measure. All user-visible
> @@ -173,18 +88,6 @@ uint64_t migrate_max_downtime(void)
> return max_downtime;
> }
>
> -int do_migrate_set_downtime(Monitor *mon, const QDict *qdict,
> - QObject **ret_data)
> -{
> - double d;
> -
> - d = qdict_get_double(qdict, "value") * 1e9;
> - d = MAX(0, MIN(UINT64_MAX, d));
> - max_downtime = (uint64_t)d;
> -
> - return 0;
> -}
> -
> static void migrate_print_status(Monitor *mon, const char *name,
> const QDict *status_dict)
> {
> @@ -502,3 +405,94 @@ static MigrationState *migrate_create_state(Monitor *mon,
>
> return s;
> }
> +
> +int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
> +{
> + MigrationState *s = NULL;
> + const char *p;
> + int detach = qdict_get_try_bool(qdict, "detach", 0);
> + int blk = qdict_get_try_bool(qdict, "blk", 0);
> + int inc = qdict_get_try_bool(qdict, "inc", 0);
> + const char *uri = qdict_get_str(qdict, "uri");
> + int ret;
> +
> + if (current_migration&&
> + current_migration->state == MIG_STATE_ACTIVE) {
> + monitor_printf(mon, "migration already in progress\n");
> + return -1;
> + }
> +
> + if (qemu_savevm_state_blocked(mon)) {
> + return -1;
> + }
> +
> + s = migrate_create_state(mon, max_throttle, detach, blk, inc);
> +
> + if (strstart(uri, "tcp:",&p)) {
> + ret = tcp_start_outgoing_migration(s, p);
> +#if !defined(WIN32)
> + } else if (strstart(uri, "exec:",&p)) {
> + ret = exec_start_outgoing_migration(s, p);
> + } else if (strstart(uri, "unix:",&p)) {
> + ret = unix_start_outgoing_migration(s, p);
> + } else if (strstart(uri, "fd:",&p)) {
> + ret = fd_start_outgoing_migration(s, p);
> +#endif
> + } else {
> + monitor_printf(mon, "unknown migration protocol: %s\n", uri);
> + ret = -EINVAL;
> + goto free_migrate_state;
> + }
> +
> + if (ret< 0) {
> + monitor_printf(mon, "migration failed\n");
> + goto free_migrate_state;
> + }
> +
> + g_free(current_migration);
> + current_migration = s;
> + notifier_list_notify(&migration_state_notifiers, NULL);
> + return 0;
> +free_migrate_state:
> + g_free(s);
> + return -1;
> +}
> +
> +int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data)
> +{
> + if (current_migration) {
> + migrate_fd_cancel(current_migration);
> + }
> + return 0;
> +}
> +
> +int do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data)
> +{
> + int64_t d;
> + MigrationState *s;
> +
> + d = qdict_get_int(qdict, "value");
> + if (d< 0) {
> + d = 0;
> + }
> + max_throttle = d;
> +
> + s = current_migration;
> + if (s&& s->file) {
> + qemu_file_set_rate_limit(s->file, max_throttle);
> + }
> +
> + return 0;
> +}
> +
> +int do_migrate_set_downtime(Monitor *mon, const QDict *qdict,
> + QObject **ret_data)
> +{
> + double d;
> +
> + d = qdict_get_double(qdict, "value") * 1e9;
> + d = MAX(0, MIN(UINT64_MAX, d));
> + max_downtime = (uint64_t)d;
> +
> + return 0;
> +}
next prev parent reply other threads:[~2011-10-04 14:24 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-23 12:56 [Qemu-devel] [PATCH v3 00/23] Refactor and cleanup migration code Juan Quintela
2011-09-23 12:56 ` [Qemu-devel] [PATCH 01/23] migration: Make *start_outgoing_migration return FdMigrationState Juan Quintela
2011-09-23 12:56 ` [Qemu-devel] [PATCH 02/23] migration: Use FdMigrationState instead of MigrationState when possible Juan Quintela
2011-09-23 12:56 ` [Qemu-devel] [PATCH 03/23] migration: Fold MigrationState into FdMigrationState Juan Quintela
2011-09-23 12:56 ` [Qemu-devel] [PATCH 04/23] migration: Rename FdMigrationState MigrationState Juan Quintela
2011-09-23 12:56 ` [Qemu-devel] [PATCH 05/23] migration: Refactor MigrationState creation Juan Quintela
2011-10-04 14:23 ` Anthony Liguori
2011-10-04 14:44 ` Juan Quintela
2011-10-04 14:55 ` Anthony Liguori
2011-09-23 12:56 ` [Qemu-devel] [PATCH 06/23] migration: Make all posible migration functions static Juan Quintela
2011-09-23 12:56 ` [Qemu-devel] [PATCH 07/23] migration: move migrate_create_state to do_migrate Juan Quintela
2011-09-23 12:56 ` [Qemu-devel] [PATCH 08/23] migration: Introduce MIG_STATE_NONE Juan Quintela
2011-09-23 12:56 ` [Qemu-devel] [PATCH 09/23] migration: Refactor and simplify error checking in migrate_fd_put_ready Juan Quintela
2011-09-23 12:56 ` [Qemu-devel] [PATCH 10/23] migration: Introduce migrate_fd_completed() for consistency Juan Quintela
2011-09-23 12:57 ` [Qemu-devel] [PATCH 11/23] migration: Our release callback was just free Juan Quintela
2011-09-23 12:57 ` [Qemu-devel] [PATCH 12/23] migration: Remove get_status() accessor Juan Quintela
2011-09-23 12:57 ` [Qemu-devel] [PATCH 13/23] migration: Remove migration cancel() callback Juan Quintela
2011-09-23 12:57 ` [Qemu-devel] [PATCH 14/23] migration: Move exported functions to the end of the file Juan Quintela
2011-10-04 14:24 ` Anthony Liguori [this message]
2011-09-23 12:57 ` [Qemu-devel] [PATCH 15/23] migration: use global variable directly Juan Quintela
2011-10-04 14:27 ` Anthony Liguori
2011-10-04 14:46 ` Juan Quintela
2011-09-23 12:57 ` [Qemu-devel] [PATCH 16/23] migration: another case of global variable assigned to local one Juan Quintela
2011-09-23 12:57 ` [Qemu-devel] [PATCH 17/23] migration: make sure we always have a migration state Juan Quintela
2011-10-04 14:29 ` Anthony Liguori
2011-10-04 14:49 ` Juan Quintela
2011-10-05 20:02 ` Anthony Liguori
2011-10-05 20:25 ` Juan Quintela
2011-10-06 9:09 ` Orit Wasserman
2011-09-23 12:57 ` [Qemu-devel] [PATCH 18/23] migration: Use bandwidth_limit directly Juan Quintela
2011-10-04 14:29 ` Anthony Liguori
2011-09-23 12:57 ` [Qemu-devel] [PATCH 19/23] migration: Export a function that tells if the migration has finished correctly Juan Quintela
2011-10-04 14:31 ` Anthony Liguori
2011-10-05 12:24 ` Juan Quintela
2011-10-05 14:58 ` Anthony Liguori
2011-09-23 12:57 ` [Qemu-devel] [PATCH 20/23] migration: Make state definitions local Juan Quintela
2011-09-23 12:57 ` [Qemu-devel] [PATCH 21/23] migration: Don't use callback on file defining it Juan Quintela
2011-10-04 14:32 ` Anthony Liguori
2011-10-04 23:50 ` Juan Quintela
2011-09-23 12:57 ` [Qemu-devel] [PATCH 22/23] migration: propagate error correctly Juan Quintela
2011-10-04 14:33 ` Anthony Liguori
2011-09-23 12:57 ` [Qemu-devel] [PATCH 23/23] migration: make migration-{tcp, unix} consistent Juan Quintela
2011-10-04 14:34 ` Anthony Liguori
2011-10-04 14:36 ` [Qemu-devel] [PATCH v3 00/23] Refactor and cleanup migration code Anthony Liguori
-- strict thread matches above, loose matches on Subject: below --
2011-09-20 14:19 Juan Quintela
2011-09-20 14:19 ` [Qemu-devel] [PATCH 14/23] migration: Move exported functions to the end of the file Juan Quintela
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E8B171C.3060301@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.