On 26.04.2022 21:54, Richard Henderson wrote:
On 4/22/22 04:53, Pavel Dovgalyuk wrote:
This patch decouples checkpoints and async events.
It was a tricky part of replay implementation. Now it becomes
much simpler and easier to maintain.
Signed-off-by: Pavel Dovgalyuk <pavel.dovgal...@ispras.ru>
Looks ok, as far as I can follow. With a couple of nits,
Acked-by: Richard Henderson <richard.hender...@linaro.org>
--- a/replay/replay-snapshot.c
+++ b/replay/replay-snapshot.c
@@ -61,7 +61,6 @@ static const VMStateDescription vmstate_replay = {
VMSTATE_UINT64(block_request_id, ReplayState),
VMSTATE_INT32(read_event_kind, ReplayState),
VMSTATE_UINT64(read_event_id, ReplayState),
- VMSTATE_INT32(read_event_checkpoint, ReplayState),
VMSTATE_END_OF_LIST()
},
};
Bump version_id and minimum_version_id.
I bumped replay log version. This vmstate is useless without replay log
and won't be loaded with the old logs.
+void replay_async_events(void)
+{
+ static bool processing = false;
+ /* If we are already processing the events, recursion may occur
+ in case of incorrect implementation when HW event modifies
timers.
+ Timer modification may invoke the icount warp, event processing,
+ and cause the recursion. */
Format multi-line comments per coding style:
/*
* block
*/
Thanks.