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.

Reply via email to