On 17/10/2018 15:20, Pavel Dovgalyuk wrote: > I found the source of the bug. As QEMU becomes more multi-threaded > and non-synchronized, checkpoints move from thread to thread. And the > event queue that processed at checkpoints should belong to the same > thread in both record and replay executions. > > Current problem was with the checkpoint for virtual timers. They are > processed from different threads: from vCPU and from aio_dispatch > function. > > Therefore the following patch fixes the problem, but I think that > this part has to be refactored. There should be nailed-to-thread > events that process the event queue. Then checkpoints can become just > synchronization events and therefore omitted for empty timer lists, > for example.
Can you add a FIXME comment and submit this as a full patch? Paolo