Re: [Qemu-devel] [v7 Patch 1/5]Qemu: Enhance info block to display host cache setting

2011-10-14 Thread Supriya Kannery

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

2011-10-12 Thread Kevin Wolf
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

2011-10-10 Thread 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);
+}
+
 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,