[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: Konrad Rzeszutek Wilk [mailto:konrad.wilk@xxxxxxxxxx]
> Sent: Wednesday, July 01, 2015 8:03 PM
> To: Xu, Quan; ian.campbell@xxxxxxxxxx; ian.jackson@xxxxxxxxxxxxx;
> xen-devel@xxxxxxxxxxxxx; wei.liu2@xxxxxxxxxx
> Subject: RE: [Xen-devel] [PATCH v4 7/7] libxl/vcpu-set - allow to decrease 
> vcpu
> count on overcommitted guests (v5)
> 
> 
> 
> On July 1, 2015 7:42:33 AM EDT, "Xu, Quan" <quan.xu@xxxxxxxxx> wrote:
> >
> >
> >> -----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 ??
> 
> Yes.
> >

Thanks! This maybe still a bug.



> >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:
> >
> 
> 
> Did you use the latest kernel?please start another thread with this error and
> details such as kernel version, etc. Please CC David Vrabel and Boris 
> Ostrovsky.
> 
> 


Not the last.
I use ubutu 14.04 kernel as domain0 kernel.
Which kernel version does it work? I can try it.

Another question for http://wiki.xen.org/wiki/Paravirt_Linux_CPU_Hotplug : 

   Content of `cpu-online.rules`:
   SUBSYSTEM=="cpu",ACTION=="add",RUN+="/bin/sh -c '[ ! -e /sys$devpath/online 
] || echo 1 > /sys$devpath/online'"



Should I replace "/sys$devpath/online " with "/sys/devices/system/cpu/online" ??


Thanks
Quan





> >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
> 
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.
_______________________________________________
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®.