aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl_dom.c
diff options
context:
space:
mode:
authorYang Zhang <yang.z.zhang@Intel.com>2012-06-28 17:51:56 +0100
committerYang Zhang <yang.z.zhang@Intel.com>2012-06-28 17:51:56 +0100
commite1e1e98cacd82fa054ac3c6b381d9833236110e0 (patch)
tree77708e08b3f5c559b3c74d0323d7d33155e00aaa /tools/libxl/libxl_dom.c
parent928c75ce59fc11c707b8bfd0b99ce0c07ab89926 (diff)
downloadxen-e1e1e98cacd82fa054ac3c6b381d9833236110e0.tar.gz
xen-e1e1e98cacd82fa054ac3c6b381d9833236110e0.tar.bz2
xen-e1e1e98cacd82fa054ac3c6b381d9833236110e0.zip
libxl: allow setting more than 31 vcpus
In current implementation, it uses integer to record current avail cpus and this only allows user to specify 31 vcpus. In following patch, it uses cpumap instead integer which make more sense than before. Also there is no limit to the max vcpus. Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl/libxl_dom.c')
-rw-r--r--tools/libxl/libxl_dom.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
index a2e66558d3..d88629fc18 100644
--- a/tools/libxl/libxl_dom.c
+++ b/tools/libxl/libxl_dom.c
@@ -199,8 +199,8 @@ int libxl__build_post(libxl__gc *gc, uint32_t domid,
ents[11] = libxl__sprintf(gc, "%lu", state->store_mfn);
for (i = 0; i < info->max_vcpus; i++) {
ents[12+(i*2)] = libxl__sprintf(gc, "cpu/%d/availability", i);
- ents[12+(i*2)+1] = (i && info->cur_vcpus && !(info->cur_vcpus & (1 << i)))
- ? "offline" : "online";
+ ents[12+(i*2)+1] = libxl_cpumap_test(&info->avail_vcpus, i)
+ ? "online" : "offline";
}
hvm_ents = NULL;
@@ -354,7 +354,7 @@ static int hvm_build_set_params(xc_interface *handle, uint32_t domid,
va_hvm = (struct hvm_info_table *)(va_map + HVM_INFO_OFFSET);
va_hvm->apic_mode = libxl_defbool_val(info->u.hvm.apic);
va_hvm->nr_vcpus = info->max_vcpus;
- memcpy(va_hvm->vcpu_online, &info->cur_vcpus, sizeof(info->cur_vcpus));
+ memcpy(va_hvm->vcpu_online, info->avail_vcpus.map, info->avail_vcpus.size);
for (i = 0, sum = 0; i < va_hvm->length; i++)
sum += ((uint8_t *) va_hvm)[i];
va_hvm->checksum -= sum;