From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:44505) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qm28H-0001Hf-1F for qemu-devel@nongnu.org; Wed, 27 Jul 2011 07:18:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qm28F-0007vh-Qx for qemu-devel@nongnu.org; Wed, 27 Jul 2011 07:18:33 -0400 Received: from e9.ny.us.ibm.com ([32.97.182.139]:45874) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qm28F-0007uz-OY for qemu-devel@nongnu.org; Wed, 27 Jul 2011 07:18:31 -0400 Received: from d01relay06.pok.ibm.com (d01relay06.pok.ibm.com [9.56.227.116]) by e9.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6RAjtna012351 for ; Wed, 27 Jul 2011 06:45:55 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay06.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6RBIRJG1204328 for ; Wed, 27 Jul 2011 07:18:27 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6RBIRw6029205 for ; Wed, 27 Jul 2011 07:18:27 -0400 From: Supriya Kannery Date: Wed, 27 Jul 2011 17:00:14 +0530 Message-Id: <20110727113014.25109.58868.sendpatchset@skannery> In-Reply-To: <20110727113000.25109.16204.sendpatchset@skannery> References: <20110727113000.25109.16204.sendpatchset@skannery> Subject: [Qemu-devel] [V5 Patch 1/4]Qemu: Enhance "info block" to display host cache setting List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Stefan Hajnoczi , Christoph Hellwig , Supriya Kannery Enhance "info block" to display hostcache setting for each block device. Example: (qemu) info block ide0-hd0: type=hd removable=0 file=../rhel6-32.qcow2 ro=0 drv=qcow2 encrypted=0 Enhanced to display "hostcache" setting: (qemu) info block ide0-hd0: type=hd removable=0 hostcache=true file=../rhel6-32.qcow2 ro=0 drv=qcow2 encrypted=0 Signed-off-by: Supriya Kannery --- block.c | 21 +++++++++++++++++---- qmp-commands.hx | 2 ++ 2 files changed, 19 insertions(+), 4 deletions(-) Index: qemu/block.c =================================================================== --- qemu.orig/block.c +++ qemu/block.c @@ -1713,6 +1713,14 @@ static void bdrv_print_dict(QObject *obj monitor_printf(mon, " locked=%d", qdict_get_bool(bs_dict, "locked")); } + if (qdict_haskey(bs_dict, "open_flags")) { + int open_flags = qdict_get_int(bs_dict, "open_flags"); + if (open_flags & BDRV_O_NOCACHE) + monitor_printf(mon, " hostcache=0"); + else + monitor_printf(mon, " hostcache=1"); + } + if (qdict_haskey(bs_dict, "inserted")) { QDict *qdict = qobject_to_qdict(qdict_get(bs_dict, "inserted")); @@ -1749,13 +1757,18 @@ void bdrv_info(Monitor *mon, QObject **r QObject *bs_obj; bs_obj = qobject_from_jsonf("{ 'device': %s, 'type': 'unknown', " - "'removable': %i, 'locked': %i }", - bs->device_name, bs->removable, - bs->locked); + "'removable': %i, 'locked': %i, " + "'hostcache': %s }", + bs->device_name, bs->removable, + bs->locked, + (bs->open_flags & BDRV_O_NOCACHE) ? + "false" : "true"); + + QDict *bs_dict = qobject_to_qdict(bs_obj); + qdict_put(bs_dict, "open_flags", qint_from_int(bs->open_flags)); if (bs->drv) { QObject *obj; - QDict *bs_dict = qobject_to_qdict(bs_obj); obj = qobject_from_jsonf("{ 'file': %s, 'ro': %i, 'drv': %s, " "'encrypted': %i }", Index: qemu/qmp-commands.hx =================================================================== --- qemu.orig/qmp-commands.hx +++ qemu/qmp-commands.hx @@ -1131,6 +1131,7 @@ Each json-object contain the following: - Possible values: "unknown" - "removable": true if the device is removable, false otherwise (json-bool) - "locked": true if the device is locked, false otherwise (json-bool) +- "hostcache": true if hostcache enabled, false otherwise (json-bool) - "inserted": only present if the device is inserted, it is a json-object containing the following: - "file": device file name (json-string) @@ -1152,6 +1153,7 @@ Example: { "device":"ide0-hd0", "locked":false, + "hostcache":false, "removable":false, "inserted":{ "ro":false,