diff mbox

[V6,01/11] NUMA: add NumaOptions, NumaNodeOptions and NumaMemOptions

Message ID 1375169553-12099-2-git-send-email-gaowanlong@cn.fujitsu.com
State New
Headers show

Commit Message

Wanlong Gao July 30, 2013, 7:32 a.m. UTC
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
---
 qapi-schema.json | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

Comments

Laszlo Ersek July 30, 2013, 10:52 a.m. UTC | #1
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
diff mbox

Patch

diff --git a/qapi-schema.json b/qapi-schema.json
index a51f7d2..b31fd08 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3773,3 +3773,61 @@ 
 ##
 { 'command': 'query-rx-filter', 'data': { '*name': 'str' },
   'returns': ['RxFilterInfo'] }
+
+##
+# @UInt16
+#
+# Let "uint16" be entry-wise
+#
+# @u16: a "uint16" type value
+#
+# Since 1.7
+##
+{ 'type': 'UInt16', 'data': { 'u16': 'uint16' }}
+
+##
+# @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' }}
+
+##
+# @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' }}