[libvirt] [PATCHv2 3/3] virsh: Use virNodeGetCPUMap if possible

Hu Tao hutao at cn.fujitsu.com
Thu Nov 1 02:58:02 UTC 2012


On Wed, Oct 31, 2012 at 06:20:58PM +0100, Viktor Mihajlovski wrote:
> Modified the places where virNodeGetInfo was used for the purpose
> of obtaining the maximum node CPU number. Transparently falling
> back to virNodeGetInfo in case of failure.
> Wrote utility function vshNodeGetCPUCount to compute node CPU
> number.
> 
> Signed-off-by: Viktor Mihajlovski <mihajlov at linux.vnet.ibm.com>
> ---
> V2 Changes:
> Implemented Eric Blake's suggestion to remove code bloat 
> introduced by first patch version.
> New helper function vshNodeGetCPUCount is now used to calculate
> the number of node CPUs.
> 
>  tools/virsh-domain.c | 32 +++++++++++++++++++++++---------
>  1 file changed, 23 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
> index 255669f..59289f1 100644
> --- a/tools/virsh-domain.c
> +++ b/tools/virsh-domain.c
> @@ -126,6 +126,26 @@ vshDomainVcpuStateToString(int state)
>  }
>  
>  /*
> + * Determine number of CPU nodes present by trying
> + * virNodeGetCPUMap and falling back to virNodeGetInfo
> + * if needed.
> + */
> +static int
> +vshNodeGetCPUCount(virConnectPtr conn)
> +{
> +    int ret;
> +    virNodeInfo nodeinfo;
> +
> +    if ((ret = virNodeGetCPUMap(conn, NULL, NULL, 0)) < 0) {
> +        /* fall back to nodeinfo */
> +        if (virNodeGetInfo(conn, &nodeinfo) == 0) {
> +            ret = VIR_NODEINFO_MAXCPUS(nodeinfo);
> +        }

Isn't VIR_NODEINFO_MAXCPUS buggy? Either don't fall back to nodeinfo
or fix it.


-- 
Thanks,
Hu Tao




More information about the libvir-list mailing list