From: Markus Armbruster <armbru@redhat.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 07/10] monitor: Convert do_info_migrate() to QObject
Date: Sat, 10 Oct 2009 14:11:03 +0200 [thread overview]
Message-ID: <87hbu71maw.fsf@pike.pond.sub.org> (raw)
In-Reply-To: <1255037747-3340-8-git-send-email-lcapitulino@redhat.com> (Luiz Capitulino's message of "Thu\, 8 Oct 2009 18\:35\:44 -0300")
Luiz Capitulino <lcapitulino@redhat.com> writes:
> Return a QDict, which may contain another QDict if the migration
> process is active.
>
> The main QDict contains the following:
>
> - "status": migration status
> - "ram": only present if "status" is "active", it is a QDict with the
> following information (in bytes):
> - "transferred": amount of RAM transferred
> - "remaining": amount of RAM remaining
> - "total": total RAM
>
> IMPORTANT: as a QInt stores a int64_t integer, those RAM values
> are going to stored as int64_t and not as uint64_t as they are
> today. If this is a problem QInt will have to be changed.
>
> This commit should not change user output, the following is an
> example of the returned QDict:
>
> { "status": "active", "ram":
> { "transferred": 885030912, "remaining": 198529024, "total": 1082392576 } }
[...]
> diff --git a/migration.c b/migration.c
> index 112a5b6..b3bf00f 100644
> --- a/migration.c
> +++ b/migration.c
[...]
> @@ -158,29 +159,79 @@ void do_migrate_set_downtime(Monitor *mon, const QDict *qdict)
[...]
> +/**
> + * do_info_migrate(): Show migration status
> + *
> + * Return a QDict. If migration is active there will be another
> + * QDict with RAM information.
> + *
> + * The main QDict contains the following:
> + *
> + * - "status": migration status
> + * - "ram": only present if "status" is "active", it is a QDict with the
> + * following information (in bytes):
> + * - "transferred": amount of RAM transferred
> + * - "remaining": amount of RAM remaining
> + * - "total": total RAM
> + *
> + * Examples:
> + *
> + * 1. If migration is "completed", "error" or "cancelled":
> + *
> + * { "status": "completed" }
This suggests that a failed or cancelled migration is reported with
"completed", which is wrong. Since it's just an example, you could
leave out the ', "error" or "cancelled"' part.
> + *
> + * 2. If migration is "active":
> + *
> + * { "status": "active", "ram":
> + * { "transferred": 123, "remaining": 123, "total": 246 } }
> + */
> +void do_info_migrate(Monitor *mon, QObject **ret_data)
> {
> MigrationState *s = current_migration;
>
> if (s) {
> - monitor_printf(mon, "Migration status: ");
> switch (s->get_status(s)) {
> case MIG_STATE_ACTIVE:
> - monitor_printf(mon, "active\n");
> - monitor_printf(mon, "transferred ram: %" PRIu64 " kbytes\n", ram_bytes_transferred() >> 10);
> - monitor_printf(mon, "remaining ram: %" PRIu64 " kbytes\n", ram_bytes_remaining() >> 10);
> - monitor_printf(mon, "total ram: %" PRIu64 " kbytes\n", ram_bytes_total() >> 10);
> + *ret_data = qobject_from_fmt("{ s: s, s: { s: i, s: i, s: i } }",
> + "status", "active",
> + "ram",
> + "transferred", ram_bytes_transferred(),
> + "remaining", ram_bytes_remaining(),
> + "total", ram_bytes_total());
> break;
> case MIG_STATE_COMPLETED:
> - monitor_printf(mon, "completed\n");
> + *ret_data = qobject_from_fmt("{ s: s }", "status", "completed");
> break;
> case MIG_STATE_ERROR:
> - monitor_printf(mon, "failed\n");
> + *ret_data = qobject_from_fmt("{ s: s }", "status", "failed");
> break;
> case MIG_STATE_CANCELLED:
> - monitor_printf(mon, "cancelled\n");
> + *ret_data = qobject_from_fmt("{ s: s }", "status", "cancelled");
> break;
> }
> + if (*ret_data == NULL)
> + monitor_printf(mon, "Migration: could not build QObject\n");
> }
> }
>
[...]
next prev parent reply other threads:[~2009-10-10 12:40 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-08 21:35 [Qemu-devel] [PATCH v0 00/10]: More QObject conversions Luiz Capitulino
2009-10-08 21:35 ` [Qemu-devel] [PATCH 01/10] Introduce qmisc module Luiz Capitulino
2009-10-15 14:02 ` Anthony Liguori
2009-10-15 15:26 ` Luiz Capitulino
2009-10-15 15:35 ` Anthony Liguori
2009-10-15 17:17 ` Luiz Capitulino
2009-10-15 18:33 ` Anthony Liguori
2009-10-15 18:45 ` Anthony Liguori
2009-10-15 16:39 ` Daniel P. Berrange
2009-10-15 16:46 ` Daniel P. Berrange
2009-10-15 17:28 ` Luiz Capitulino
2009-10-15 18:34 ` Anthony Liguori
2009-10-16 13:24 ` [Qemu-devel] " Paolo Bonzini
2009-10-16 13:45 ` Anthony Liguori
2009-10-16 17:35 ` Paolo Bonzini
2009-10-16 17:38 ` Anthony Liguori
2009-10-16 19:36 ` Paolo Bonzini
2009-10-16 21:37 ` Anthony Liguori
2009-10-17 0:32 ` Paolo Bonzini
2009-10-17 0:38 ` malc
2009-10-17 0:46 ` Paolo Bonzini
2009-10-17 1:49 ` Anthony Liguori
2009-10-17 1:50 ` Anthony Liguori
2009-10-17 7:48 ` Paolo Bonzini
2009-10-17 10:01 ` Vincent Hanquez
2009-10-18 14:06 ` Luiz Capitulino
2009-10-18 14:08 ` Paolo Bonzini
2009-10-18 14:49 ` Anthony Liguori
2009-10-18 15:18 ` Luiz Capitulino
2009-10-18 15:25 ` Paolo Bonzini
2009-10-18 16:05 ` Luiz Capitulino
2009-10-18 16:32 ` Anthony Liguori
2009-10-18 18:04 ` Paolo Bonzini
2009-10-18 22:00 ` Luiz Capitulino
2009-10-18 16:26 ` Anthony Liguori
2009-10-18 17:32 ` Vincent Hanquez
2009-10-18 21:24 ` Anthony Liguori
2009-10-18 15:06 ` Vincent Hanquez
2009-10-18 15:35 ` Luiz Capitulino
2009-10-18 15:39 ` Paolo Bonzini
2009-10-18 16:56 ` Vincent Hanquez
2009-10-18 16:29 ` Anthony Liguori
2009-10-18 16:46 ` Vincent Hanquez
2009-10-18 17:59 ` Paolo Bonzini
2009-10-08 21:35 ` [Qemu-devel] [PATCH 02/10] monitor: Convert do_memory_save() to QObject Luiz Capitulino
2009-10-08 21:35 ` [Qemu-devel] [PATCH 03/10] monitor: Convert do_physical_memory_save() " Luiz Capitulino
2009-10-08 21:35 ` [Qemu-devel] [PATCH 04/10] monitor: Convert do_migrate() " Luiz Capitulino
2009-10-08 21:35 ` [Qemu-devel] [PATCH 05/10] monitor: Convert do_migrate_set_speed() " Luiz Capitulino
2009-10-08 21:35 ` [Qemu-devel] [PATCH 06/10] monitor: Convert do_migrate_cancel() " Luiz Capitulino
2009-10-08 21:35 ` [Qemu-devel] [PATCH 07/10] monitor: Convert do_info_migrate() " Luiz Capitulino
2009-10-10 12:11 ` Markus Armbruster [this message]
2009-10-15 14:07 ` Anthony Liguori
2009-10-08 21:35 ` [Qemu-devel] [PATCH 08/10] monitor: Convert bdrv_info() " Luiz Capitulino
2009-10-10 12:18 ` Markus Armbruster
2009-10-14 13:23 ` Luiz Capitulino
2009-10-14 14:11 ` Markus Armbruster
2009-10-15 14:13 ` Anthony Liguori
2009-10-08 21:35 ` [Qemu-devel] [PATCH 09/10] monitor: Convert pci_device_hot_add() " Luiz Capitulino
2009-10-08 21:35 ` [Qemu-devel] [PATCH 10/10] monitor: Convert do_pci_device_hot_remove() " Luiz Capitulino
2009-10-10 12:31 ` [Qemu-devel] [PATCH v0 00/10]: More QObject conversions Markus Armbruster
2009-10-11 14:48 ` Luiz Capitulino
2009-10-12 15:36 ` Markus Armbruster
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=87hbu71maw.fsf@pike.pond.sub.org \
--to=armbru@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=lcapitulino@redhat.com \
--cc=qemu-devel@nongnu.org \
/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.