[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)




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


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