[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