Re: [Qemu-devel] [v7 Patch 1/5]Qemu: Enhance info block to display host cache setting
On 10/12/2011 07:47 PM, Kevin Wolf wrote: Am 11.10.2011 05:10, schrieb Supriya Kannery: Enhance info block to display hostcache setting for each block device. +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); Coding style requires braces. ok..will add. checkpatch.pl didn't catch this! bs_obj = qobject_from_jsonf({ 'device': %s, 'type': 'unknown', -'removable': %i, 'locked': %i }, +'removable': %i, 'locked': %i, +'hostcache': %i }, bs-device_name, bdrv_dev_has_removable_media(bs), -bdrv_dev_is_medium_locked(bs)); +bdrv_dev_is_medium_locked(bs), +!(bs-open_flags BDRV_O_NOCACHE)); bs_dict = qobject_to_qdict(bs_obj); +qdict_put(bs_dict, open_flags, qint_from_int(bs-open_flags)); No. This adds a open_flags field to the QMP structure that is transferred to clients. This is wrong, open_flags is an internal thing that should never be visible on an interface. In bdrv_print_dict, access the hostcache field that you introduced, it provides the same information. Will replace open_flags with hostcache field. thanks, Supriya
Re: [Qemu-devel] [v7 Patch 1/5]Qemu: Enhance info block to display host cache setting
Am 11.10.2011 05:10, schrieb Supriya Kannery: Enhance info block to display hostcache setting for each block device. Example: (qemu) info block ide0-hd0: removable=0 file=../sles11-32.raw ro=0 drv=raw encrypted=0 Enhanced to display hostcache setting: (qemu) info block ide0-hd0: removable=0 hostcache=1 file=../sles11-32.raw ro=0 drv=raw encrypted=0 Signed-off-by: Supriya Kannery supri...@linux.vnet.ibm.com --- block.c | 20 qmp-commands.hx |2 ++ 2 files changed, 18 insertions(+), 4 deletions(-) Index: qemu/qmp-commands.hx === --- qemu.orig/qmp-commands.hx +++ qemu/qmp-commands.hx @@ -1142,6 +1142,7 @@ Each json-object contain the following: - locked: true if the device is locked, false otherwise (json-bool) - tray-open: only present if removable, true if the device has a tray, and it is open (json-bool) +- hostcache: true if host pagecache 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) @@ -1163,6 +1164,7 @@ Example: { device:ide0-hd0, locked:false, +hostcache:false, removable:false, inserted:{ ro:false, Index: qemu/block.c === --- qemu.orig/block.c +++ qemu/block.c @@ -1866,6 +1866,15 @@ static void bdrv_print_dict(QObject *obj monitor_printf(mon, tray-open=%d, qdict_get_bool(bs_dict, tray-open)); } + +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); Coding style requires braces. +} + if (qdict_haskey(bs_dict, inserted)) { QDict *qdict = qobject_to_qdict(qdict_get(bs_dict, inserted)); @@ -1903,11 +1912,14 @@ void bdrv_info(Monitor *mon, QObject **r QDict *bs_dict; bs_obj = qobject_from_jsonf({ 'device': %s, 'type': 'unknown', -'removable': %i, 'locked': %i }, +'removable': %i, 'locked': %i, +'hostcache': %i }, bs-device_name, bdrv_dev_has_removable_media(bs), -bdrv_dev_is_medium_locked(bs)); +bdrv_dev_is_medium_locked(bs), +!(bs-open_flags BDRV_O_NOCACHE)); bs_dict = qobject_to_qdict(bs_obj); +qdict_put(bs_dict, open_flags, qint_from_int(bs-open_flags)); No. This adds a open_flags field to the QMP structure that is transferred to clients. This is wrong, open_flags is an internal thing that should never be visible on an interface. In bdrv_print_dict, access the hostcache field that you introduced, it provides the same information. Kevin
[Qemu-devel] [v7 Patch 1/5]Qemu: Enhance info block to display host cache setting
Enhance info block to display hostcache setting for each block device. Example: (qemu) info block ide0-hd0: removable=0 file=../sles11-32.raw ro=0 drv=raw encrypted=0 Enhanced to display hostcache setting: (qemu) info block ide0-hd0: removable=0 hostcache=1 file=../sles11-32.raw ro=0 drv=raw encrypted=0 Signed-off-by: Supriya Kannery supri...@linux.vnet.ibm.com --- block.c | 20 qmp-commands.hx |2 ++ 2 files changed, 18 insertions(+), 4 deletions(-) Index: qemu/qmp-commands.hx === --- qemu.orig/qmp-commands.hx +++ qemu/qmp-commands.hx @@ -1142,6 +1142,7 @@ Each json-object contain the following: - locked: true if the device is locked, false otherwise (json-bool) - tray-open: only present if removable, true if the device has a tray, and it is open (json-bool) +- hostcache: true if host pagecache 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) @@ -1163,6 +1164,7 @@ Example: { device:ide0-hd0, locked:false, +hostcache:false, removable:false, inserted:{ ro:false, Index: qemu/block.c === --- qemu.orig/block.c +++ qemu/block.c @@ -1866,6 +1866,15 @@ static void bdrv_print_dict(QObject *obj monitor_printf(mon, tray-open=%d, qdict_get_bool(bs_dict, tray-open)); } + +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)); @@ -1903,11 +1912,14 @@ void bdrv_info(Monitor *mon, QObject **r QDict *bs_dict; bs_obj = qobject_from_jsonf({ 'device': %s, 'type': 'unknown', -'removable': %i, 'locked': %i }, +'removable': %i, 'locked': %i, +'hostcache': %i }, bs-device_name, bdrv_dev_has_removable_media(bs), -bdrv_dev_is_medium_locked(bs)); +bdrv_dev_is_medium_locked(bs), +!(bs-open_flags BDRV_O_NOCACHE)); bs_dict = qobject_to_qdict(bs_obj); +qdict_put(bs_dict, open_flags, qint_from_int(bs-open_flags)); if (bdrv_dev_has_removable_media(bs)) { qdict_put(bs_dict, tray-open,