From 5697aa848b7cb37664814ef6d9950ab2aa8dfc31 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Thu, 26 Nov 2009 13:51:42 +0000 Subject: [PATCH] Pull code to start CPUs executing out of qemudInitCpuAffinity() The code to start CPUs executing has nothing todo with CPU affinity masks, so pull it out of the qemudInitCpuAffinity() method and up into qemudStartVMDaemon() * src/qemu/qemu_driver.c: Pull code to start CPUs executing out of qemudInitCpuAffinity() --- src/qemu/qemu_driver.c | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index dd4daa0aea..b3fa3f2a2e 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1389,13 +1389,10 @@ qemuDetectVcpuPIDs(virConnectPtr conn, } static int -qemudInitCpus(virConnectPtr conn, - struct qemud_driver *driver, - virDomainObjPtr vm, - const char *migrateFrom) { +qemudInitCpuAffinity(virConnectPtr conn, + virDomainObjPtr vm) { int i, hostcpus, maxcpu = QEMUD_CPUMASK_LEN; virNodeInfo nodeinfo; - qemuDomainObjPrivatePtr priv = vm->privateData; unsigned char *cpumap; int cpumaplen; @@ -1440,20 +1437,6 @@ qemudInitCpus(virConnectPtr conn, } VIR_FREE(cpumap); - /* XXX This resume doesn't really belong here. Move it up to caller */ - if (migrateFrom == NULL) { - /* Allow the CPUS to start executing */ - qemuDomainObjEnterMonitorWithDriver(driver, vm); - if (qemuMonitorStartCPUs(priv->mon, conn) < 0) { - if (virGetLastError() == NULL) - qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR, - "%s", _("resume operation failed")); - qemuDomainObjExitMonitorWithDriver(driver, vm); - return -1; - } - qemuDomainObjExitMonitorWithDriver(driver, vm); - } - return 0; } @@ -2343,7 +2326,7 @@ static int qemudStartVMDaemon(virConnectPtr conn, if (qemuDetectVcpuPIDs(conn, driver, vm) < 0) goto abort; - if (qemudInitCpus(conn, driver, vm, migrateFrom) < 0) + if (qemudInitCpuAffinity(conn, vm) < 0) goto abort; if (qemuInitPasswords(driver, vm) < 0) @@ -2354,8 +2337,20 @@ static int qemudStartVMDaemon(virConnectPtr conn, qemuDomainObjExitMonitorWithDriver(driver, vm); goto abort; } + + if (migrateFrom == NULL) { + /* Allow the CPUS to start executing */ + if (qemuMonitorStartCPUs(priv->mon, conn) < 0) { + if (virGetLastError() == NULL) + qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR, + "%s", _("resume operation failed")); + qemuDomainObjExitMonitorWithDriver(driver, vm); + goto abort; + } + } qemuDomainObjExitMonitorWithDriver(driver, vm); + if (virDomainSaveStatus(conn, driver->stateDir, vm) < 0) goto abort;