From: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: kwolf@redhat.com, aliguori@us.ibm.com, stefanha@gmail.com,
qemu-devel@nongnu.org, lcapitulino@redhat.com,
pbonzini@redhat.com
Subject: Re: [Qemu-devel] [PATCH 3/3] HMP: show internal snapshots on a single device
Date: Tue, 25 Dec 2012 11:11:03 +0800 [thread overview]
Message-ID: <50D91947.5010404@linux.vnet.ibm.com> (raw)
In-Reply-To: <87mwx733d4.fsf@blackfin.pond.sub.org>
>>
>> +static void do_info_snapshots_blk(Monitor *mon, const char *device)
>> +{
>> + BlockDriverState *bs;
>> + QEMUSnapshotInfo *sn_tab, *sn;
>> + int nb_sns, i;
>> + char buf[256];
>> +
>> + /* find the target bs */
>> + bs = bdrv_find(device);
>> + if (!bs) {
>> + monitor_printf(mon, "Device '%s' not found.\n", device);
>> + return ;
>> + }
>> +
>> + if (!bdrv_can_snapshot(bs)) {
>> + monitor_printf(mon, "Device '%s' can't have snapshot.\n", device);
>> + return ;
>> + }
>
> Rest of the function is is essentially code copied from
> do_info_snapshots_vm(). Could it be factored out?
>
Sure, I forgot that before. I guess a better way is adding a QMP
interface first and using common code from it.
>> +
>> + nb_sns = bdrv_snapshot_list(bs, &sn_tab);
>> + if (nb_sns < 0) {
>> + monitor_printf(mon, "Device %s bdrv_snapshot_list: error %d\n",
>> + device, nb_sns);
>> + return;
>> + }
>> +
>> + if (nb_sns == 0) {
>> + monitor_printf(mon, "There is no snapshot available.\n");
>> + return;
>> + }
>> +
>> + monitor_printf(mon, "Device %s:\n", device);
>> + monitor_printf(mon, "%s\n", bdrv_snapshot_dump(buf, sizeof(buf), NULL));
>> + for (i = 0; i < nb_sns; i++) {
>> + sn = &sn_tab[i];
>> + monitor_printf(mon, "%s\n", bdrv_snapshot_dump(buf, sizeof(buf), sn));
>> + }
>> + g_free(sn_tab);
>> + return;
>> +}
>> +
>> +void do_info_snapshots(Monitor *mon, const QDict *qdict)
>> +{
>> + /* Todo, there should be a layer rebuild qdict before enter this func. */
>
> I'm not sure I get this comment.
>
> We usually capitalize TODO for easy grepping.
>
My mistake, this comments should have been removed, it is used before
where qdict was not rebuilt as a new one.
>> + const char *device = qdict_get_try_str(qdict, "device");
>> + if (!device) {
>> + do_info_snapshots_vm(mon);
>> + } else {
>> + do_info_snapshots_blk(mon, device);
>> + }
>> + return;
>> +}
>> +
>> void vmstate_register_ram(MemoryRegion *mr, DeviceState *dev)
>> {
>> qemu_ram_set_idstr(memory_region_get_ram_addr(mr) & TARGET_PAGE_MASK,
>
--
Best Regards
Wenchao Xia
prev parent reply other threads:[~2012-12-25 3:12 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-19 10:17 [Qemu-devel] [PATCH 0/3] HMP: enable info sub command taking parameter Wenchao Xia
2012-12-19 10:17 ` [Qemu-devel] [PATCH 1/3] HMP: add QDict to info callback handler Wenchao Xia
2012-12-21 14:01 ` Markus Armbruster
2012-12-25 2:52 ` Wenchao Xia
2012-12-19 10:17 ` [Qemu-devel] [PATCH 2/3] HMP: pass in parameter for info sub command Wenchao Xia
2012-12-19 18:07 ` Luiz Capitulino
2012-12-20 3:02 ` Wenchao Xia
2012-12-22 21:36 ` Luiz Capitulino
2012-12-21 14:49 ` Markus Armbruster
2012-12-21 18:17 ` Eric Blake
2012-12-25 4:29 ` Wenchao Xia
2012-12-19 10:17 ` [Qemu-devel] [PATCH 3/3] HMP: show internal snapshots on a single device Wenchao Xia
2012-12-21 14:07 ` Markus Armbruster
2012-12-25 3:11 ` Wenchao Xia [this message]
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=50D91947.5010404@linux.vnet.ibm.com \
--to=xiawenc@linux.vnet.ibm.com \
--cc=aliguori@us.ibm.com \
--cc=armbru@redhat.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).