From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36461) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VCLP2-0003Gu-Gi for qemu-devel@nongnu.org; Wed, 21 Aug 2013 23:17:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VCLOw-0003Tx-I4 for qemu-devel@nongnu.org; Wed, 21 Aug 2013 23:17:40 -0400 Received: from [222.73.24.84] (port=50159 helo=song.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VCLOw-0003T6-5m for qemu-devel@nongnu.org; Wed, 21 Aug 2013 23:17:34 -0400 Message-ID: <5215829F.2090006@cn.fujitsu.com> Date: Thu, 22 Aug 2013 11:16:47 +0800 From: Wanlong Gao MIME-Version: 1.0 References: <1376960839-13033-1-git-send-email-gaowanlong@cn.fujitsu.com> <1376960839-13033-2-git-send-email-gaowanlong@cn.fujitsu.com> <52152A36.80705@redhat.com> <52156592.1000905@cn.fujitsu.com> <52157770.7030803@redhat.com> In-Reply-To: <52157770.7030803@redhat.com> Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=UTF-8 Subject: Re: [Qemu-devel] [PATCH V8 01/11] NUMA: add NumaOptions, NumaNodeOptions and NumaMemOptions Reply-To: gaowanlong@cn.fujitsu.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: aliguori@us.ibm.com, ehabkost@redhat.com, hutao@cn.fujitsu.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, bsd@redhat.com, pbonzini@redhat.com, y-goto@jp.fujitsu.com, peter.huangpeng@huawei.com, lersek@redhat.com, afaerber@suse.de, Wanlong Gao On 08/22/2013 10:29 AM, Eric Blake wrote: > On 08/21/2013 07:12 PM, Wanlong Gao wrote: > >>>> + '*mem': 'str' }} >>> >>> Why is size passed as a 'str' instead of an integral type? If anything, >>> at the QMP layer, it should be an integer representing size in bytes >>> (the command line and HMP are already capable of converting shorthand >>> like 1G into proper byte counts for use in QAPI). >> >> Since the original "mem" options is MB default, but "size" type is byte default, >> so we should pass a "str" first to be consistent with original option. > > No. HMP is human-friendly - it can default to M. QMP is > machine-friendly - it should default to bytes and take an 'int' rather > than a 'str'. Part of the glue between HMP and QMP is converting from > human-friendly to machine-friendly, so that QMP doesn't have to carry cruft. This "mem" options is only for command line options, I can't understand you are saying QMP command here. Because the original "mem" option treat "1024" as "1024MB", but if I set this to "size" type, this "mem" options will treat "1024" as "124B". So I should pass a str first and make it to "MB" default in the options parse function to be consistent with original one. > > >>>> +# >>>> +# @nodeid: #optional NUMA node ID >>>> +# >>>> +# @size: #optional memory size of this node >>> >>> If everything is optional, then what defaults are used if I specify >>> nothing? Should nodeid be mandatory (here, and in NumaNodeOptions)? >> >> The defaults are all consistent with original behaviour. If nodeid is >> omitted, the option will be assigned node by node from node0. > > What will be assigned? If I omit both nodeid and size, there's nothing If the "-m" option assigned the total memory size is 2G, then if you omit both nodeid and memory size in the options, for example two "-numa mem," options here, it will split total memory across these two node to : node0 1G node1 1G This is the original behaviour and I didn't change any. Thanks, Wanlong Gao > left in the object I'm passing. Just because HMP can do sane defaults > doesn't mean that QMP needs to mark all fields as optional. >