On Tue, Nov 22, 2016 at 12:52:26 +0100, Viktor Mihajlovski wrote:
On 22.11.2016 09:22, Peter Krempa wrote:
> On Mon, Nov 21, 2016 at 17:14:42 +0100, Viktor Mihajlovski wrote:
>> On 21.11.2016 16:30, Peter Krempa wrote:
>>> The original implementation reused qemuMonitorGetCPUInfo to update the
halted
>>> state. The function is very complex and should not be called all the time
just
>>> to update a trivial parameter.
>>>
>>> Add infrastructure to properly update the state without the need to match
in
>>> hotplug parameters.
>>>
>>> Peter Krempa (3):
>>> qemu: monitor: Extract qemu cpu id along with other data
>>> qemu: monitor: Extract halted state to a bitmap indexed by cpu id
>>> qemu: domain: Refresh vcpu halted state using qemuMonitorGetCpuHalted
>>>
> I've already pushed it. The hiccup might be in the fallback code that
> does not remember correctly the cpu numbers as reported by qemu.
>
> I'll post patches if it's so.
>
Yep ... with the following squashed in, it worked for me, (legacy) hotplug
and all.
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 3bace53..2d4ccbe 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -1729,6 +1729,7 @@ qemuMonitorGetCPUInfoLegacy(struct qemuMonitorQueryCpusEntry
*cpuentrie
if (i < ncpuentries) {
vcpus[i].tid = cpuentries[i].tid;
vcpus[i].halted = cpuentries[i].halted;
+ vcpus[i].qemu_id = cpuentries[i].qemu_id;
}
/* for legacy hotplug to work we need to fake the vcpu count added by
I noticed that both the Hotplug and legacy code miss that line. It must
have vanished when I was cutting up the changes into patches.
See the series I've posted.