提交 4f3f8ca8 编写于 作者: P Peter Krempa

libxl: Reuse virBitmapToData in libxlDomainSetVcpuAffinities

上级 9f8196ac
...@@ -797,34 +797,17 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm) ...@@ -797,34 +797,17 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
virDomainDefPtr def = vm->def; virDomainDefPtr def = vm->def;
libxl_bitmap map; libxl_bitmap map;
virBitmapPtr cpumask = NULL; virBitmapPtr cpumask = NULL;
uint8_t *cpumap = NULL;
virNodeInfo nodeinfo;
size_t cpumaplen;
int vcpu; int vcpu;
size_t i;
int ret = -1; int ret = -1;
if (libxlDriverNodeGetInfo(driver, &nodeinfo) < 0)
goto cleanup;
cpumaplen = VIR_CPU_MAPLEN(VIR_NODEINFO_MAXCPUS(nodeinfo));
for (vcpu = 0; vcpu < def->cputune.nvcpupin; ++vcpu) { for (vcpu = 0; vcpu < def->cputune.nvcpupin; ++vcpu) {
if (vcpu != def->cputune.vcpupin[vcpu]->id) if (vcpu != def->cputune.vcpupin[vcpu]->id)
continue; continue;
if (VIR_ALLOC_N(cpumap, cpumaplen) < 0)
goto cleanup;
cpumask = def->cputune.vcpupin[vcpu]->cpumask; cpumask = def->cputune.vcpupin[vcpu]->cpumask;
for (i = 0; i < virBitmapSize(cpumask); ++i) { if (virBitmapToData(cpumask, &map.map, (int *)&map.size) < 0)
if (virBitmapIsBitSet(cpumask, i)) goto cleanup;
VIR_USE_CPU(cpumap, i);
}
map.size = cpumaplen;
map.map = cpumap;
if (libxl_set_vcpuaffinity(cfg->ctx, def->id, vcpu, &map) != 0) { if (libxl_set_vcpuaffinity(cfg->ctx, def->id, vcpu, &map) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
...@@ -832,13 +815,13 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm) ...@@ -832,13 +815,13 @@ libxlDomainSetVcpuAffinities(libxlDriverPrivatePtr driver, virDomainObjPtr vm)
goto cleanup; goto cleanup;
} }
VIR_FREE(cpumap); VIR_FREE(map.map);
} }
ret = 0; ret = 0;
cleanup: cleanup:
VIR_FREE(cpumap); VIR_FREE(map.map);
virObjectUnref(cfg); virObjectUnref(cfg);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册