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>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
Konrad Rzeszutek Wilk authored and Ian Campbell committed 2015-04-15 14:04:29 +01:00
1 parent 9d447f61f9
commit 292b2f8201
1 file changed
+13 -4
+13 -4
View File
@@ -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) {
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) {
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.