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