[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen stable-4.2] libxl: In libxl_set_vcpuonline check for maximum number of VCPUs against the cpumap.



commit 8722647e778971977dac4ce586ae5a44ae41e660
Author:     Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
AuthorDate: Fri Apr 3 16:02:29 2015 -0400
Commit:     Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
CommitDate: Wed Aug 12 13:09:54 2015 +0100

    libxl: In libxl_set_vcpuonline check for maximum number of VCPUs against 
the cpumap.
    
    There is no sense in trying to online (or offline) CPUs when the size of
    cpumap is greater than the maximum number of VCPUs the guest can go to.
    
    As such fail the operation if the count of CPUs to online is greater
    than what the guest started with. For the offline case we do not
    check (as the bits are unset in the cpumap) and let it go through.
    
    We coalesce some of the underlying libxl_set_vcpuonline code
    together which was duplicated in QMP and XenStore codepaths.
    
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
    Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
    
    (cherry picked from commit d83bf9d224eeb5b73b93c2703f7dba4473cfa89c)
    Conflicts:
        tools/libxl/libxl.c
    Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
    
    (cherry picked from commit 0d8cbcad03764e42ff2f0d224aff883c3734d782)
    Conflicts:
        tools/libxl/libxl.c
    Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
    
    (cherry picked from commit ca0f468192d12d8d30c2a48a37c5d3460a464a29)
    Conflicts:
        tools/libxl/libxl.c
    Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
    
    (cherry picked from commit 116bbc6062cd90b98f746c3a058f4ec24347527d)
    Conflicts:
        tools/libxl/libxl.c
    Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
 tools/libxl/libxl.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 99cfc6e..b0f7e8b 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -3963,12 +3963,22 @@ int libxl_set_vcpuonline(libxl_ctx *ctx, uint32_t 
domid, libxl_bitmap *cpumap)
     libxl_dominfo info;
     char *dompath;
     xs_transaction_t t;
-    int i, rc = ERROR_FAIL;
+    int i, maxcpus, rc = ERROR_FAIL;
 
     if (libxl_domain_info(ctx, &info, domid) < 0) {
         LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "getting domain info list");
         goto out;
     }
+
+    maxcpus = libxl_bitmap_count_set(cpumap);
+    if (maxcpus > info.vcpu_max_id + 1)
+    {
+        LOGE(ERROR, "Requested %d VCPUs, however maxcpus is %d!",
+             maxcpus, info.vcpu_max_id + 1);
+        rc = ERROR_FAIL;
+        goto out;
+    }
+
     if (!(dompath = libxl__xs_get_dompath(gc, domid)))
         goto out;
 
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.2

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.