[libvirt] [PATCH 2/5] numa: Introduce virDomainNumaNodeDistanceSpecified

John Ferlan jferlan at redhat.com
Tue Nov 21 23:38:34 UTC 2017



On 11/14/2017 09:47 AM, Michal Privoznik wrote:
> The function returns true/false depending on distance
> configuration being present in the domain XML.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/conf/numa_conf.c     | 13 +++++++++++++
>  src/conf/numa_conf.h     |  4 ++++
>  src/libvirt_private.syms |  1 +
>  3 files changed, 18 insertions(+)
> 
> diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c
> index 5f0b3f9ed..6a42777e2 100644
> --- a/src/conf/numa_conf.c
> +++ b/src/conf/numa_conf.c
> @@ -1137,6 +1137,19 @@ virDomainNumaSetNodeCount(virDomainNumaPtr numa, size_t nmem_nodes)
>      return numa->nmem_nodes;
>  }
>  

Two blank lines here too.

> +bool
> +virDomainNumaNodeDistanceSpecified(virDomainNumaPtr numa,
> +                                   size_t node,
> +                                   size_t sibling)
> +{
> +    return node < numa->nmem_nodes &&
> +        sibling < numa->nmem_nodes &&
> +        numa->mem_nodes[node].distances &&
> +        numa->mem_nodes[node].distances[sibling].value != LOCAL_DISTANCE &&
> +        numa->mem_nodes[node].distances[sibling].value != REMOTE_DISTANCE;
> +}
> +
> +

According to how I read commit message '74119a03' it *is* possible to
set the @value to the same value as LOCAL_DISTANCE(10) or
REMOTE_DISTANCE(20) - so using that as a comparison for whether it was
specified would seem to be wrong.

Still if a distance *is* provided, then it seems that 'id' and 'value'
are also required to be provided or defaulted.  That means what seems to
matter regarding whether something was provided is if the *.value and/or
"*.cellid are zero

At least that's how I'm reading virDomainNumaDefNodeDistanceParseXML

John


>  size_t
>  virDomainNumaGetNodeDistance(virDomainNumaPtr numa,
>                               size_t node,
> diff --git a/src/conf/numa_conf.h b/src/conf/numa_conf.h
> index 4655de3aa..1d2e605b6 100644
> --- a/src/conf/numa_conf.h
> +++ b/src/conf/numa_conf.h
> @@ -87,6 +87,10 @@ int virDomainNumatuneMaybeGetNodeset(virDomainNumaPtr numatune,
>  
>  size_t virDomainNumaGetNodeCount(virDomainNumaPtr numa);
>  
> +bool virDomainNumaNodeDistanceSpecified(virDomainNumaPtr numa,
> +                                        size_t node,
> +                                        size_t sibling)
> +    ATTRIBUTE_NONNULL(1);
>  size_t virDomainNumaGetNodeDistance(virDomainNumaPtr numa,
>                                      size_t node,
>                                      size_t sibling)
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index 5a4d50471..779bab7a3 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -725,6 +725,7 @@ virDomainNumaGetNodeDistance;
>  virDomainNumaGetNodeMemoryAccessMode;
>  virDomainNumaGetNodeMemorySize;
>  virDomainNumaNew;
> +virDomainNumaNodeDistanceSpecified;
>  virDomainNumaSetNodeCount;
>  virDomainNumaSetNodeCpumask;
>  virDomainNumaSetNodeDistance;
> 




More information about the libvir-list mailing list