qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Arun Menon <armenon@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Peter Xu" <peterx@redhat.com>, "Fabiano Rosas" <farosas@suse.de>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Akihiko Odaki" <odaki@rsg.ci.i.u-tokyo.ac.jp>,
	"Dmitry Osipenko" <dmitry.osipenko@collabora.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Cornelia Huck" <cohuck@redhat.com>,
	"Halil Pasic" <pasic@linux.ibm.com>,
	"Eric Farman" <farman@linux.ibm.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"Matthew Rosato" <mjrosato@linux.ibm.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"David Hildenbrand" <david@redhat.com>,
	"Ilya Leoshkevich" <iii@linux.ibm.com>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Fam Zheng" <fam@euphon.net>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Cédric Le Goater" <clg@redhat.com>,
	"Steve Sistare" <steven.sistare@oracle.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	qemu-s390x@nongnu.org, qemu-ppc@nongnu.org,
	"Hailiang Zhang" <zhanghailiang@xfusion.com>,
	"Stefan Berger" <stefanb@linux.vnet.ibm.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	qemu-arm@nongnu.org, "Arun Menon" <armenon@redhat.com>
Subject: [PATCH v12 11/27] migration: push Error **errp into qemu_loadvm_section_part_end()
Date: Thu, 21 Aug 2025 14:14:05 +0530	[thread overview]
Message-ID: <20250821-propagate_tpm_error-v12-11-72b803e707dc@redhat.com> (raw)
In-Reply-To: <20250821-propagate_tpm_error-v12-0-72b803e707dc@redhat.com>

This is an incremental step in converting vmstate loading
code to report error via Error objects instead of directly
printing it to console/monitor.
It is ensured that qemu_loadvm_section_part_end() must report an error
in errp, in case of failure.
This patch also removes the setting of errp when errp is NULL in the
out section as it is no longer required in the series.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Arun Menon <armenon@redhat.com>
---
 migration/savevm.c | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/migration/savevm.c b/migration/savevm.c
index b55adb7468e5356ecb636734241f1a356a42a284..8e0ee14cc86dfffee86e46e32c7500d23924dc8e 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -2803,21 +2803,20 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t type, Error **errp)
 }
 
 static int
-qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type)
+qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type, Error **errp)
 {
+    ERRP_GUARD();
     bool trace_downtime = (type == QEMU_VM_SECTION_END);
     int64_t start_ts, end_ts;
     uint32_t section_id;
     SaveStateEntry *se;
     int ret;
-    Error *local_err = NULL;
 
     section_id = qemu_get_be32(f);
 
     ret = qemu_file_get_error(f);
     if (ret) {
-        error_report("%s: Failed to read section ID: %d",
-                     __func__, ret);
+        error_setg(errp, "Failed to read section ID: %d", ret);
         return ret;
     }
 
@@ -2828,7 +2827,7 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type)
         }
     }
     if (se == NULL) {
-        error_report("Unknown savevm section %d", section_id);
+        error_setg(errp, "Unknown section %d", section_id);
         return -EINVAL;
     }
 
@@ -2836,11 +2835,10 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type)
         start_ts = qemu_clock_get_us(QEMU_CLOCK_REALTIME);
     }
 
-    ret = vmstate_load(f, se, &local_err);
+    ret = vmstate_load(f, se, errp);
     if (ret < 0) {
-        error_report("error while loading state section id %d(%s)",
-                     section_id, se->idstr);
-        warn_report_err(local_err);
+        error_prepend(errp, "error while loading state section id %d(%s): ",
+                      section_id, se->idstr);
         return ret;
     }
 
@@ -2851,6 +2849,8 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type)
     }
 
     if (!check_section_footer(f, se)) {
+        error_setg(errp, "Section footer error, section_id: %d",
+                   section_id);
         return -EINVAL;
     }
 
@@ -3110,7 +3110,7 @@ retry:
             break;
         case QEMU_VM_SECTION_PART:
         case QEMU_VM_SECTION_END:
-            ret = qemu_loadvm_section_part_end(f, section_type);
+            ret = qemu_loadvm_section_part_end(f, section_type, errp);
             if (ret < 0) {
                 goto out;
             }
@@ -3134,9 +3134,6 @@ retry:
 
 out:
     if (ret < 0) {
-        if (*errp == NULL) {
-            error_setg(errp, "Loading VM state failed: %d", ret);
-        }
         qemu_file_set_error(f, ret);
 
         /* Cancel bitmaps incoming regardless of recovery */

-- 
2.50.1



  parent reply	other threads:[~2025-08-21  8:52 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-21  8:43 [PATCH v12 00/27] migration: propagate vTPM errors using Error objects Arun Menon
2025-08-21  8:43 ` [PATCH v12 01/27] migration: push Error **errp into vmstate_subsection_load() Arun Menon
2025-08-25 20:27   ` Fabiano Rosas
2025-08-21  8:43 ` [PATCH v12 02/27] migration: push Error **errp into vmstate_load_state() Arun Menon
2025-08-25 20:47   ` Fabiano Rosas
2025-08-28  1:34   ` Akihiko Odaki
2025-08-28  8:17     ` Arun Menon
2025-08-28  8:21       ` Arun Menon
2025-08-29 10:37       ` Akihiko Odaki
2025-08-29 14:51         ` Arun Menon
2025-08-21  8:43 ` [PATCH v12 03/27] migration: push Error **errp into qemu_loadvm_state_header() Arun Menon
2025-08-21  8:43 ` [PATCH v12 04/27] migration: push Error **errp into vmstate_load() Arun Menon
2025-08-25 20:52   ` Fabiano Rosas
2025-08-21  8:43 ` [PATCH v12 05/27] migration: push Error **errp into loadvm_process_command() Arun Menon
2025-08-25 20:54   ` Fabiano Rosas
2025-08-21  8:44 ` [PATCH v12 06/27] migration: push Error **errp into loadvm_handle_cmd_packaged() Arun Menon
2025-08-21  8:44 ` [PATCH v12 07/27] migration: push Error **errp into qemu_loadvm_state() Arun Menon
2025-08-25 20:56   ` Fabiano Rosas
2025-08-21  8:44 ` [PATCH v12 08/27] migration: push Error **errp into qemu_load_device_state() Arun Menon
2025-08-25 20:57   ` Fabiano Rosas
2025-08-21  8:44 ` [PATCH v12 09/27] migration: push Error **errp into qemu_loadvm_state_main() Arun Menon
2025-08-25 21:01   ` Fabiano Rosas
2025-08-21  8:44 ` [PATCH v12 10/27] migration: push Error **errp into qemu_loadvm_section_start_full() Arun Menon
2025-08-25 21:03   ` Fabiano Rosas
2025-08-21  8:44 ` Arun Menon [this message]
2025-08-25 21:04   ` [PATCH v12 11/27] migration: push Error **errp into qemu_loadvm_section_part_end() Fabiano Rosas
2025-08-21  8:44 ` [PATCH v12 12/27] migration: Update qemu_file_get_return_path() docs and remove dead checks Arun Menon
2025-08-21  8:44 ` [PATCH v12 13/27] migration: make loadvm_postcopy_handle_resume() void Arun Menon
2025-08-21  8:44 ` [PATCH v12 14/27] migration: push Error **errp into ram_postcopy_incoming_init() Arun Menon
2025-08-21  8:44 ` [PATCH v12 15/27] migration: push Error **errp into loadvm_postcopy_handle_advise() Arun Menon
2025-08-21  8:44 ` [PATCH v12 16/27] migration: push Error **errp into loadvm_postcopy_handle_listen() Arun Menon
2025-08-21  8:44 ` [PATCH v12 17/27] migration: push Error **errp into loadvm_postcopy_handle_run() Arun Menon
2025-08-21  8:44 ` [PATCH v12 18/27] migration: push Error **errp into loadvm_postcopy_ram_handle_discard() Arun Menon
2025-08-21  8:44 ` [PATCH v12 19/27] migration: push Error **errp into loadvm_handle_recv_bitmap() Arun Menon
2025-08-25 21:05   ` Fabiano Rosas
2025-08-21  8:44 ` [PATCH v12 20/27] migration: Return -1 on memory allocation failure in ram.c Arun Menon
2025-08-21  8:44 ` [PATCH v12 21/27] migration: push Error **errp into loadvm_process_enable_colo() Arun Menon
2025-08-21  8:44 ` [PATCH v12 22/27] migration: push Error **errp into loadvm_postcopy_handle_switchover_start() Arun Menon
2025-08-21  8:44 ` [PATCH v12 23/27] migration: Capture error in postcopy_ram_listen_thread() Arun Menon
2025-08-25 21:06   ` Fabiano Rosas
2025-08-21  8:44 ` [PATCH v12 24/27] migration: Remove error variant of vmstate_save_state() function Arun Menon
2025-08-25 21:12   ` Fabiano Rosas
2025-08-21  8:44 ` [PATCH v12 25/27] migration: Rename post_save() to cleanup_save() and make it void Arun Menon
2025-08-25 21:30   ` Fabiano Rosas
2025-08-21  8:44 ` [PATCH v12 26/27] migration: Add error-parameterized function variants in VMSD struct Arun Menon
2025-08-25 21:21   ` Fabiano Rosas
2025-08-21  8:44 ` [PATCH v12 27/27] backends/tpm: Propagate vTPM error on migration failure Arun Menon
2025-08-25 21:22   ` Fabiano Rosas

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=20250821-propagate_tpm_error-v12-11-72b803e707dc@redhat.com \
    --to=armenon@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=alex.williamson@redhat.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=clg@redhat.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=dmitry.osipenko@collabora.com \
    --cc=fam@euphon.net \
    --cc=farman@linux.ibm.com \
    --cc=farosas@suse.de \
    --cc=harshpb@linux.ibm.com \
    --cc=iii@linux.ibm.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mjrosato@linux.ibm.com \
    --cc=mst@redhat.com \
    --cc=npiggin@gmail.com \
    --cc=odaki@rsg.ci.i.u-tokyo.ac.jp \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=stefanb@linux.vnet.ibm.com \
    --cc=steven.sistare@oracle.com \
    --cc=thuth@redhat.com \
    --cc=zhanghailiang@xfusion.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;
as well as URLs for NNTP newsgroup(s).