qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 03/49] qapi: convert NumaOptions into a flat


From: Kővágó Zoltán
Subject: Re: [Qemu-devel] [PATCH v2 03/49] qapi: convert NumaOptions into a flat union
Date: Sat, 22 Aug 2015 17:56:40 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0

2015-08-22 01:13 keltezéssel, Eduardo Habkost írta:
On Fri, Aug 21, 2015 at 05:36:59PM +0200, Kővágó, Zoltán wrote:
Signed-off-by: Kővágó, Zoltán <address@hidden>

I don't understand QAPI enough to understand why exactly this is needed
(so I would like to get feedback from somebody who actually understands
QAPI unions), but I have one comment below.

It's needed so the option visitor can support nested structures properly without flattening them (or breaking backward compatibility).

There is some discussion here:
http://lists.nongnu.org/archive/html/qemu-devel/2015-06/msg04438.html

But basically the thing is that with new new opts visitor, unless we convert NumaOptions into a flat union, the user would have to type -numa node,node.nodeid=foo instead of -numa node,nodeid=foo which would break backward compatibility.


[...]
  ##
+# @NumaDriver
+#
+# List of possible numa drivers.
+#
+# Since: 2.5
+##
+{ 'enum': 'NumaDriver',
+  'data': [ 'node' ] }

Why is the name "NumaDriver"? Below, the field is called "type", so why
not something like "NumaOptionType"?

No particular reason other than the example in docs/qapi-code-gen.txt used driver. The field is called type because in the non-flat union the discriminator is called type.

+
+##
+# @NumaCommonOptions
+#
+# Common set of numa options.
+#
+# @type: the numa driver to use
+#
+# Since: 2.5
+##
+{ 'struct': 'NumaCommonOptions',
+  'data': {
+    'type': 'NumaDriver' } }
+
+##
+# @NumaOptions
+#
+# A discriminated record of NUMA options. (for OptsVisitor)
+#
+# Since 2.1
+##
+{ 'union': 'NumaOptions',
+  'base': 'NumaCommonOptions',
+  'discriminator': 'type',
+  'data': {
+    'node': 'NumaNodeOptions' }}
+
+##
  # @HostMemPolicy
  #
  # Host memory policy types
--
2.5.0






reply via email to

[Prev in Thread] Current Thread [Next in Thread]