[libvirt] [PATCH v3 1/2] conf: List only online cpus for virsh vcpupin

Viktor Mihajlovski mihajlov at linux.vnet.ibm.com
Fri Nov 11 13:51:31 UTC 2016


On 11.11.2016 12:26, Nitesh Konkar wrote:
> Currently when the vcpu placement is static
> and cpuset is not specified, CPU Affinity
> under virsh vcpupin shows 0..CPUMAX. This
> patchset will result in display of only
> online CPU's under CPU Affinity on linux.
> 
> Signed-off-by: Nitesh Konkar <nitkon12 at linux.vnet.ibm.com>
> ---
>  src/conf/domain_conf.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 74efe8c..6f81903 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -55,6 +55,7 @@
>  #include "virtpm.h"
>  #include "virstring.h"
>  #include "virnetdev.h"
> +#include "virhostcpu.h"
> 
>  #define VIR_FROM_THIS VIR_FROM_DOMAIN
> 
> @@ -1543,8 +1544,13 @@ virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def,
>  {
>      int maxvcpus = virDomainDefGetVcpusMax(def);
>      virBitmapPtr allcpumap = NULL;
> +    virBitmapPtr staticCpuset = NULL;
>      size_t i;
> 
> +#ifdef __linux__
> +    staticCpuset = virHostCPUGetOnlineBitmap();
> +#endif
> +
>      if (hostcpus < 0)
>          return -1;
> 
> @@ -1562,6 +1568,9 @@ virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def,
>          else if (def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO &&
>                   autoCpuset)
>              bitmap = autoCpuset;
> +        else if (def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC &&
> +                 staticCpuset)
> +            bitmap = staticCpuset;
I wonder whether you suggest this to reconcile the results of virsh
vcpupin and virsh vcpuinfo for a running domain? If so, this will not
work because then you would rather have to query the process' cpu
affinity, but this can obviously not be done here.
>          else if (def->cpumask)
>              bitmap = def->cpumask;
>          else
> @@ -1571,6 +1580,7 @@ virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def,
>      }
> 
>      virBitmapFree(allcpumap);
> +    virBitmapFree(staticCpuset);
>      return i;
>  }
> 


-- 

Mit freundlichen Grüßen/Kind Regards
   Viktor Mihajlovski

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martina Köderitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294




More information about the libvir-list mailing list