All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 12/17] migration: Convert do_info_migrate() to QObject
Date: Mon, 07 Dec 2009 13:38:16 -0600	[thread overview]
Message-ID: <4B1D59A8.5040703@codemonkey.ws> (raw)
In-Reply-To: <1259946695-15784-13-git-send-email-lcapitulino@redhat.com>

Luiz Capitulino wrote:
> Return a QDict, which may contain more two QDicts, depending on
> the type of migration we're performing.
>
> IMPORTANT: as a QInt stores a int64_t integer, RAM values are going
> to be 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.
>
> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> ---
>  migration.c |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
>  migration.h |    4 +-
>  monitor.c   |    3 +-
>  3 files changed, 108 insertions(+), 17 deletions(-)
>
> diff --git a/migration.c b/migration.c
> index d6a3e26..bfaa2db 100644
> --- a/migration.c
> +++ b/migration.c
> @@ -19,6 +19,7 @@
>  #include "block.h"
>  #include "qemu_socket.h"
>  #include "block-migration.h"
> +#include "qemu-objects.h"
>  
>  //#define DEBUG_MIGRATION
>  
> @@ -163,37 +164,124 @@ void do_migrate_set_downtime(Monitor *mon, const QDict *qdict)
>      max_downtime = (uint64_t)d;
>  }
>  
> -void do_info_migrate(Monitor *mon)
> +static void migrate_print_status(Monitor *mon, const char *name,
> +                                 const QDict *status_dict)
>  {
> +    QDict *qdict;
> +
> +    qdict = qobject_to_qdict(qdict_get(status_dict, name));
> +
> +    monitor_printf(mon, "transferred %s: %" PRIu64 " kbytes\n", name,
> +                        qdict_get_int(qdict, "transferred") >> 10);
> +    monitor_printf(mon, "remaining %s: %" PRIu64 " kbytes\n", name,
> +                        qdict_get_int(qdict, "remaining") >> 10);
> +    monitor_printf(mon, "total %s: %" PRIu64 " kbytes\n", name,
> +                        qdict_get_int(qdict, "total") >> 10);
> +}
> +
> +void do_info_migrate_print(Monitor *mon, const QObject *data)
> +{
> +    QDict *qdict;
> +
> +    qdict = qobject_to_qdict(data);
> +
> +    monitor_printf(mon, "Migration status: %s\n",
> +                   qdict_get_str(qdict, "status"));
> +
> +    if (qdict_haskey(qdict, "ram")) {
> +        migrate_print_status(mon, "ram", qdict);
> +    }
> +
> +    if (qdict_haskey(qdict, "disk")) {
> +        migrate_print_status(mon, "disk", qdict);
> +    }
> +}
> +
> +static void migrate_put_status(QDict *qdict, const char *name,
> +                               uint64_t trans, uint64_t rem, uint64_t total)
> +{
> +    QObject *obj;
> +
> +    obj = qobject_from_jsonf("{ 'transferred': %" PRId64 ", "
> +                               "'remaining': %" PRId64 ", "
> +                               "'total': %" PRId64 " }", trans >> 10,
> +                               rem >> 10, total >> 10);
> +    assert(obj != NULL);
> +
> +    qdict_put_obj(qdict, name, obj);
> +}
> +
> +/**
> + * do_info_migrate(): Migration status
> + *
> + * Return a QDict. If migration is active there will be another
> + * QDict with RAM migration status and if block migration is active
> + * another one with block migration status.
> + *
> + * The main QDict contains the following:
> + *
> + * - "status": migration status
> + * - "ram": only present if "status" is "active", it is a QDict with the
> + *   following RAM information (in bytes):
>   

The implementation in migrate_put_status disagrees with your documentation.

Regards,

Anthony Liguori

  reply	other threads:[~2009-12-07 19:38 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-04 17:11 [Qemu-devel] [FOR 0.12 v2 00/17]: info handlers conversions to QObject Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 01/17] Introduce qemu-objects.h header file Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 02/17] Makefile: move QObject objs to their own entry Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 03/17] QDict: Introduce qdict_get_qbool() Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 04/17] QDict: Introduce qdict_get_qlist() Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 05/17] monitor: Fix do_info_balloon() output Luiz Capitulino
2009-12-07 19:41   ` Anthony Liguori
2009-12-04 17:11 ` [Qemu-devel] [PATCH 06/17] monitor: Convert do_info_status() to QObject Luiz Capitulino
2009-12-07 19:31   ` Anthony Liguori
2009-12-04 17:11 ` [Qemu-devel] [PATCH 07/17] monitor: Convert do_info_kvm() " Luiz Capitulino
2009-12-07 19:34   ` Anthony Liguori
2009-12-04 17:11 ` [Qemu-devel] [PATCH 08/17] monitor: Convert do_info_name() " Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 09/17] monitor: Convert do_info_hpet() " Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 10/17] monitor: Convert do_info_uuid() " Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 11/17] monitor: Convert do_info_mice() " Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 12/17] migration: Convert do_info_migrate() " Luiz Capitulino
2009-12-07 19:38   ` Anthony Liguori [this message]
2009-12-04 17:11 ` [Qemu-devel] [PATCH 13/17] block: Convert bdrv_info() " Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 14/17] block: Convert bdrv_info_stats() " Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 15/17] char: Convert qemu_chr_info() " Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 16/17] PCI: Convert pci_device_hot_add() " Luiz Capitulino
2009-12-04 17:11 ` [Qemu-devel] [PATCH 17/17] VNC: Convert do_info_vnc() " Luiz Capitulino
  -- strict thread matches above, loose matches on Subject: below --
2009-11-23 20:06 [Qemu-devel] [PATCH v1 00/17]: info handlers conversions " Luiz Capitulino
2009-11-23 20:06 ` [Qemu-devel] [PATCH 12/17] migration: Convert do_info_migrate() " Luiz Capitulino

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=4B1D59A8.5040703@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --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.