From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38790) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V47Wa-0007ih-1R for qemu-devel@nongnu.org; Tue, 30 Jul 2013 06:51:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V47WU-0005oL-1b for qemu-devel@nongnu.org; Tue, 30 Jul 2013 06:51:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:13589) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V47WT-0005o8-Qv for qemu-devel@nongnu.org; Tue, 30 Jul 2013 06:51:21 -0400 Message-ID: <51F79AD4.2010005@redhat.com> Date: Tue, 30 Jul 2013 12:52:04 +0200 From: Laszlo Ersek MIME-Version: 1.0 References: <1375169553-12099-1-git-send-email-gaowanlong@cn.fujitsu.com> <1375169553-12099-2-git-send-email-gaowanlong@cn.fujitsu.com> In-Reply-To: <1375169553-12099-2-git-send-email-gaowanlong@cn.fujitsu.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH V6 01/11] NUMA: add NumaOptions, NumaNodeOptions and NumaMemOptions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wanlong Gao Cc: aliguori@us.ibm.com, ehabkost@redhat.com, hutao@cn.fujitsu.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, bsd@redhat.com, y-goto@jp.fujitsu.com, pbonzini@redhat.com, peter.huangpeng@huawei.com, afaerber@suse.de On 07/30/13 09:32, Wanlong Gao wrote: > +## > +# @UInt16 > +# > +# Let "uint16" be entry-wise > +# > +# @u16: a "uint16" type value > +# > +# Since 1.7 > +## > +{ 'type': 'UInt16', 'data': { 'u16': 'uint16' }} Ah sorry, I should have spelled this out more clearly -- I only mentioned it in my OptsVisitor series' cover letter (not the RFC one, just the PATCH one): On 07/22/13 23:07, Laszlo Ersek wrote: > rfc->v1: > ... > - updated the cover letter to take native lists into account, plus > cleaned it up. > ... > (Commit eb7ee2cb ("qapi: introduce OptsVisitor") had originally > documented OptsVisitor's general schema requirements for parsing > repeated options such that the list element type had to be a struct > with one mandatory scalar field. Accordingly, the RFC version of this > series required for interval flattening that this underlying scalar > type be an integer type. However, since commit a678e26c ("qapi: pad > GenericList value fields to 64 bits") we've had reliable native lists; > OptsVisitor turns out to support them automatically.) IOW, you can drop the UInt16 wrapper struct, and below: > + > +## > +# @NumaOptions > +# > +# A discriminated record of NUMA options. > +# > +# Since 1.7 > +## > +{ 'union': 'NumaOptions', > + 'data': { > + 'node': 'NumaNodeOptions', > + 'mem': 'NumaMemOptions' }} > + > +## > +# @NumaNodeOptions > +# > +# Create a guest NUMA node. > +# > +# @nodeid: #optional NUMA node ID > +# > +# @cpus: #optional VCPUs belong to this node > +# > +# @mem: #optional memory size of this node (remain as legacy) > +# > +# Since: 1.7 > +## > +{ 'type': 'NumaNodeOptions', > + 'data': { > + '*nodeid': 'uint16', > + '*cpus': ['UInt16'], > + '*mem': 'str' }} you can use plain ['uint16'] as type. (You can also glance at 8/8 (unit test schema) in my series.) > + > +## > +# @NumaMemOptions > +# > +# Set memory information of guest NUMA node. > +# > +# @nodeid: #optional NUMA node ID > +# > +# @size: #optional memory size of this node > +# > +# Since 1.7 > +## > +{ 'type': 'NumaMemOptions', > + 'data': { > + '*nodeid': 'uint16', > + '*size': 'size' }} > Rest looks good for this patch I think. Laszlo