[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |