Activity log for bug #1441781

Date Who What changed Old value New value Message
2015-04-08 18:09:31 Chris Friesen bug added bug
2015-04-08 18:16:13 Chris Friesen description In qemuProcessStart() the code looks like this: VIR_DEBUG("Setting cgroup for emulator (if required)"); if (qemuSetupCgroupForEmulator(vm) < 0) goto cleanup; VIR_DEBUG("Setting affinity of emulator threads"); if (qemuProcessSetEmulatorAffinity(vm) < 0) goto cleanup; VIR_DEBUG("Waiting for monitor to show up"); if (qemuProcessWaitForMonitor(driver, vm, asyncJob, priv->qemuCaps, pos) < 0) goto cleanup; When running on a 24-CPU host and using vCPU and emulator pinning I've seen cases where the specified emulator pinning isn't applied as expected. The issue appears to be due to libvirt racing with qemu. Moving the qemuProcessSetEmulatorAffinity() call to after qemuProcessWaitForMonitor() returns seems to fix the problem. Also, I suspect that qemuSetupCgroupForEmulator() should probably be moved as well. When running on a 24-CPU host and using vCPU and emulator pinning I've seen cases where the specified emulator pinning isn't applied as expected. It appears the bug was introduced by 411cea6 which moved both qemuSetupCgroupForEmulator() and qemuProcessSetEmulatorAffinity() up before the call to qemuProcessWaitForMonitor(). Reverting this commit makes the problem go away.
2015-04-08 18:26:03 Chris Friesen summary qemuProcessSetEmulatorAffinity() called before emulator process actually running qemuProcessSetEmulatorAffinity() not behaving as expected
2015-04-08 18:28:51 Chris Friesen description When running on a 24-CPU host and using vCPU and emulator pinning I've seen cases where the specified emulator pinning isn't applied as expected. It appears the bug was introduced by 411cea6 which moved both qemuSetupCgroupForEmulator() and qemuProcessSetEmulatorAffinity() up before the call to qemuProcessWaitForMonitor(). Reverting this commit makes the problem go away. When running on a 24-CPU host and using vCPU and emulator pinning I've seen cases where the specified emulator pinning isn't applied as expected. It appears the bug was introduced/uncovered by 411cea6 which moved both qemuSetupCgroupForEmulator() and qemuProcessSetEmulatorAffinity() up before the call to qemuProcessWaitForMonitor(). Reverting this commit makes the problem go away. It's not obvious why this makes a difference, since the pid had to have been up and running already.
2015-04-10 10:13:31 Stefan Hajnoczi bug task added libvirt
2015-04-10 10:14:18 Stefan Hajnoczi qemu: status New Invalid