[libvirt] [PATCHv3 3/8] add new API virDomain{G, S}etNumaParameters

Eric Blake eblake at redhat.com
Fri Dec 16 22:45:36 UTC 2011


On 12/15/2011 03:50 AM, Hu Tao wrote:
> Set up the types for the numa functions and insert them into the
> virDriver structure definition.
> ---
>  include/libvirt/libvirt.h.in |   23 +++++++++++++++++++++++
>  python/generator.py          |    2 ++
>  src/driver.h                 |   15 +++++++++++++++
>  src/libvirt_public.syms      |    6 ++++++
>  4 files changed, 46 insertions(+), 0 deletions(-)
> 

> +/* Manage numa parameters */
> +
> +/**
> + * VIR_DOMAIN_NUMA_NODESET:
> + *
> + * numa nodeset
> + */
> +#define VIR_DOMAIN_NUMA_NODESET "numa_nodeset"
> +
> +/**
> + * VIR_DOMAIN_NUMA_MODE:
> + *
> + * numa mode
> + */
> +#define VIR_DOMAIN_NUMA_MODE "numa_mode"

That's awfully sparse on details, such as what type is expected.
Furthermore, after reading 6/8, I noticed that you are using numa_mode
to hold a non-public enum value, which makes it a non-starter.  I'm
squashing this in, to make the enum public and add some documentation.

diff --git i/include/libvirt/libvirt.h.in w/include/libvirt/libvirt.h.in
index 55f27ae..da370fb 100644
--- i/include/libvirt/libvirt.h.in
+++ w/include/libvirt/libvirt.h.in
@@ -1347,16 +1347,32 @@ typedef enum {
 /* Manage numa parameters */

 /**
+ * virDomainNumatuneMemMode:
+ * Representation of the various modes in the <numatune> element of
+ * a domain.
+ */
+enum virDomainNumatuneMemMode {
+    VIR_DOMAIN_NUMATUNE_MEM_STRICT      = 0,
+    VIR_DOMAIN_NUMATUNE_MEM_PREFERRED   = 1,
+    VIR_DOMAIN_NUMATUNE_MEM_INTERLEAVE  = 2,
+
+    /* This constant is subject to change */
+    VIR_DOMAIN_NUMATUNE_MEM_LAST
+};
+
+/**
  * VIR_DOMAIN_NUMA_NODESET:
  *
- * numa nodeset
+ * Macro for typed parameter name that lists the numa nodeset of a
+ * domain, as a string.
  */
 #define VIR_DOMAIN_NUMA_NODESET "numa_nodeset"

 /**
  * VIR_DOMAIN_NUMA_MODE:
  *
- * numa mode
+ * Macro for typed parameter name that lists the numa mode of a domain,
+ * as an int containing a virDomainNumatuneMemMode value.
  */
 #define VIR_DOMAIN_NUMA_MODE "numa_mode"

diff --git i/src/conf/domain_conf.h w/src/conf/domain_conf.h
index 3229a6f..189b8f6 100644
--- i/src/conf/domain_conf.h
+++ w/src/conf/domain_conf.h
@@ -1355,14 +1355,6 @@ virDomainVcpuPinDefPtr
virDomainVcpuPinFindByVcpu(virDomainVcpuPinDefPtr *def,
                                                   int nvcpupin,
                                                   int vcpu);

-enum virDomainNumatuneMemMode {
-    VIR_DOMAIN_NUMATUNE_MEM_STRICT,
-    VIR_DOMAIN_NUMATUNE_MEM_PREFERRED,
-    VIR_DOMAIN_NUMATUNE_MEM_INTERLEAVE,
-
-    VIR_DOMAIN_NUMATUNE_MEM_LAST
-};
-
 typedef struct _virDomainNumatuneDef virDomainNumatuneDef;
 typedef virDomainNumatuneDef *virDomainNumatuneDefPtr;
 struct _virDomainNumatuneDef {

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20111216/5c67f65a/attachment-0001.sig>


More information about the libvir-list mailing list