[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] "xl vcpu-set" not persistent across reboot?



>>> On 03.06.16 at 18:35, <wei.liu2@xxxxxxxxxx> wrote:
> I got a patch ready.  But QEMU upstream refuses to start on the receiving end
> with following error message:
> 
> qemu-system-i386: Unknown savevm section or instance 'cpu_common' 1
> qemu-system-i386: load of migration failed: Invalid argument
> 
> With QEMU traditional HVM guest and PV guest, the guest works fine -- up
> and running with all hot plugged cpus available.
> 
> So I think the relevant libxl information is transmitted but we also
> need to fix QEMU upstream. But that's a separate issue.

Stefano, Anthony,

any thoughts here?

Thanks, Jan

> ---8<---
> From 790ff77c6307b341dec0b4cc5e2d394e42f82e7c Mon Sep 17 00:00:00 2001
> From: Wei Liu <wei.liu2@xxxxxxxxxx>
> Date: Fri, 3 Jun 2016 16:38:32 +0100
> Subject: [PATCH] libxl: update vcpus bitmap in retrieved geust config
> 
> ... because the available vcpu bitmap can change during domain life time
> due to cpu hotplug and unplug.
> 
> Reported-by: Jan Beulich <jbeulich@xxxxxxxx>
> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> ---
>  tools/libxl/libxl.c | 31 +++++++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
> 
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index 006b83f..99617f3 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -7270,6 +7270,37 @@ int libxl_retrieve_domain_configuration(libxl_ctx 
> *ctx, uint32_t domid,
>          libxl_dominfo_dispose(&info);
>      }
>  
> +    /* VCPUs */
> +    {
> +        libxl_vcpuinfo *vcpus;
> +        libxl_bitmap *map;
> +        int nr_vcpus, nr_cpus;
> +        unsigned int i;
> +
> +        vcpus = libxl_list_vcpu(ctx, domid, &nr_vcpus, &nr_cpus);
> +        if (!vcpus) {
> +            LOG(ERROR, "fail to get vcpu list for domain %d", domid);
> +            rc = ERROR_FAIL;
> +            goto out;
> +        }
> +
> +        /* Update the avail_vcpus bitmap accordingly */
> +        map = &d_config->b_info.avail_vcpus;
> +
> +        libxl_bitmap_dispose(map);
> +
> +        libxl_bitmap_alloc(ctx, map, nr_vcpus);
> +
> +        libxl_bitmap_init(map);
> +
> +        for (i = 0; i < nr_vcpus; i++) {
> +            if (vcpus[i].online)
> +                libxl_bitmap_set(map, i);
> +        }
> +
> +        libxl_vcpuinfo_list_free(vcpus, nr_vcpus);
> +    }
> +
>      /* Memory limits:
>       *
>       * Currently there are three memory limits:
> -- 
> 2.1.4




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.