]> git.proxmox.com Git - mirror_qemu.git/commitdiff
replay: fix replay shutdown for console mode
authorPavel Dovgalyuk <Pavel.Dovgaluk@gmail.com>
Fri, 22 May 2020 06:45:54 +0000 (09:45 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 12 Jun 2020 15:20:15 +0000 (11:20 -0400)
When QEMU is used without any graphical window,
QEMU execution is terminated with the signal (e.g., Ctrl-C).
Signal processing in QEMU does not include
qemu_system_shutdown_request call. That is why shutdown
event is not recorded by record/replay in this case.
This patch adds shutdown event to the end of the record log.
Now every replay will shutdown the machine at the end.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Message-Id: <159012995470.27967.18129611453659045726.stgit@pasha-ThinkPad-X280>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
replay/replay.c

index 706c7b4f4b1f2c794bc1aa190d542b77d8d8d399..7d93746c739acfb33f653a529fe93e332ea04e54 100644 (file)
@@ -366,6 +366,11 @@ void replay_finish(void)
     /* finalize the file */
     if (replay_file) {
         if (replay_mode == REPLAY_MODE_RECORD) {
+            /*
+             * Can't do it in the signal handler, therefore
+             * add shutdown event here for the case of Ctrl-C.
+             */
+            replay_shutdown_request(SHUTDOWN_CAUSE_HOST_SIGNAL);
             /* write end event */
             replay_put_event(EVENT_END);