public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Fiona Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH qemu 3/6] savevm-async: improve runstate preservation
Date: Mon, 31 Mar 2025 16:55:04 +0200	[thread overview]
Message-ID: <20250331145507.196208-4-f.ebner@proxmox.com> (raw)
In-Reply-To: <20250331145507.196208-1-f.ebner@proxmox.com>

Determine if VM needs to be started after finishing right before
actually stopping the VM instead of at the beginning.

In qmp_savevm_start(), the only path stopping the VM returns right
aftwards, so there is no need for the vm_start() handling after
errors. The next commit will inline the remaining error handling and
avoid the confusing naming of the 'restart' goto label.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---
 migration/savevm-async.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/migration/savevm-async.c b/migration/savevm-async.c
index 1e34c31e8b..72d8ed2739 100644
--- a/migration/savevm-async.c
+++ b/migration/savevm-async.c
@@ -178,6 +178,7 @@ static void process_savevm_finalize(void *opaque)
      */
     blk_set_aio_context(snap_state.target, qemu_get_aio_context(), NULL);
 
+    snap_state.vm_needs_start = runstate_is_running();
     ret = vm_stop_force_state(RUN_STATE_FINISH_MIGRATE);
     if (ret < 0) {
         save_snapshot_error("vm_stop_force_state error %d", ret);
@@ -352,7 +353,6 @@ void qmp_savevm_start(const char *statefile, Error **errp)
     }
 
     /* initialize snapshot info */
-    snap_state.vm_needs_start = runstate_is_running();
     snap_state.bs_pos = 0;
     snap_state.total_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
     snap_state.blocker = NULL;
@@ -364,6 +364,7 @@ void qmp_savevm_start(const char *statefile, Error **errp)
     }
 
     if (!statefile) {
+        snap_state.vm_needs_start = runstate_is_running();
         vm_stop(RUN_STATE_SAVE_VM);
         snap_state.state = SAVE_STATE_COMPLETED;
         return;
@@ -439,11 +440,6 @@ void qmp_savevm_start(const char *statefile, Error **errp)
 restart:
 
     save_snapshot_error("setup failed");
-
-    if (snap_state.vm_needs_start) {
-        vm_start();
-        snap_state.vm_needs_start = false;
-    }
 }
 
 static void coroutine_fn wait_for_close_co(void *opaque)
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  parent reply	other threads:[~2025-03-31 14:55 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-31 14:55 [pve-devel] [PATCH-SERIES qemu 0/6] async snapshot improvements Fiona Ebner
2025-03-31 14:55 ` [pve-devel] [PATCH qemu 1/6] savevm-async: improve setting state of snapshot operation in savevm-end handler Fiona Ebner
2025-03-31 14:55 ` [pve-devel] [PATCH qemu 2/6] savevm-async: rename saved_vm_running to vm_needs_start Fiona Ebner
2025-03-31 14:55 ` Fiona Ebner [this message]
2025-03-31 14:55 ` [pve-devel] [PATCH qemu 4/6] savevm-async: cleanup error handling in savevm_start Fiona Ebner
2025-03-31 14:55 ` [pve-devel] [PATCH qemu 5/6] savevm-async: use dedicated iothread for state file Fiona Ebner
2025-03-31 14:55 ` [pve-devel] [PATCH qemu 6/6] savevm-async: treat failure to set iothread context as a hard failure Fiona Ebner
2025-03-31 15:06 ` [pve-devel] [PATCH-SERIES qemu 0/6] async snapshot improvements Fiona Ebner
2025-04-02 15:35 ` [pve-devel] applied-series: " Wolfgang Bumiller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250331145507.196208-4-f.ebner@proxmox.com \
    --to=f.ebner@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal