From: Luiz Capitulino <lcapitulino@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: zhugh <zhugh.fnst@cn.fujitsu.com>,
mst@redhat.com, hutao@cn.fujitsu.com, qemu-devel@nongnu.org,
tangchen@cn.fujitsu.com, isimatu.yasuaki@jp.fujitsu.com,
hani@linux.com, stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH v4] Add HMP command "info memory-devices"
Date: Fri, 19 Sep 2014 11:34:44 -0400 [thread overview]
Message-ID: <20140919113444.02dc43ec@redhat.com> (raw)
In-Reply-To: <20140919153019.4f62ed75@nial.usersys.redhat.com>
On Fri, 19 Sep 2014 15:30:19 +0200
Igor Mammedov <imammedo@redhat.com> wrote:
> On Thu, 18 Sep 2014 16:09:32 +0800
> zhugh <zhugh.fnst@cn.fujitsu.com> wrote:
>
> > Hi,
> >
> > Could anyone help to review this patch?
> > If there was no problem, could help to merge it?
> >
> > thanks!
> > zhu
> >
> > On Mon, 2014-09-15 at 19:31 +0800, Zhu Guihua wrote:
> > > Provides HMP equivalent of QMP query-memory-devices command.
> > >
> > > Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com>
> > > ---
> > >
> > > Changes since v3:
> > > - optimize the time to print memory devices' information.
> > > - change output format of di->addr and di->size.
> > >
> > > Changes since v2:
> > > - print address in hex.
> > > - change the loop control from while to for.
> > > - modify some variables' name.
> > > - optimize the time to print memory devices' kind.
> > >
> > > Changes since v1:
> > > - fix bug that accessing info->dimm when MemoryDeviceInfo is not PCDIMMDevice.
> > > - use enum to replace "dimm", and lookup typename in MemoryDeviceInfoKind_lookup[] instead of opencodding it.
> > >
> > > hmp-commands.hx | 2 ++
> > > hmp.c | 38 ++++++++++++++++++++++++++++++++++++++
> > > hmp.h | 1 +
> > > monitor.c | 7 +++++++
> > > 4 files changed, 48 insertions(+)
> > >
> > > diff --git a/hmp-commands.hx b/hmp-commands.hx
> > > index f859f8d..0b1a4f7 100644
> > > --- a/hmp-commands.hx
> > > +++ b/hmp-commands.hx
> > > @@ -1778,6 +1778,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 40a90da..feefeb4 100644
> > > --- a/hmp.c
> > > +++ b/hmp.c
> > > @@ -1718,3 +1718,41 @@ void hmp_info_memdev(Monitor *mon, const QDict *qdict)
> > >
> > > qapi_free_MemdevList(memdev_list);
> > > }
> > > +
> > > +void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
> > > +{
> > > + Error *err = NULL;
> > > + MemoryDeviceInfoList *info_list = qmp_query_memory_devices(&err);
> > > + MemoryDeviceInfoList *info;
> > > + MemoryDeviceInfo *value;
> > > + PCDIMMDeviceInfo *di;
> > > +
> > > + for (info = info_list; info; info = info->next) {
> > > + value = info->value;
> > > +
> > > + if (value) {
> > > + switch (value->kind) {
> > > + case MEMORY_DEVICE_INFO_KIND_DIMM:
> > > + di = value->dimm;
> > > +
> > > + monitor_printf(mon, "Memory device [%s]: %s\n",
> > > + MemoryDeviceInfoKind_lookup[value->kind],
> > > + di->id);
> 'id' might be null, here is what user will see:
>
> Memory device [dimm]: (null)
>
> I'd suggest to replace (null) with "" as it is done elsewhere.
Is the fix below what you're looking for? If it is I can apply it myself:
diff --git a/hmp.c b/hmp.c
index feefeb4..14cb9f8 100644
--- a/hmp.c
+++ b/hmp.c
@@ -1737,7 +1737,7 @@ void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
monitor_printf(mon, "Memory device [%s]: %s\n",
MemoryDeviceInfoKind_lookup[value->kind],
- di->id);
+ di->id ? di->id : "");
monitor_printf(mon, " addr: 0x%" PRIx64 "\n", di->addr);
monitor_printf(mon, " slot: %" PRId64 "\n", di->slot);
monitor_printf(mon, " node: %" PRId64 "\n", di->node);
>
> With that fixed
> Reviewed-By: Igor Mammedov <imammedo@redhat.com>
>
> > > + monitor_printf(mon, " addr: 0x%" PRIx64 "\n", di->addr);
> > > + monitor_printf(mon, " slot: %" PRId64 "\n", di->slot);
> > > + monitor_printf(mon, " node: %" PRId64 "\n", di->node);
> > > + monitor_printf(mon, " size: %" PRIu64 "\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");
> > > + break;
> > > + default:
> > > + break;
> > > + }
> > > + }
> > > + }
> > > +
> > > + qapi_free_MemoryDeviceInfoList(info_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,
> > > },
> > > };
> >
> >
>
next prev parent reply other threads:[~2014-09-19 15:35 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-15 11:31 [Qemu-devel] [PATCH v4] Add HMP command "info memory-devices" Zhu Guihua
2014-09-18 8:09 ` zhugh
2014-09-19 13:30 ` Igor Mammedov
2014-09-19 15:34 ` Luiz Capitulino [this message]
2014-09-20 4:51 ` zhugh
2014-09-22 7:08 ` zhugh
2014-09-22 7:59 ` Markus Armbruster
2014-09-22 8:05 ` Igor Mammedov
2014-09-22 9:29 ` Markus Armbruster
2014-09-22 13:03 ` Luiz Capitulino
2014-09-23 1:08 ` Zhu Guihua
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140919113444.02dc43ec@redhat.com \
--to=lcapitulino@redhat.com \
--cc=hani@linux.com \
--cc=hutao@cn.fujitsu.com \
--cc=imammedo@redhat.com \
--cc=isimatu.yasuaki@jp.fujitsu.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=tangchen@cn.fujitsu.com \
--cc=zhugh.fnst@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.