qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC PATCH v1] monitor: add parameter 'memory-devices' to the 'info' command
@ 2014-09-04  1:07 Zhu Guihua
  2014-09-05 12:01 ` Igor Mammedov
  0 siblings, 1 reply; 2+ messages in thread
From: Zhu Guihua @ 2014-09-04  1:07 UTC (permalink / raw)
  To: qemu-devel, lcapitulino, hani, stefanha, imammedo, mst
  Cc: hutao, isimatu.yasuaki, Zhu Guihua, tangchen

When you hot remove hotpluggable memory devices, you should know the id of memory devices. But before this, you could not know the id of memory devices unless you remember all infomation about hotpluggable memory devices.
This patch provides the function, if you input command 'info memory-devices' in monitor, monitor can list all available memory devices and their information.

Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com>
---
 hmp-commands.hx |  2 ++
 hmp.c           | 33 +++++++++++++++++++++++++++++++++
 hmp.h           |  1 +
 monitor.c       |  7 +++++++
 4 files changed, 43 insertions(+)

diff --git a/hmp-commands.hx b/hmp-commands.hx
index d0943b1..1aa353f 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1780,6 +1780,8 @@ show qdev device model list
 show roms
 @item info tpm
 show the TPM device
+@item info memory-devices
+show the memory devices
 @end table
 ETEXI
 
diff --git a/hmp.c b/hmp.c
index 4d1838e..977d3f4 100644
--- a/hmp.c
+++ b/hmp.c
@@ -1714,3 +1714,36 @@ void hmp_info_memdev(Monitor *mon, const QDict *qdict)
 
     monitor_printf(mon, "\n");
 }
+
+void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
+{
+    Error *err = NULL;
+    MemoryDeviceInfoList *list = qmp_query_memory_devices(&err);
+    MemoryDeviceInfoList *elem = list;
+    MemoryDeviceInfo *info;
+    PCDIMMDeviceInfo *di;
+    int i = 0;
+
+    while (elem) {
+        info = elem->value;
+        di = info->dimm;
+
+        monitor_printf(mon, "MemoryDevice %d\n", i);
+        monitor_printf(mon, "  data:\n");
+        monitor_printf(mon, "      id: %s\n", di->id);
+        monitor_printf(mon, "      addr: %" PRId64 "\n", di->addr);
+        monitor_printf(mon, "      slot: %" PRId64 "\n", di->slot);
+        monitor_printf(mon, "      node: %" PRId64 "\n", di->node);
+        monitor_printf(mon, "      size: %" PRId64 "\n", di->size);
+        monitor_printf(mon, "      memdev: %s\n", di->memdev);
+        monitor_printf(mon, "      hotplugged: %s\n", di->hotplugged ? "true" : "false");
+        monitor_printf(mon, "      hotpluggable: %s\n", di->hotpluggable ? "true" : "false");
+        monitor_printf(mon, "  type: %s\n", info->kind ? "max" : "dimm");
+
+        elem = elem->next;
+        i++;
+    }
+
+    qapi_free_MemoryDeviceInfoList(elem);
+    qapi_free_MemoryDeviceInfoList(list);
+}
diff --git a/hmp.h b/hmp.h
index 4fd3c4a..4bb5dca 100644
--- a/hmp.h
+++ b/hmp.h
@@ -94,6 +94,7 @@ void hmp_cpu_add(Monitor *mon, const QDict *qdict);
 void hmp_object_add(Monitor *mon, const QDict *qdict);
 void hmp_object_del(Monitor *mon, const QDict *qdict);
 void hmp_info_memdev(Monitor *mon, const QDict *qdict);
+void hmp_info_memory_devices(Monitor *mon, const QDict *qdict);
 void object_add_completion(ReadLineState *rs, int nb_args, const char *str);
 void object_del_completion(ReadLineState *rs, int nb_args, const char *str);
 void device_add_completion(ReadLineState *rs, int nb_args, const char *str);
diff --git a/monitor.c b/monitor.c
index 34cee74..fe88e0d 100644
--- a/monitor.c
+++ b/monitor.c
@@ -2921,6 +2921,13 @@ static mon_cmd_t info_cmds[] = {
         .mhandler.cmd = hmp_info_memdev,
     },
     {
+        .name       = "memory-devices",
+        .args_type  = "",
+        .params     = "",
+        .help       = "show memory devices",
+        .mhandler.cmd = hmp_info_memory_devices,
+    },
+    {
         .name       = NULL,
     },
 };
-- 
1.9.3

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-09-05 12:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-04  1:07 [Qemu-devel] [RFC PATCH v1] monitor: add parameter 'memory-devices' to the 'info' command Zhu Guihua
2014-09-05 12:01 ` Igor Mammedov

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).