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

Re: [Xen-devel] [PATCH v4 7/7] libxl/vcpu-set - allow to decrease vcpu count on overcommitted guests (v5)




> -----Original Message-----
> From: xen-devel-bounces@xxxxxxxxxxxxx
> [mailto:xen-devel-bounces@xxxxxxxxxxxxx] On Behalf Of Konrad Rzeszutek Wilk
> Sent: Monday, March 30, 2015 11:27 PM
> To: ian.campbell@xxxxxxxxxx; ian.jackson@xxxxxxxxxxxxx; 
> xen-devel@xxxxxxxxxxxxx;
> wei.liu2@xxxxxxxxxx
> Cc: Konrad Rzeszutek Wilk
> Subject: [Xen-devel] [PATCH v4 7/7] libxl/vcpu-set - allow to decrease vcpu 
> count
> on overcommitted guests (v5)
> 
> We have a check to warn the user if they are overcommitting.
> But the check only checks the hosts CPU amount and does not take into account
> the case when the user is trying to fix the overcommit. That is - they want 
> to limit
> the amount of online VCPUs.
> 
> This fix allows the user to offline vCPUs without any warnings when they are
> running an overcommitted guest.
> 
> Also fix the extra space in the message.
> 
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> 
> ---
> [v2: Remove crud code as spotted by Boris]
> [v3: Moved crud code removal to another patch]
> [v4: Remove the fprintf as it is done in libxl_domain_info]
> [v5: Fix memory leak]
> ---
>  tools/libxl/xl_cmdimpl.c | 17 +++++++++++++----
>  1 file changed, 13 insertions(+), 4 deletions(-)
> 
> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index
> b121d75..648ca08 100644
> --- a/tools/libxl/xl_cmdimpl.c
> +++ b/tools/libxl/xl_cmdimpl.c
> @@ -5238,12 +5238,21 @@ static int vcpuset(uint32_t domid, const char*
> nr_vcpus, int check_host)
>       */
>      if (check_host) {
>          unsigned int host_cpu = libxl_get_max_cpus(ctx);
> -        if (max_vcpus > host_cpu) {
> -            fprintf(stderr, "You are overcommmitting! You have %d physical " 
> \
> -                    " CPUs and want %d vCPUs! Aborting, use --ignore-host
> to " \
> -                    " continue\n", host_cpu, max_vcpus);
> +        libxl_dominfo dominfo;
> +
> +        rc = libxl_domain_info(ctx, &dominfo, domid);
> +        if (rc)
>              return 1;
> +
> +        if (max_vcpus > dominfo.vcpu_online && max_vcpus > host_cpu) {

Konrad,
          I have a question. Does xen support vcpu-set to reset vcpu-count 
larger than current number of active VCPUs ??

       If the vcpu-count is larger than the current number of active VCPUs, 
sometimes Xen hypervisor doesn't run correctly with Call Trace form series 
output.
       For example, When I run vcpu-set to set Domain-0 vcpu count from 32 to 
20( domain0_max_vcpu is 32), then I try to run vcpu-set to
       Vcpu-set Domain-0 from 20 to 32 again(20 is current number of active 
VCPUs ). sometimes, it is wrong form series output as below:

Output >> 
[  830.220998] Call Trace:
[  830.221020]  [<ffffffff8110fbca>] ? rcu_irq_exit+0x7a/0xe0
[  830.221032]  [<ffffffff8105f010>] ? xen_safe_halt+0x10/0x20
[  830.221043]  [<ffffffff81074abc>] ? default_idle+0x2c/0xd0
[  830.221051]  [<ffffffff81073eea>] ? arch_cpu_idle+0xa/0x10
[  830.221064]  [<ffffffff810fd2a5>] ? cpu_startup_entry+0x315/0x470
[  830.221074]  [<ffffffff81065ed5>] ? cpu_bringup_and_idle+0x25/0x40
[  830.221082] rcu_sched kthread starved for 63005 jiffies!
Output<<

BTW, I have tried to set domain-0 as 
http://wiki.xen.org/wiki/Paravirt_Linux_CPU_Hotplug


Thanks
Quan Xu



> +            fprintf(stderr, "You are overcommmitting! You have %d physical" \
> +                    " CPUs and want %d vCPUs! Aborting, use --ignore-host
> to" \
> +                    " continue\n", host_cpu, max_vcpus);
> +            rc = 1;
>          }
> +        libxl_dominfo_dispose(&dominfo);
> +        if (rc)
> +            return 1;
>      }
>      rc = libxl_cpu_bitmap_alloc(ctx, &cpumap, max_vcpus);
>      if (rc) {
> --
> 2.1.0
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

_______________________________________________
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®.