All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4] Fix xl vcpu-set to decrease an guest vCPU amoutn without complaints.
@ 2015-03-30 15:26 Konrad Rzeszutek Wilk
  2015-03-30 15:26 ` [PATCH v4 1/7] libxl: Add ERROR_DOMAIN_NOTFOUND for libxl_domain_info when it cannot find the domain Konrad Rzeszutek Wilk
                   ` (6 more replies)
  0 siblings, 7 replies; 16+ messages in thread
From: Konrad Rzeszutek Wilk @ 2015-03-30 15:26 UTC (permalink / raw)
  To: ian.campbell, ian.jackson, xen-devel, wei.liu2

Hey Ian and Ian,

Since v3 [http://lists.xen.org/archives/html/xen-devel/2015-03/msg02822.html]
- Constify the libxl_dominfo and handle libxl_domain_info errors.
- Made libxl_domain_info use logging if domain is gone.
- Drop libxl: Add to libxl__domain_type a new return value (LIBXL_DOMAIN_TYPE_NOTFOUND)

In v2 [http://lists.xen.org/archives/html/xen-devel/2015-03/msg01787.html]:
 - Fixed up #1 "libxl: Add ERROR_DOMAIN_NOTFOUND for libxl_domain_info" per your review.
 - Moved the check from vcpuset to libxl_set_vcpuonline to check if the set bits of the
   cpumap is greater than the maximum vCPU that the guest can have (and added printks).
 - Added LIBXL_DOMAIN_TYPE_NOTFOUND so that libxl_set_vcpuonline can report that the
   domain id is for an non-existent guest.
 - Added an #define in libxl.h to expose the new _NOTFOUND error value.

 git://xenbits.xen.org/people/konradwilk/xen.git vcpuset.v4

In short, these two patches were modified since v3 posting:

 [PATCH v4 2/7] libxl: In libxl_set_vcpuonline check for maximum
 [PATCH v4 7/7] libxl/vcpu-set - allow to decrease vcpu count on

while the rest is the same.

Thank you for taking the time to review these patches!

 tools/libxl/libxl.c         | 73 ++++++++++++++++++++++++++++-----------------
 tools/libxl/libxl.h         |  9 +++++-
 tools/libxl/libxl_types.idl |  1 +
 tools/libxl/xl_cmdimpl.c    | 47 ++++++++++++++++++-----------
 4 files changed, 84 insertions(+), 46 deletions(-)

Konrad Rzeszutek Wilk (7):
      libxl: Add ERROR_DOMAIN_NOTFOUND for libxl_domain_info when it cannot find the domain
      libxl: In libxl_set_vcpuonline check for maximum number of VCPUs against the cpumap.
      libxl/libxl_domain_info: Log if domain not found.
      libxl/vcpuset: Print error if libxl_set_vcpuonline returns ERROR_DOMAIN_NOTFOUND
      libxl/vcpuset: Return error value if failed.
      libxl/vcpuset: Remove useless limit on max_vcpus.
      libxl/vcpuset - allow to decrease vcpu count on overcommitted guests (v5)

^ permalink raw reply	[flat|nested] 16+ messages in thread
* Re: [PATCH v4 7/7] libxl/vcpu-set - allow to decrease vcpu count on overcommitted guests (v5)
@ 2015-07-01 11:42 Xu, Quan
  2015-07-01 12:02 ` Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 16+ messages in thread
From: Xu, Quan @ 2015-07-01 11:42 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk, ian.campbell@citrix.com,
	ian.jackson@eu.citrix.com, xen-devel@lists.xen.org,
	wei.liu2@citrix.com, Xu, Quan



> -----Original Message-----
> From: xen-devel-bounces@lists.xen.org
> [mailto:xen-devel-bounces@lists.xen.org] On Behalf Of Konrad Rzeszutek Wilk
> Sent: Monday, March 30, 2015 11:27 PM
> To: ian.campbell@citrix.com; ian.jackson@eu.citrix.com; xen-devel@lists.xen.org;
> wei.liu2@citrix.com
> 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@oracle.com>
> 
> ---
> [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@lists.xen.org
> http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2015-07-01 12:18 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-30 15:26 [PATCH v4] Fix xl vcpu-set to decrease an guest vCPU amoutn without complaints Konrad Rzeszutek Wilk
2015-03-30 15:26 ` [PATCH v4 1/7] libxl: Add ERROR_DOMAIN_NOTFOUND for libxl_domain_info when it cannot find the domain Konrad Rzeszutek Wilk
2015-03-30 15:26 ` [PATCH v4 2/7] libxl: In libxl_set_vcpuonline check for maximum number of VCPUs against the cpumap Konrad Rzeszutek Wilk
2015-03-31 15:57   ` Ian Campbell
2015-04-03 15:45     ` Konrad Rzeszutek Wilk
2015-04-14 15:11       ` Ian Campbell
2015-03-30 15:26 ` [PATCH v4 3/7] libxl/libxl_domain_info: Log if domain not found Konrad Rzeszutek Wilk
2015-03-31 15:58   ` Ian Campbell
2015-03-30 15:26 ` [PATCH v4 4/7] libxl/vcpuset: Print error if libxl_set_vcpuonline returns ERROR_DOMAIN_NOTFOUND Konrad Rzeszutek Wilk
2015-03-30 15:26 ` [PATCH v4 5/7] libxl/vcpuset: Return error value if failed Konrad Rzeszutek Wilk
2015-03-30 15:26 ` [PATCH v4 6/7] libxl/vcpuset: Remove useless limit on max_vcpus Konrad Rzeszutek Wilk
2015-03-30 15:26 ` [PATCH v4 7/7] libxl/vcpu-set - allow to decrease vcpu count on overcommitted guests (v5) Konrad Rzeszutek Wilk
2015-03-31 15:59   ` Ian Campbell
  -- strict thread matches above, loose matches on Subject: below --
2015-07-01 11:42 Xu, Quan
2015-07-01 12:02 ` Konrad Rzeszutek Wilk
2015-07-01 12:18   ` Xu, Quan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.