[libvirt] [PATCH 2/3] virnuma: Introduce virNumaGetDistances

Daniel P. Berrange berrange at redhat.com
Mon Jun 2 15:57:42 UTC 2014


On Mon, Jun 02, 2014 at 02:15:59PM +0200, Michal Privoznik wrote:
> The API gets a NUMA node and find distances to other nodes.  The
> distances are returned in an array. If an item X within the array
> equals to value of zero, then there's no such node as X.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/libvirt_private.syms |  1 +
>  src/util/virnuma.c       | 50 ++++++++++++++++++++++++++++++++++++++++++++++++
>  src/util/virnuma.h       |  3 +++
>  3 files changed, 54 insertions(+)
> 
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index cb635cd..6168f76 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -1652,6 +1652,7 @@ virNodeSuspendGetTargetMask;
>  virDomainNumatuneMemModeTypeFromString;
>  virDomainNumatuneMemModeTypeToString;
>  virNumaGetAutoPlacementAdvice;
> +virNumaGetDistances;
>  virNumaGetMaxNode;
>  virNumaGetNodeMemory;
>  virNumaIsAvailable;
> diff --git a/src/util/virnuma.c b/src/util/virnuma.c
> index 1e099eb..68b2698 100644
> --- a/src/util/virnuma.c
> +++ b/src/util/virnuma.c
> @@ -217,6 +217,56 @@ virNumaGetMaxNode(void)
>  
>  
>  /**
> + * virNumaGetDistances:
> + * @node: identifier of the requested NUMA node
> + * @distances: array of distances to sibling nodes
> + * @ndistances: size of @distances
> + *
> + * Get array of distances to sibling nodes from @node. If a
> + * distances[x] equals to zero, the node x is not enabled or
> + * doesn't exist. As a special case, if @node itself refers to
> + * disabled or nonexistent NUMA node, then @distances and
> + * @ndistances are set to NULL and zero respectively.

I think it'd be worth stating what the distance is between
a node and itself, since that's another special case. I'd
assumed that the distince between a ndoe and itself would
be zero, but your next patch shows that it would be 10 which
I find a bit bizarre. Presumably that's just what numactl,
or perhaps the kernel, reports ?

If we are relying  on numactl's value ranges, then we should
be clear about this to help people porting to non-Linux
platforms.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list