From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42654) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XVydV-0001gq-Mh for qemu-devel@nongnu.org; Mon, 22 Sep 2014 04:06:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XVydQ-00043A-Ng for qemu-devel@nongnu.org; Mon, 22 Sep 2014 04:06:17 -0400 Received: from mx1.redhat.com ([209.132.183.28]:65215) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XVydQ-00041S-Fk for qemu-devel@nongnu.org; Mon, 22 Sep 2014 04:06:12 -0400 Date: Mon, 22 Sep 2014 10:05:56 +0200 From: Igor Mammedov Message-ID: <20140922100556.5e411e8c@nial.usersys.redhat.com> In-Reply-To: <87sijkt7at.fsf@blackfin.pond.sub.org> References: <1410780686-6298-1-git-send-email-zhugh.fnst@cn.fujitsu.com> <1411027772.16917.3.camel@G08FNSTD140041> <20140919153019.4f62ed75@nial.usersys.redhat.com> <20140919113444.02dc43ec@redhat.com> <1411369734.3718.15.camel@G08FNSTD140041> <87sijkt7at.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4] Add HMP command "info memory-devices" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: zhugh , 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, Luiz Capitulino On Mon, 22 Sep 2014 09:59:06 +0200 Markus Armbruster wrote: > zhugh writes: > > > On Fri, 2014-09-19 at 11:34 -0400, Luiz Capitulino wrote: > >> On Fri, 19 Sep 2014 15:30:19 +0200 > >> Igor Mammedov wrote: > >> > >> > On Thu, 18 Sep 2014 16:09:32 +0800 > >> > zhugh 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 > [...] > >> > > > 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: > > > > I am sorry, I did not test this fix in my code last time. But your fix > > would print nothing when the id was null. > > Printing nothing when there's no ID has a certain logic to it :) When I do 'info qtree' it displays empty IDs with as empty "" I think we should be consistent and apply above correction. > > > So I think the fix would like the below, could you apply it? > > Thanks! > > > > diff --git a/hmp.c b/hmp.c > > index feefeb4..39a6490 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); > > I'd stick to printing nothing.