From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35875) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UkBZ0-0004ox-1W for qemu-devel@nongnu.org; Wed, 05 Jun 2013 07:07:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UkBYy-0003mz-Ky for qemu-devel@nongnu.org; Wed, 05 Jun 2013 07:07:33 -0400 Received: from mail-wg0-x22a.google.com ([2a00:1450:400c:c00::22a]:49451) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UkBYy-0003mt-CF for qemu-devel@nongnu.org; Wed, 05 Jun 2013 07:07:32 -0400 Received: by mail-wg0-f42.google.com with SMTP id n12so4779615wgh.3 for ; Wed, 05 Jun 2013 04:07:31 -0700 (PDT) Date: Wed, 5 Jun 2013 13:07:28 +0200 From: Stefan Hajnoczi Message-ID: <20130605110728.GC30326@stefanha-thinkpad.muc.redhat.com> References: <1369455886-30677-1-git-send-email-xiawenc@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1369455886-30677-1-git-send-email-xiawenc@linux.vnet.ibm.com> Subject: Re: [Qemu-devel] [PATCH V13 0/6] enhancement for qmp/hmp interfaces of block info List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wenchao Xia Cc: kwolf@redhat.com, phrdina@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com, pbonzini@redhat.com, lcapitulino@redhat.com On Sat, May 25, 2013 at 12:24:40PM +0800, Wenchao Xia wrote: > This serial let qmp interface show delaied info, including internal snapshot > /backing chain on all block device at runtime, which helps management stack and > human user, by retrieving exactly the same info of what qemu saws. > > Example: > -> { "execute": "query-block" } > <- { > "return":[ > { > "io-status": "ok", > "device":"ide0-hd0", > "locked":false, > "removable":false, > "inserted":{ > "ro":false, > "drv":"qcow2", > "encrypted":false, > "file":"disks/test.qcow2", > "backing_file_depth":1, > "bps":1000000, > "bps_rd":0, > "bps_wr":0, > "iops":1000000, > "iops_rd":0, > "iops_wr":0, > "image":{ > "filename":"disks/test.qcow2", > "format":"qcow2", > "virtual-size":2048000, > "backing_file":"base.qcow2", > "full-backing-filename":"disks/base.qcow2", > "backing-filename-format:"qcow2", > "snapshots":[ > { > "id": "1", > "name": "snapshot1", > "vm-state-size": 0, > "date-sec": 10000200, > "date-nsec": 12, > "vm-clock-sec": 206, > "vm-clock-nsec": 30 > } > ], > "backing-image":{ > "filename":"disks/base.qcow2", > "format":"qcow2", > "virtual-size":2048000 > } > } > }, > "type":"unknown" > }, > { > "io-status": "ok", > "device":"ide1-cd0", > "locked":false, > "removable":true, > "type":"unknown" > }, > { > "device":"floppy0", > "locked":false, > "removable":true, > "type":"unknown" > }, > { > "device":"sd0", > "locked":false, > "removable":true, > "type":"unknown" > } > ] > } > > These patches follows the rule that use qmp to retieve information, > hmp layer just does a translation from qmp object it got. To make code > graceful, snapshot and image info retrieving code in qemu and qemu-img are > merged into block layer, and some function name was adjusted to make it tips > better. For the part touch by the serial, it works as: > > qemu qemu-img > > dump_monitor dump_stdout > |--------------| > | > block/qapi.c > > Special thanks for Markus, Stefan, Kevin, Eric reviewing many times. > > v13: > Renamed the serial as "enhancement for qmp/hmp interfaces of block info". > Seperated the common part of code moving and hmp printf as a standalone > serial, which can be used by both mine and Pavel's work. This serial depend > on it: "[PATCH V3 0/4] qapi and snapshot code clean up in block layer", > https://lists.gnu.org/archive/html/qemu-devel/2013-05/msg03539.html > Removed the VM snapshot info part, since it relate to VM snapshot creating > logic, which should be changed together with Pavel's serial. > Address Eric's comments: > 2/6: bdrv_query_image_info() returns void now, only use *errp to tip error. > > Wenchao Xia (6): > 1 block: add snapshot info query function bdrv_query_snapshot_info_list() > 2 block: add image info query function bdrv_query_image_info() > 3 qmp: add recursive member in ImageInfo > 4 qmp: add ImageInfo in BlockDeviceInfo used by query-block > 5 hmp: show ImageInfo in 'info block' > 6 hmp: add parameters device and -v for info block > > block/qapi.c | 148 ++++++++++++++++++++++++++++++++++++++++++-------- > hmp.c | 21 +++++++ > include/block/qapi.h | 14 +++-- > monitor.c | 7 ++- > qapi-schema.json | 10 +++- > qemu-img.c | 10 +++- > qmp-commands.hx | 69 +++++++++++++++++++++++- > 7 files changed, 242 insertions(+), 37 deletions(-) I left comments but overall this looks very close to merge now.