From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097427; cv=none; d=zohomail.com; s=zohoarc; b=WXruXDCuE+Rue8Hp0+/dL4EQjTZfq+yRUotODFHDhhhtEzGKUFI/qTBf7JrX1Ov3WCmJRvPogUJyiL0BA7N9PyCKFjlq5AAOCTNHM3Kw0cfo7hWzY7uDBEJCITjFBlkIKNDJvrR9LhuUk+mm8+Gox16m2jjjST78slglCbUtEBQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097427; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=P1dASEeWrCEZwvHQ4T9aLbTxxgvNH9Q7yhnVZ/B2DMA=; b=n6kBt8/A5KLI4sQTTlOjZRblCnXFFvOwQLzPNNxkx3veBLR9BP64bpiFrgy6xRHBc/DSUd7//VIJZBliaxhkZ9r8cDQ17FG5fzOpF1Qcrklfn1e8W7rrCUFC/0zqb+GFui57n5LtreIsYA6oqWlyq7Mo8XXvVV2EWn2N+KshwV8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175309742751550.85127585605926; Mon, 21 Jul 2025 04:30:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udoiW-0007Uw-9m; Mon, 21 Jul 2025 07:30:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoiM-00079A-4D for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:29:52 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoiJ-0000c8-JB for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:29:49 -0400 Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-263-Oaj9DN4FNIqLyEQIk0HWUQ-1; Mon, 21 Jul 2025 07:29:42 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-311d670ad35so4001714a91.3 for ; Mon, 21 Jul 2025 04:29:41 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.29.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:29:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097384; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=P1dASEeWrCEZwvHQ4T9aLbTxxgvNH9Q7yhnVZ/B2DMA=; b=WLyIFaRGNxH8ZJ5MKcS019ykxWAbWpzFeq8pN3dqMriY9N4eAJBaZAWqrKRz3rpM/HIvoh 1ocvSk7KDsYm4gOL7zauNIOu13jki74+MfPX4RbTWf2kj7DCGlJ5XEgU8KG7/ZptFJBLKc fWRwsN0JlfVrNJ2TEXZ4AmxPsiziZaY= X-MC-Unique: Oaj9DN4FNIqLyEQIk0HWUQ-1 X-Mimecast-MFC-AGG-ID: Oaj9DN4FNIqLyEQIk0HWUQ_1753097380 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097380; x=1753702180; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=P1dASEeWrCEZwvHQ4T9aLbTxxgvNH9Q7yhnVZ/B2DMA=; b=jrGd29UXGd/g3RL6NkiUexhDRuaoJmW1PqBxLhsJGRtvLC8CV+MGsJY3S2PWUqkjSY xrAU25q+EcEVrRa9gMD9/0F03G4KK3twhpPgd+uYKrbEzb11m7W0L6ODaq6phlDIXKEn gSqn8noEAZeol/1fH4athbFICzELsVX1P0o/1pZs2LAjwZiybwZiPZg595820OMqtYDm K4eV2k2vgr8Ku/zjqhy0vmHzXnrA7f8FHiluZEO0D5n/d0+IRzUtfiRW7M1IT9ed2g3S 7GACxXbLsl8C9j2YDow1ZRWRmfkVhsqAQdM1OtB1zo0zzczMak7iBgS27npelm4yaWZ7 sknQ== X-Gm-Message-State: AOJu0Yzm7yH+0tDGBgUQvPNyTEeMqkO3PiN09bNKxLhMX2otcgpBPVtJ tAtnrObLaORqIY8qf6vSuVKpBgpZ0J61jkaMGRKQMGHtGA6da2okYhtnaM/TUYTabg8bRuXM8yc AKhTF+gPvjXcaAmSWDk5DhQMw4+A8x9XQZ4u5yIBG/H+ULyBhg9OkzAO+ X-Gm-Gg: ASbGnctplG30G9H3xxh7Kdkn0Cxpon9/D3vwF+i5JTlkY3Fum/M40+o9LQxH3iNO5Bm jlBtipo0y5bITR2doXV3ewTreL7HuEYWL2s45fUaK6xpgYrjtoQ3zdDZ53FsIISqm/M4WToWIT9 ylZb2uCoRqjeRc2qrPuUrddWJZJfdZlLRAo5JCrgW+ol5V7WAZnghjBUhTyEqlqd12pMGF37fZC IapzmPiJbWOINrMWrXa4mFCURTlV7yIyKv4kSFhNhVfsZIUK8rrBuIWbtna91kej8BTgo7qgLfu KAr3E7BA7a+AXn9BOEApoFQwHX6TQ9k65wAtPSzgZajHdcqua7zx X-Received: by 2002:a17:903:2f8e:b0:234:9375:e081 with SMTP id d9443c01a7336-23e25767f37mr269959595ad.42.1753097380330; Mon, 21 Jul 2025 04:29:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFlkPn/gasKJQe471b5nyW5EjwcauE0hvTzQcpM+/dXrtFYrbNxS+RqT4rC8qtIX78PLrtZXQ== X-Received: by 2002:a17:903:2f8e:b0:234:9375:e081 with SMTP id d9443c01a7336-23e25767f37mr269958995ad.42.1753097379924; Mon, 21 Jul 2025 04:29:39 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:06 +0530 Subject: [PATCH v6 01/24] migration: push Error **errp into vmstate_subsection_load() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-1-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2769; i=armenon@redhat.com; h=from:subject:message-id; bh=4WErO7dMVZHGEkDnopfSuR9L68ClWeetF5ffMWP273A=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyoSTiyyubFzX+J7vgrPY9n2FjHxvZi1tOX+/xJxFj HNN0+u1HaUsDGJcDLJiiiwNXwNkmwIKIyJtX16HmcPKBDKEgYtTACbiHM7wh3+C4Fa7Pxc3SCw/ GSG1+ILVcu3/0Svapqvo9U9X+XGhehrDP/WOM72fdRtk78klWL11O+z/c+HcnRqnrsyZFeX5bmX gBmYA X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097430753116600 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 vmstate_subsection_load() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/vmstate.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/migration/vmstate.c b/migration/vmstate.c index 5feaa3244d259874f03048326b2497e7db32e47c..129b19d7603a0ddf8ab6e946e41= c1c4d773d1fa8 100644 --- a/migration/vmstate.c +++ b/migration/vmstate.c @@ -25,7 +25,7 @@ static int vmstate_subsection_save(QEMUFile *f, const VMS= tateDescription *vmsd, void *opaque, JSONWriter *vmdesc, Error **errp); static int vmstate_subsection_load(QEMUFile *f, const VMStateDescription *= vmsd, - void *opaque); + void *opaque, Error **errp); =20 /* Whether this field should exist for either save or load the VM? */ static bool @@ -225,7 +225,7 @@ int vmstate_load_state(QEMUFile *f, const VMStateDescri= ption *vmsd, field++; } assert(field->flags =3D=3D VMS_END); - ret =3D vmstate_subsection_load(f, vmsd, opaque); + ret =3D vmstate_subsection_load(f, vmsd, opaque, NULL); if (ret !=3D 0) { qemu_file_set_error(f, ret); return ret; @@ -566,7 +566,7 @@ vmstate_get_subsection(const VMStateDescription * const= *sub, } =20 static int vmstate_subsection_load(QEMUFile *f, const VMStateDescription *= vmsd, - void *opaque) + void *opaque, Error **errp) { trace_vmstate_subsection_load(vmsd->name); =20 @@ -598,6 +598,8 @@ static int vmstate_subsection_load(QEMUFile *f, const V= MStateDescription *vmsd, sub_vmsd =3D vmstate_get_subsection(vmsd->subsections, idstr); if (sub_vmsd =3D=3D NULL) { trace_vmstate_subsection_load_bad(vmsd->name, idstr, "(lookup)= "); + error_setg(errp, "VM subsection '%s' in '%s' does not exist", + idstr, vmsd->name); return -ENOENT; } qemu_file_skip(f, 1); /* subsection */ @@ -608,6 +610,8 @@ static int vmstate_subsection_load(QEMUFile *f, const V= MStateDescription *vmsd, ret =3D vmstate_load_state(f, sub_vmsd, opaque, version_id); if (ret) { trace_vmstate_subsection_load_bad(vmsd->name, idstr, "(child)"= ); + error_setg(errp, "Loading VM subsection '%s' in '%s' failed : = %d", + idstr, vmsd->name, ret); return ret; } } --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097517; cv=none; d=zohomail.com; s=zohoarc; b=ENQGgM3ejk5ufpAcJapX+55uuruxKKXz4K294ueyPXMsJSdn1Og6ZVID9Cz42fLPbgVUB+e7v93YUNjGPcnoLp/1ArFICe5/2UsUBUaD8ltXEta0yX8P7fKk/G9sxsik/lKgx/rT6KUdaS1yCqEiCWOW3Gfbq9LJtGySu5n+To4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097517; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Vv0w9CkGP2nw6HZu433doUIyOohVLJnA3g0FfFETVnI=; b=KX3DMKcKPPBfxeWf2l/n2O78yBYyNv792XkdWE50aUYCj72LYZHoaYgP67PxnRCOYkVOIiNCElw9keUlG/3vNUiFlkxqvA9+hnWJJlPUHF0IigR8z2QLD1Pq627MbCI4I4VYxRerAfeTErVZdb47gjktnK5JZdtME53DBq69VHM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097517342607.0378035605476; Mon, 21 Jul 2025 04:31:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udoiZ-0007nf-GZ; Mon, 21 Jul 2025 07:30:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoiS-0007Fl-Fy for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:29:57 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoiP-0000dS-9u for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:29:56 -0400 Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-325-UtSNGATHMmq2NSzzAMTK3A-1; Mon, 21 Jul 2025 07:29:50 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2354ba59eb6so60314775ad.1 for ; Mon, 21 Jul 2025 04:29:50 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.29.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:29:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097391; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Vv0w9CkGP2nw6HZu433doUIyOohVLJnA3g0FfFETVnI=; b=RFwi1w9mf70qM4miEJ2gwMKt3AaaGpgbL+meZHKcfLn5N6kR7RcsXG20CHy/DnqDbq6oTz B/f7zcv2fKshlK7lOJX6H1dkliE/J4x8Rxyf4jqoa058R+OaAU5fr2oknvbHV1DjoCaWfv MbC8TQVImvIJm2O2zFw8X8iX4E18KGs= X-MC-Unique: UtSNGATHMmq2NSzzAMTK3A-1 X-Mimecast-MFC-AGG-ID: UtSNGATHMmq2NSzzAMTK3A_1753097389 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097389; x=1753702189; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Vv0w9CkGP2nw6HZu433doUIyOohVLJnA3g0FfFETVnI=; b=EijY+K7vWIJSqHYB3AZQaV0v1ofrjIT0LXY37a0XO8bZEWS0OVWJKwCbPzr92jLQd/ 6NosmKaXjYFMKOcdmDqs+Ja2HdHqpnZihKvFO0xqxgOWXropHtkLnF8nQfNSOHkjDf8h +vHMD7frO8UzUMN3qm7CA/sovYpuU8C5s5Akma3zScG1QLbjg8hUwOLqi9lQKBZ7hfRB qFAdrDYJCu7kOs3eKlk5f/FW8n2eGvbIGd28y8G+bkvP2/CjdDtHMrpzDpA8VWGhwzI7 ohq9/c6jrhZJOApXv74U1CGfD6BBAnolvQSnsJNDHBxkRGKUyxzA+9PSonSWv39o27BF FZrg== X-Gm-Message-State: AOJu0YzCi6K84n+5Yc/1bP3dO6gbMRRbyY06nQCEl1Wt0KFnDpNQtcwe newiBgcx/ZadkTzhoZ5Xd93o8LXbbFxJOaqV4A0kfih23zWhKixJYqIfkQbmw9p7+3uctPv4uI9 krLGIf2kXM7/mrhRzvHwrsv5jyw7lF7T4qpuKgnRljVm5NxUNvXdirrJA X-Gm-Gg: ASbGnctgB6C1VNIIdqg1a44ZtnDIpWo+J3QHWpCqjyZzYS5/Uj7+qdeZm++Rkix2mfs 8rwxjdNbLv6YP8Rew2sj813PMQJ8gRS18HNxLaZIvL9zvqildXp2kAOIygFbZKzpHutxT24oLZx /Z3dpU++rW+dvyH/5WXiHqUyOfDOPz6Nu4CQwbFPfyorblzvclp8Ffw49BoW2P2GehArOqhgpiz oq5u3JxD7d/Icl0wXdZq4cstvNew1VuhBtNouGAS6YUpOl09NqgHZJk7pYoiTTrzBCXC9Q13Pf3 RbEuliU7J0JhPmFGIyRnCfOZzOUL+KHrnI/0t/G9w4LfKmERGSr7 X-Received: by 2002:a17:902:f551:b0:235:ef67:b595 with SMTP id d9443c01a7336-23e2573e3ccmr273132475ad.35.1753097389168; Mon, 21 Jul 2025 04:29:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFENJtILwxJf9YvrHZWVxYQ6XHIN/0eRWiCez8xxRN87KfYkmEbr+yGvMVbwBsZIsb+1+8XRg== X-Received: by 2002:a17:902:f551:b0:235:ef67:b595 with SMTP id d9443c01a7336-23e2573e3ccmr273132035ad.35.1753097388595; Mon, 21 Jul 2025 04:29:48 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:07 +0530 Subject: [PATCH v6 02/24] migration: push Error **errp into vmstate_load_state() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-2-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=20279; i=armenon@redhat.com; h=from:subject:message-id; bh=8UJMPfGRyMja7uGuP2a5dFDnIgQW9zljV+DnCV0RZC4=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyoRezstiujurXT03sWqaCv9hWv9BYrE+z5TjfKf5P 1xqm7eso5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwEQOH2f4p9Aovn5Bz8mHx+1K vlSdvrZkxpzTc/MVrb4+6O0TV4vaUsHwz9jCTJN3Ru5XR/2XbBWOya+Zc+vbVgTkhl1If/RxU1I lBwA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097517983116600 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 vmstate_load_state() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- hw/display/virtio-gpu.c | 2 +- hw/pci/pci.c | 2 +- hw/s390x/virtio-ccw.c | 2 +- hw/scsi/spapr_vscsi.c | 2 +- hw/vfio/pci.c | 2 +- hw/virtio/virtio-mmio.c | 2 +- hw/virtio/virtio-pci.c | 2 +- hw/virtio/virtio.c | 4 ++-- include/migration/vmstate.h | 2 +- migration/cpr.c | 4 ++-- migration/savevm.c | 6 ++++-- migration/vmstate-types.c | 10 +++++----- migration/vmstate.c | 45 ++++++++++++++++++++++++++++-------------= ---- tests/unit/test-vmstate.c | 18 +++++++++--------- ui/vdagent.c | 2 +- 15 files changed, 59 insertions(+), 46 deletions(-) diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index 0a1a625b0ea6cf26cb0d799171a57ed3d3ab2442..5d2ca8d8b864350133a674802d7= 316abd379591c 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -1343,7 +1343,7 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque,= size_t size, } =20 /* load & apply scanout state */ - vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, 1); + vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, 1, NULL); =20 return 0; } diff --git a/hw/pci/pci.c b/hw/pci/pci.c index c70b5ceebaf1f2b10768bd030526cbb518da2b8d..2ab5d30bb3c319ac1c7bfc9a2ac= f6a2b38082066 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -934,7 +934,7 @@ void pci_device_save(PCIDevice *s, QEMUFile *f) int pci_device_load(PCIDevice *s, QEMUFile *f) { int ret; - ret =3D vmstate_load_state(f, &vmstate_pci_device, s, s->version_id); + ret =3D vmstate_load_state(f, &vmstate_pci_device, s, s->version_id, N= ULL); /* Restore the interrupt status bit. */ pci_update_irq_status(s); return ret; diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index d2f85b39f30f7fc82e0c600144c0a958e1269b2c..2f6feff2b0a22d7d7f6aecfd7e7= 870d8362f1a73 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -1136,7 +1136,7 @@ static void virtio_ccw_save_config(DeviceState *d, QE= MUFile *f) static int virtio_ccw_load_config(DeviceState *d, QEMUFile *f) { VirtioCcwDevice *dev =3D VIRTIO_CCW_DEVICE(d); - return vmstate_load_state(f, &vmstate_virtio_ccw_dev, dev, 1); + return vmstate_load_state(f, &vmstate_virtio_ccw_dev, dev, 1, NULL); } =20 static void virtio_ccw_pre_plugged(DeviceState *d, Error **errp) diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index 20f70fb2729de78b9636a6b8c869695dab4f8902..573fdea668536b464bca11f001e= 9e0288e781493 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -648,7 +648,7 @@ static void *vscsi_load_request(QEMUFile *f, SCSIReques= t *sreq) assert(!req->active); =20 memset(req, 0, sizeof(*req)); - rc =3D vmstate_load_state(f, &vmstate_spapr_vscsi_req, req, 1); + rc =3D vmstate_load_state(f, &vmstate_spapr_vscsi_req, req, 1, NULL); if (rc) { fprintf(stderr, "VSCSI: failed loading request tag#%u\n", sreq->ta= g); return NULL; diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index be05002b9819fafa45cf2fb4d2a0acdc475c558c..f8ce4a40dbe4c070a0d6c111051= 051ee97542719 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -2797,7 +2797,7 @@ static int vfio_pci_load_config(VFIODevice *vbasedev,= QEMUFile *f) old_addr[bar] =3D pdev->io_regions[bar].addr; } =20 - ret =3D vmstate_load_state(f, &vmstate_vfio_pci_config, vdev, 1); + ret =3D vmstate_load_state(f, &vmstate_vfio_pci_config, vdev, 1, NULL); if (ret) { return ret; } diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c index 532c67107ba1d2978a76cf49f9cdc1de1dea3e11..9058b1563462d4464dcba799643= a583c93fb5683 100644 --- a/hw/virtio/virtio-mmio.c +++ b/hw/virtio/virtio-mmio.c @@ -619,7 +619,7 @@ static int virtio_mmio_load_extra_state(DeviceState *op= aque, QEMUFile *f) { VirtIOMMIOProxy *proxy =3D VIRTIO_MMIO(opaque); =20 - return vmstate_load_state(f, &vmstate_virtio_mmio, proxy, 1); + return vmstate_load_state(f, &vmstate_virtio_mmio, proxy, 1, NULL); } =20 static bool virtio_mmio_has_extra_state(DeviceState *opaque) diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index 767216d795998708f5716a23ae16c79cd90ff489..f8b52a611e56c22d844fd4cae36= 19da4f2686d03 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -161,7 +161,7 @@ static int virtio_pci_load_extra_state(DeviceState *d, = QEMUFile *f) { VirtIOPCIProxy *proxy =3D to_virtio_pci_proxy(d); =20 - return vmstate_load_state(f, &vmstate_virtio_pci, proxy, 1); + return vmstate_load_state(f, &vmstate_virtio_pci, proxy, 1, NULL); } =20 static void virtio_pci_save_queue(DeviceState *d, int n, QEMUFile *f) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 2ab1d20769495ea39445b87e3673b076ad172510..d5698b062a1e95437f6113f4113= 6e90ae06f1974 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -3317,14 +3317,14 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int ve= rsion_id) } =20 if (vdc->vmsd) { - ret =3D vmstate_load_state(f, vdc->vmsd, vdev, version_id); + ret =3D vmstate_load_state(f, vdc->vmsd, vdev, version_id, NULL); if (ret) { return ret; } } =20 /* Subsections */ - ret =3D vmstate_load_state(f, &vmstate_virtio, vdev, 1); + ret =3D vmstate_load_state(f, &vmstate_virtio, vdev, 1, NULL); if (ret) { return ret; } diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 1ff7bd9ac425ba67cd5ca7ad97bcf570f9e19abe..056781b1c21e737583f081594d9= f88b32adfd674 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -1196,7 +1196,7 @@ extern const VMStateInfo vmstate_info_qlist; } =20 int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, - void *opaque, int version_id); + void *opaque, int version_id, Error **errp); int vmstate_save_state(QEMUFile *f, const VMStateDescription *vmsd, void *opaque, JSONWriter *vmdesc); int vmstate_save_state_with_err(QEMUFile *f, const VMStateDescription *vms= d, diff --git a/migration/cpr.c b/migration/cpr.c index 42ad0b0d500e5de57faf0c6517e216b2d1c0cacf..74fac9521717ec568d14dabcbcb= 574b19fc1da67 100644 --- a/migration/cpr.c +++ b/migration/cpr.c @@ -233,9 +233,9 @@ int cpr_state_load(MigrationChannel *channel, Error **e= rrp) return -ENOTSUP; } =20 - ret =3D vmstate_load_state(f, &vmstate_cpr_state, &cpr_state, 1); + ret =3D vmstate_load_state(f, &vmstate_cpr_state, &cpr_state, 1, errp); if (ret) { - error_setg(errp, "vmstate_load_state error %d", ret); + error_prepend(errp, "vmstate_load_state error %d ", ret); qemu_fclose(f); return ret; } diff --git a/migration/savevm.c b/migration/savevm.c index fabbeb296ae987d0c06ba6dafda63720205fecfd..ab947620f724874f325fb9fb59b= ef50b7c16fb51 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -969,7 +969,8 @@ static int vmstate_load(QEMUFile *f, SaveStateEntry *se) if (!se->vmsd) { /* Old style */ return se->ops->load_state(f, se->opaque, se->load_version_id); } - return vmstate_load_state(f, se->vmsd, se->opaque, se->load_version_id= ); + return vmstate_load_state(f, se->vmsd, se->opaque, se->load_version_id, + NULL); } =20 static void vmstate_save_old_style(QEMUFile *f, SaveStateEntry *se, @@ -2839,7 +2840,8 @@ static int qemu_loadvm_state_header(QEMUFile *f) error_report("Configuration section missing"); return -EINVAL; } - ret =3D vmstate_load_state(f, &vmstate_configuration, &savevm_stat= e, 0); + ret =3D vmstate_load_state(f, &vmstate_configuration, &savevm_stat= e, 0, + NULL); =20 if (ret) { return ret; diff --git a/migration/vmstate-types.c b/migration/vmstate-types.c index 741a588b7e18c6d37724b08a0101edc8bc74a0a5..1c5b76e1dd198030847971bc356= 37867c9d54fc0 100644 --- a/migration/vmstate-types.c +++ b/migration/vmstate-types.c @@ -549,7 +549,7 @@ static int get_tmp(QEMUFile *f, void *pv, size_t size, =20 /* Writes the parent field which is at the start of the tmp */ *(void **)tmp =3D pv; - ret =3D vmstate_load_state(f, vmsd, tmp, version_id); + ret =3D vmstate_load_state(f, vmsd, tmp, version_id, NULL); g_free(tmp); return ret; } @@ -649,7 +649,7 @@ static int get_qtailq(QEMUFile *f, void *pv, size_t unu= sed_size, =20 while (qemu_get_byte(f)) { elm =3D g_malloc(size); - ret =3D vmstate_load_state(f, vmsd, elm, version_id); + ret =3D vmstate_load_state(f, vmsd, elm, version_id, NULL); if (ret) { return ret; } @@ -803,7 +803,7 @@ static int get_gtree(QEMUFile *f, void *pv, size_t unus= ed_size, key =3D (void *)(uintptr_t)qemu_get_be64(f); } else { key =3D g_malloc0(key_size); - ret =3D vmstate_load_state(f, key_vmsd, key, version_id); + ret =3D vmstate_load_state(f, key_vmsd, key, version_id, NULL); if (ret) { error_report("%s : failed to load %s (%d)", field->name, key_vmsd->name, ret); @@ -811,7 +811,7 @@ static int get_gtree(QEMUFile *f, void *pv, size_t unus= ed_size, } } val =3D g_malloc0(val_size); - ret =3D vmstate_load_state(f, val_vmsd, val, version_id); + ret =3D vmstate_load_state(f, val_vmsd, val, version_id, NULL); if (ret) { error_report("%s : failed to load %s (%d)", field->name, val_vmsd->name, ret); @@ -892,7 +892,7 @@ static int get_qlist(QEMUFile *f, void *pv, size_t unus= ed_size, =20 while (qemu_get_byte(f)) { elm =3D g_malloc(size); - ret =3D vmstate_load_state(f, vmsd, elm, version_id); + ret =3D vmstate_load_state(f, vmsd, elm, version_id, NULL); if (ret) { error_report("%s: failed to load %s (%d)", field->name, vmsd->name, ret); diff --git a/migration/vmstate.c b/migration/vmstate.c index 129b19d7603a0ddf8ab6e946e41c1c4d773d1fa8..288b57e1ed778cce21247b64d5e= 97dfef41ad586 100644 --- a/migration/vmstate.c +++ b/migration/vmstate.c @@ -132,29 +132,33 @@ static void vmstate_handle_alloc(void *ptr, const VMS= tateField *field, } =20 int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, - void *opaque, int version_id) + void *opaque, int version_id, Error **errp) { const VMStateField *field =3D vmsd->fields; int ret =3D 0; =20 trace_vmstate_load_state(vmsd->name, version_id); if (version_id > vmsd->version_id) { - error_report("%s: incoming version_id %d is too new " - "for local version_id %d", - vmsd->name, version_id, vmsd->version_id); + error_setg(errp, "%s: incoming version_id %d is too new " + "for local version_id %d", + vmsd->name, version_id, vmsd->version_id); trace_vmstate_load_state_end(vmsd->name, "too new", -EINVAL); return -EINVAL; } if (version_id < vmsd->minimum_version_id) { - error_report("%s: incoming version_id %d is too old " - "for local minimum version_id %d", - vmsd->name, version_id, vmsd->minimum_version_id); + error_setg(errp, "%s: incoming version_id %d is too old " + "for local minimum version_id %d", + vmsd->name, version_id, vmsd->minimum_version_id); trace_vmstate_load_state_end(vmsd->name, "too old", -EINVAL); return -EINVAL; } if (vmsd->pre_load) { ret =3D vmsd->pre_load(opaque); if (ret) { + error_setg(errp, "VM pre load failed for: '%s', " + "version_id: '%d', minimum version_id: '%d', ret: %= d", + vmsd->name, vmsd->version_id, vmsd->minimum_version= _id, + ret); return ret; } } @@ -192,10 +196,12 @@ int vmstate_load_state(QEMUFile *f, const VMStateDesc= ription *vmsd, =20 if (inner_field->flags & VMS_STRUCT) { ret =3D vmstate_load_state(f, inner_field->vmsd, curr_= elem, - inner_field->vmsd->version_id= ); + inner_field->vmsd->version_id, + errp); } else if (inner_field->flags & VMS_VSTRUCT) { ret =3D vmstate_load_state(f, inner_field->vmsd, curr_= elem, - inner_field->struct_version_i= d); + inner_field->struct_version_i= d, + errp); } else { ret =3D inner_field->info->get(f, curr_elem, size, inner_field); @@ -211,27 +217,32 @@ int vmstate_load_state(QEMUFile *f, const VMStateDesc= ription *vmsd, } if (ret < 0) { qemu_file_set_error(f, ret); - error_report("Failed to load %s:%s", vmsd->name, - field->name); + error_prepend(errp, "Failed to load %s:%s version_id: = %d ", + vmsd->name, field->name, vmsd->version_i= d); trace_vmstate_load_field_error(field->name, ret); return ret; } } } else if (field->flags & VMS_MUST_EXIST) { - error_report("Input validation failed: %s/%s", - vmsd->name, field->name); + error_setg(errp, "Input validation failed: %s/%s version_id: %= d", + vmsd->name, field->name, vmsd->version_id); return -1; } field++; } assert(field->flags =3D=3D VMS_END); - ret =3D vmstate_subsection_load(f, vmsd, opaque, NULL); + ret =3D vmstate_subsection_load(f, vmsd, opaque, errp); if (ret !=3D 0) { qemu_file_set_error(f, ret); return ret; } if (vmsd->post_load) { ret =3D vmsd->post_load(opaque, version_id); + if (ret < 0) { + error_setg(errp, "VM Post load failed for: %s, version_id: %d," + "minimum_version: %d, ret: %d", vmsd->name, + vmsd->version_id, vmsd->minimum_version_id, ret); + } } trace_vmstate_load_state_end(vmsd->name, "end", ret); return ret; @@ -607,11 +618,11 @@ static int vmstate_subsection_load(QEMUFile *f, const= VMStateDescription *vmsd, qemu_file_skip(f, len); /* idstr */ version_id =3D qemu_get_be32(f); =20 - ret =3D vmstate_load_state(f, sub_vmsd, opaque, version_id); + ret =3D vmstate_load_state(f, sub_vmsd, opaque, version_id, errp); if (ret) { trace_vmstate_subsection_load_bad(vmsd->name, idstr, "(child)"= ); - error_setg(errp, "Loading VM subsection '%s' in '%s' failed : = %d", - idstr, vmsd->name, ret); + error_prepend(errp, "Loading VM subsection '%s'" + "in '%s' failed : %d ", idstr, vmsd->name, ret); return ret; } } diff --git a/tests/unit/test-vmstate.c b/tests/unit/test-vmstate.c index 63f28f26f45691a70936d33e7341d16477a3471f..ca5e0ba1e3e5e2bb0a1ce39143a= 292f2c6f9420a 100644 --- a/tests/unit/test-vmstate.c +++ b/tests/unit/test-vmstate.c @@ -114,7 +114,7 @@ static int load_vmstate_one(const VMStateDescription *d= esc, void *obj, qemu_fclose(f); =20 f =3D open_test_file(false); - ret =3D vmstate_load_state(f, desc, obj, version); + ret =3D vmstate_load_state(f, desc, obj, version, NULL); if (ret) { g_assert(qemu_file_get_error(f)); } else{ @@ -365,7 +365,7 @@ static void test_load_v1(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj =3D { .b =3D 200, .e =3D 500, .f =3D 600 }; - vmstate_load_state(loading, &vmstate_versioned, &obj, 1); + vmstate_load_state(loading, &vmstate_versioned, &obj, 1, NULL); g_assert(!qemu_file_get_error(loading)); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 200); @@ -391,7 +391,7 @@ static void test_load_v2(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj; - vmstate_load_state(loading, &vmstate_versioned, &obj, 2); + vmstate_load_state(loading, &vmstate_versioned, &obj, 2, NULL); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 20); g_assert_cmpint(obj.c, =3D=3D, 30); @@ -480,7 +480,7 @@ static void test_load_noskip(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj =3D { .skip_c_e =3D false }; - vmstate_load_state(loading, &vmstate_skipping, &obj, 2); + vmstate_load_state(loading, &vmstate_skipping, &obj, 2, NULL); g_assert(!qemu_file_get_error(loading)); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 20); @@ -504,7 +504,7 @@ static void test_load_skip(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj =3D { .skip_c_e =3D true, .c =3D 300, .e =3D 500 }; - vmstate_load_state(loading, &vmstate_skipping, &obj, 2); + vmstate_load_state(loading, &vmstate_skipping, &obj, 2, NULL); g_assert(!qemu_file_get_error(loading)); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 20); @@ -773,7 +773,7 @@ static void test_load_q(void) TestQtailq tgt; =20 QTAILQ_INIT(&tgt.q); - vmstate_load_state(fload, &vmstate_q, &tgt, 1); + vmstate_load_state(fload, &vmstate_q, &tgt, 1, NULL); char eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(tgt.i16, =3D=3D, obj_q.i16); @@ -1127,7 +1127,7 @@ static void test_gtree_load_domain(void) =20 fload =3D open_test_file(false); =20 - vmstate_load_state(fload, &vmstate_domain, dest_domain, 1); + vmstate_load_state(fload, &vmstate_domain, dest_domain, 1, NULL); eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(orig_domain->id, =3D=3D, dest_domain->id); @@ -1241,7 +1241,7 @@ static void test_gtree_load_iommu(void) qemu_fclose(fsave); =20 fload =3D open_test_file(false); - vmstate_load_state(fload, &vmstate_iommu, dest_iommu, 1); + vmstate_load_state(fload, &vmstate_iommu, dest_iommu, 1, NULL); eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(orig_iommu->id, =3D=3D, dest_iommu->id); @@ -1376,7 +1376,7 @@ static void test_load_qlist(void) qemu_fclose(fsave); =20 fload =3D open_test_file(false); - vmstate_load_state(fload, &vmstate_container, dest_container, 1); + vmstate_load_state(fload, &vmstate_container, dest_container, 1, NULL); eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(eof, =3D=3D, QEMU_VM_EOF); diff --git a/ui/vdagent.c b/ui/vdagent.c index c0746fe5b168fdc7aeb4866de2ba0c3387566649..83457dee0767433ad0778b37b41= b9c673a0e1860 100644 --- a/ui/vdagent.c +++ b/ui/vdagent.c @@ -1008,7 +1008,7 @@ static int get_cbinfo(QEMUFile *f, void *pv, size_t s= ize, =20 vdagent_clipboard_peer_register(vd); =20 - ret =3D vmstate_load_state(f, &vmstate_cbinfo_array, &cbinfo, 0); + ret =3D vmstate_load_state(f, &vmstate_cbinfo_array, &cbinfo, 0, NULL); if (ret) { return ret; } --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097472; cv=none; d=zohomail.com; s=zohoarc; b=TFjBXuc3gBd0S9Mx8yZUybgJ0xe8TUUXcJgJRgPkloKt7mr5gT79fC0taOlSKPNYmUtwzvvJMW72veUey++h0mnC15SVzNeP0AkAhyUUdhBXU2XpPhGBb2YgDt8oqaMsdKwJ/0jjhjKL1+6au8y16IN4ga0O+bIdm9/gbjhUDUQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097472; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4+lcJjDO9msn7OGfgf0nE2HSuwgXK/hFIqqBLICsj1s=; b=McQdiUGME1Vbw6tYR4GG6uioi+6/g1MLcGtYm8rM069Ofsa7nhxAiHzCclJJK9pndh4KqGUXYEQeLlGJ3g9y+zJ3JZ/zXR3ZsMcksihAmTL7TAXjvBRMQyD4EPFpNPU6lKm9U1PuKVosr8pw1zCfstNzSsLfDKrxbNuoXjbsz98= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097472959645.5240074177465; Mon, 21 Jul 2025 04:31:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udoim-0008A3-78; Mon, 21 Jul 2025 07:30:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoiZ-0007sS-Oc for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:03 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoiX-0000f4-Jb for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:03 -0400 Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-77-oOkwqQ2vOK-n_i24M-XLAw-1; Mon, 21 Jul 2025 07:29:59 -0400 Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b31c38d4063so2967213a12.3 for ; Mon, 21 Jul 2025 04:29:59 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.29.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:29:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4+lcJjDO9msn7OGfgf0nE2HSuwgXK/hFIqqBLICsj1s=; b=LpPezCOLAlojrPIgrt1oYr9M596SQYKiqckuS7e9ujeTPlxN0dyipCFeeUL2Kcof2vqIfu DvMzzSW+UIq8TIsxh8i64rcuyaIAlXVpYyc/fihy3C0MmwKF58Zzg9l8gu1EO8mbu8b5rb G715n60shGARv7xvpVl1QxwOQUbf29c= X-MC-Unique: oOkwqQ2vOK-n_i24M-XLAw-1 X-Mimecast-MFC-AGG-ID: oOkwqQ2vOK-n_i24M-XLAw_1753097398 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097398; x=1753702198; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4+lcJjDO9msn7OGfgf0nE2HSuwgXK/hFIqqBLICsj1s=; b=JfzWRzXwUhT4SoIwyhsEIYMSdUGNl9Zr6wSVR3UJtdeu/hqYPXA4SpVO7LWKNvaI7X n4G+Qsvu6ypkz1OoYwEWChpqo8AJHRYIEdWehK3n9wdCo/5yZTdPuAW5V8TxXz+PDTOT by7bpRSNTf0E8cgY+1KTcoK/R2Qrpd8JdSBtMsMtEy/doB6gVjwmhioDhfh9oUDL+oUl RwvRUhcsmSx7cO0yvILmROshnWXqMNkn0W9Lii8g7NmMWpN7zrLjbFwDP548HOPFQ/nl elw/hseTEU6cg3sVn/nDZK+3lyXYbb44c0eVw2oklpGLmjJAzbO/ARmct/Vezwm6XfLA g2pg== X-Gm-Message-State: AOJu0YwlRs9ZTugvehz+ifg/r847fQtyj8OGpkkUvYzbVjQQdUMFzWgd Usb6BuI//nKColfRo5Wy3X3mtiBUckkg8kvJpcTvzpnbTv0K9q+oGhM+eZicRoQC3NZBFOXf+bI jWhVE8Mt53F351NuT8yoNtYjtbEd42HmFNb5br0K2GiqRNXQHoEA0mYfj X-Gm-Gg: ASbGncsDun0V/B7f7h1rvMMx3R46M49nzZGXYO02vPDDiD2iy7Jp3r1wLgHbULwM1io fvIAirUJlFGlrhkZ/epwA2IHKmxnBYs197c2v95iXbiC8ksA8+Qh61scrELiti5dcgGOuO3B8Mx s/OJSIcJDLmd/t9tkxQSMfnc7KU3sF9naGnIaqkHJ7hwxEGAII1m4mlu12CWbbv/Cc7mBDpF+sa oBUotCM2igznjUnJVarIHoNth7OfGNns8V3+HEVKx85L7FWYnRkxcFA7DR+lmZLamiBIR3XCcxq 4TiQKcKRWIhfp5ZgtRIQRgmmkf1LBVykXTTuhLx6kpmp/L8+Nenx X-Received: by 2002:a17:903:188:b0:234:b735:dca8 with SMTP id d9443c01a7336-23e2566b042mr227297385ad.6.1753097398039; Mon, 21 Jul 2025 04:29:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGGgfFyhjcz+vsVGVzRMhlMpEICZclsfezsstQc+KLl4kbWav0E2ISs8FsNPKr8Xga9tOCiQg== X-Received: by 2002:a17:903:188:b0:234:b735:dca8 with SMTP id d9443c01a7336-23e2566b042mr227296945ad.6.1753097397586; Mon, 21 Jul 2025 04:29:57 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:08 +0530 Subject: [PATCH v6 03/24] migration: push Error **errp into qemu_loadvm_state_header() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-3-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2786; i=armenon@redhat.com; h=from:subject:message-id; bh=xco8shlK3y+9TUJ2IyDda8HXvkUfgV51Igdn0k6q+YE=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adysRmzuc6H4/HnlBtb5rOFlC+b9Kq+RtY43+E30hlN r9evFC2o5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwERaXjP8r2RrlLO1SdvL2+iZ L/dE6Nb2f0U31Vq72w0jV+SVJvlfZGQ47FRwtezMrF9RZnqznZM3bKiZa3E78Wnk//wr7y3/rNR kBgA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097475450116600 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_state_header() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/savevm.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index ab947620f724874f325fb9fb59bef50b7c16fb51..162fb05933fae5993eeef107811= f97cb08726ac3 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2814,35 +2814,42 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t t= ype) return 0; } =20 -static int qemu_loadvm_state_header(QEMUFile *f) +static int qemu_loadvm_state_header(QEMUFile *f, Error **errp) { unsigned int v; int ret; =20 v =3D qemu_get_be32(f); if (v !=3D QEMU_VM_FILE_MAGIC) { - error_report("Not a migration stream"); + error_setg(errp, "Not a migration stream, " + "magic: %x !=3D %x", v, QEMU_VM_FILE_MAGIC); return -EINVAL; } =20 v =3D qemu_get_be32(f); if (v =3D=3D QEMU_VM_FILE_VERSION_COMPAT) { - error_report("SaveVM v2 format is obsolete and don't work anymore"= ); + error_setg(errp, "SaveVM v2 format is obsolete and no" + "longer supported, file version %x !=3D %x", + v, QEMU_VM_FILE_VERSION_COMPAT); + return -ENOTSUP; } if (v !=3D QEMU_VM_FILE_VERSION) { - error_report("Unsupported migration stream version"); + error_setg(errp, "Unsupported migration stream " + "version, file version %x !=3D %x", v, QEMU_VM_FILE_VER= SION); return -ENOTSUP; } =20 if (migrate_get_current()->send_configuration) { - if (qemu_get_byte(f) !=3D QEMU_VM_CONFIGURATION) { - error_report("Configuration section missing"); + v =3D qemu_get_byte(f); + if (v !=3D QEMU_VM_CONFIGURATION) { + error_setg(errp, "Configuration section missing," + "%x !=3D %x", v, QEMU_VM_CONFIGURATION); return -EINVAL; } - ret =3D vmstate_load_state(f, &vmstate_configuration, &savevm_stat= e, 0, - NULL); =20 + ret =3D vmstate_load_state(f, &vmstate_configuration, &savevm_stat= e, 0, + errp); if (ret) { return ret; } @@ -3119,7 +3126,7 @@ int qemu_loadvm_state(QEMUFile *f) =20 qemu_loadvm_thread_pool_create(mis); =20 - ret =3D qemu_loadvm_state_header(f); + ret =3D qemu_loadvm_state_header(f, NULL); if (ret) { return ret; } --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097601; cv=none; d=zohomail.com; s=zohoarc; b=hxQtJdi1+DzPS9+GsINDj/gp/k8nCjZy8CsA8KMmrd5gkMPk4f4cn6CpFXGqm7FigkiPeFsFd7w+7Pd+evs42lk3Vmfn5gOhowqGciyCAPuAHFnpNEbTYU9hyP7N6A043YD0u7+ItsXe7PVBw92URrwapxz+uGOFW/jLEsS70/s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097601; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=erPSngrV+xtbEZfOSah76RZLYMZWqq7amM76/7QMxPc=; b=kBGVsroIcq0/6+FNcE2Gf9MKuuAzEpzkleof/+bAUQfq8HTiClMTOYeE1kYl8C5TBS/RqVKmPmJxG67OF+XZdJzd5ttBdiqdUZ/j2IcWp/MEfH/ijj/L4S72g7kvQ8fqjfr4y8+2OSlqFXtORXjMdpJh3++WmL7H6rfiGNF/1J8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097601637340.4604198279824; Mon, 21 Jul 2025 04:33:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udojG-0000iM-DE; Mon, 21 Jul 2025 07:30:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoij-00089T-0n for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:14 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoig-0000pw-C0 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:12 -0400 Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-226-4aqNTfwQPbuOHQK3zQ5w1A-1; Mon, 21 Jul 2025 07:30:08 -0400 Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2349fe994a9so34084065ad.1 for ; Mon, 21 Jul 2025 04:30:07 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.29.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:30:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097409; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=erPSngrV+xtbEZfOSah76RZLYMZWqq7amM76/7QMxPc=; b=MwdxL2fygvKsh2PenZU8x6CXDVq1quVnlG36+VCHiBFaTlr8Z4CEKuVj85vSV25E0CP8DC WvtZp1NwDUyKSWJ013vG1jkJ+r0AqtOhWGYE1RrVsY8dw9sX1bCPCtCg7WehXT1JeDIsw7 fg98XpLDJVUZedhH8QvRzOFJBqUOlkk= X-MC-Unique: 4aqNTfwQPbuOHQK3zQ5w1A-1 X-Mimecast-MFC-AGG-ID: 4aqNTfwQPbuOHQK3zQ5w1A_1753097407 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097407; x=1753702207; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=erPSngrV+xtbEZfOSah76RZLYMZWqq7amM76/7QMxPc=; b=glbWZHS48F+9AEo0DcOKWn2/eMEMUQEDspaY4B1GSO7lCSvJC8wnEUBfCc+DjTqET6 Ig8Oc/KtMAyrOYB8mdtXnzlJ80blrdjbZC1o6hqYBAdEBv0ho/Lv7InEbwz1fbjMEyX4 8eNGLSjl+i4Sc9Fe0oU+RQQaxPEnCZgkKUHma7EYlUsYCwswnDCEV57V8F5YVZKeE985 NW6K1khFCHhDdj2q4eGzcfRI77wWg7/KBpAFxPBudzMMLPJD3tLcnPLsLUSOG0jxM1DI DQU3Lmg6huO2lKdp3sX4X/ukqwKhydjDn4Yd1v9QF7DCWQQY2bu9eJnaJLQzY64FcLe3 SIvg== X-Gm-Message-State: AOJu0YzrfwCNhRqCMtTyCRYvaWUEPaVbx7/RWMRWYbb+9zcBWC8gpEAF Ejfaw6H9yPI3qg8CQfT1lUgCZ7EE+WR5FN6UM1vp8+omaO+xc1SCQYI6MS49BPm+uhTR7dGAGAp gq6hAWMwXnWVNeQqF1MvJg6KumRZM60AN0gU8odmFkwG/wUcdhuzbdsdVWqJDOrk3D7Q= X-Gm-Gg: ASbGncu35OXLFVByLt5x7QWXQsadj/0ORd3ILxdINine8G7L/hsFYHSqwgs4SwRWuC8 I6AUlsvlhsL+Pfj9rrA3f3SH+c1Apv0SWReRPxie5zoEMFWzQRhUmp4SLDmNzwmpsVbFeq9Q1mG DXZLmpVrtzCxeA0JjeGCh312JVE4nzq7nZPQj8Mek4j3drbiC70/3M6OJA7szFFQZE34LsocQbK 4uHN7KOsDrdpePiYlqS2RW6NyHNy5YgaLPGfvAWTQQwtvrCtzUhuWs/TEzAavM2ZFt8gmVcIYLa LRd00tnreDrZKHwAr1Sv5scu22+OPCJbu0PXbd84ixiQN7A8tzMx X-Received: by 2002:a17:903:2f8e:b0:236:9d66:ff24 with SMTP id d9443c01a7336-23e25686c7bmr283731225ad.8.1753097406682; Mon, 21 Jul 2025 04:30:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IELRnmwjQwofZJ4CILwDpzoT5g//UOuvLo0NpF8BlyOfbgtBbBg0qVuDuJhPm3lWOt6k2PhVA== X-Received: by 2002:a17:903:2f8e:b0:236:9d66:ff24 with SMTP id d9443c01a7336-23e25686c7bmr283730525ad.8.1753097406196; Mon, 21 Jul 2025 04:30:06 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:09 +0530 Subject: [PATCH v6 04/24] migration: push Error **errp into vmstate_load() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-4-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2320; i=armenon@redhat.com; h=from:subject:message-id; bh=27HRfn83Fmg1nqxsGO+BhMcsqEtkZnO4tA3f19HmYOA=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adykSNJ2tm/Qu3y2tVTgzu3hHbmBTZfLOsLq24ucbw3 4qZy6U6SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATETflZFh7h+f96saFz17/fyo 7ldnloc6wf2zEr97uPqJVyhXbxbNZGR4eJNt8amVGX7Kn0s2XVweflHa/OI0OYu/xUFphxwOMgt yAwA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097602800116600 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 vmstate_load() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/savevm.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 162fb05933fae5993eeef107811f97cb08726ac3..5fe896545a5407393b1bc5126ee= 977f11b1fc626 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -963,14 +963,20 @@ void vmstate_unregister(VMStateIf *obj, const VMState= Description *vmsd, } } =20 -static int vmstate_load(QEMUFile *f, SaveStateEntry *se) +static int vmstate_load(QEMUFile *f, SaveStateEntry *se, Error **errp) { + int ret; trace_vmstate_load(se->idstr, se->vmsd ? se->vmsd->name : "(old)"); if (!se->vmsd) { /* Old style */ - return se->ops->load_state(f, se->opaque, se->load_version_id); + ret =3D se->ops->load_state(f, se->opaque, se->load_version_id); + if (ret < 0) { + error_setg(errp, "Failed to load version_id: '%d' of VM, " + "ret: '%d'", se->load_version_id, ret); + } + return ret; } return vmstate_load_state(f, se->vmsd, se->opaque, se->load_version_id, - NULL); + errp); } =20 static void vmstate_save_old_style(QEMUFile *f, SaveStateEntry *se, @@ -2741,7 +2747,7 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t t= ype) start_ts =3D qemu_clock_get_us(QEMU_CLOCK_REALTIME); } =20 - ret =3D vmstate_load(f, se); + ret =3D vmstate_load(f, se, NULL); if (ret < 0) { error_report("error while loading state for instance 0x%"PRIx32" o= f" " device '%s'", instance_id, idstr); @@ -2794,7 +2800,7 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t typ= e) start_ts =3D qemu_clock_get_us(QEMU_CLOCK_REALTIME); } =20 - ret =3D vmstate_load(f, se); + ret =3D vmstate_load(f, se, NULL); if (ret < 0) { error_report("error while loading state section id %d(%s)", section_id, se->idstr); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097590; cv=none; d=zohomail.com; s=zohoarc; b=mYODdxM3iyZgInefUMUiyiTY7ijCi7NjQ2Q1HT8O5XFnuHcXuN9sDdtDGnBHpFT+4/0VkB1nuWMgnR4vzovbEE5uh4QkrN1bVpMdct/09MzjpqemWyueu3bYqRmr0jPuUkFe2Jx9/ptErIg/rY2gEk2PP0ws5C9qV0g7jPkHD+E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097590; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=saH+YViY3d6QaMKDQ8yljLjqT2FlFiAeOvlbv5ESJL4=; b=fk/5wOIIOLsY1m0hdxz88MWIHz0uAvrUnmdtuZUCdgBTQBSzZkAx36nNwhmVXs8dkHwsJ0SRC2vU/CKUTcsuOHmucR8nP/gK6RnZrq2puwzvkASM9Ex8k8YYGO0V7HpVxudfBCnw307ul+cQsIeXTqQdTqV0LAayFWdN01YVHqg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097590287342.94313925125687; Mon, 21 Jul 2025 04:33:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udojG-0000kz-Nk; Mon, 21 Jul 2025 07:30:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udois-0008Pb-9P for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:22 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoio-0000tm-EY for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:20 -0400 Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-530-ibVOmcOFOpyIMk7dNUEMEw-1; Mon, 21 Jul 2025 07:30:16 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-235e1d66fa6so33056225ad.0 for ; Mon, 21 Jul 2025 04:30:16 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.30.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:30:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=saH+YViY3d6QaMKDQ8yljLjqT2FlFiAeOvlbv5ESJL4=; b=GgNMwkUdLClbUUmzMzImFAvIuK3N6CHdLQG1+i2VpxQ49kq2hMwC2xwFHBCvIXJi8JROgx zcN4iM5kMgXnGt/q2PHIUTVl2JlPbI/rJ/C+nggZBEiwnWPsdNB7wbwX0HtjKJDeptFGjj zzvkqCF1DhdD2D1jdpz+Dvw254Cjy8s= X-MC-Unique: ibVOmcOFOpyIMk7dNUEMEw-1 X-Mimecast-MFC-AGG-ID: ibVOmcOFOpyIMk7dNUEMEw_1753097415 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097415; x=1753702215; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=saH+YViY3d6QaMKDQ8yljLjqT2FlFiAeOvlbv5ESJL4=; b=GUgzWgE5oTjePKN0TioSXKM1/n+jIvh2J/9kN+Q9KKKiGYsWfH6JL45myYKLTEjrYq C9XylAbm90hFTQfUZY8cY3j40yJZbrq8lYxxySjLqgGDIiyezImHJ36Ytt6tZTGApMMa 4yqyIfKcCcF99plaglypBAZ1X+Q+H/hDM+HwY5YIQxipN/9SObDsDf1mJIYcbVhGhXb1 VPwHNTXMymSp5DN4mqtSTATHf+5WPTPCnnY0poON3KnabI7dfNHO7VgaFoq9HZp34iAE g9ur2LHqvp/p4cDvEvOwAipY97cDqTJpHJfREyo8H/MPZknUKRhJ+Q49s0t0XTu8wmGc KL9Q== X-Gm-Message-State: AOJu0Yyf1n31kVioIiB4MeF66/tQJOI43HD0MDdcsK67nud07TOhh6Os U11vPdtK5bn0mpILPd1+m2HjBAEyPraI4pxTCGZVVNjJL7oH6WUcBL08NjDMVqdE2Mh7QIKmY/f h+TB6SXT6CztNZxYA4+QPhFgp0/bBFP8lq2zzcENlFBMTY9u5mpCMnch9 X-Gm-Gg: ASbGncux0VbgTSZ4GMe0Ceu5Cjl7dMFPnZYoxGLOAfoQ0goaDBAqyiIw43oWZ6m7IKX t+rA+uZo/kp7gqaIN+QNXuQMO+o6+2cjH71lg2nkpmSlmjac0eS0ESlR3TYU0c8Qc81+EfPYFJ8 1nLZmXo8tBRIpNKzsQy9bxVQL6DhKbyrP9RpAmCEeAMynnTbY5dXp2tAcoyV6qIY2L+z4xYsqAF GbYgeGf/8zQZMAIjfw3nLe5NwcQqxZUDg/dmSasnRctSXoTQegG0/ITn9itVAVWpSu/Nmfcrgw9 ogU63cKpxWGwzy5HsKG2aaYr58/goa/2n/k7mXP2q4aKJOsj33jt X-Received: by 2002:a17:902:cf11:b0:234:ba37:87ae with SMTP id d9443c01a7336-23e24f3648dmr232049895ad.4.1753097415127; Mon, 21 Jul 2025 04:30:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHpF9oTmUdIjpuCW9iLl1c/OU2ZHEyvIISStX0HMWj87Nfvx3FkUBc48OZIJ0A8uWdovQ0s0w== X-Received: by 2002:a17:902:cf11:b0:234:ba37:87ae with SMTP id d9443c01a7336-23e24f3648dmr232049415ad.4.1753097414744; Mon, 21 Jul 2025 04:30:14 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:10 +0530 Subject: [PATCH v6 05/24] migration: push Error **errp into qemu_loadvm_section_start_full() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-5-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4684; i=armenon@redhat.com; h=from:subject:message-id; bh=kPXyFT1MVEZdJl1Sq33H6moMxx89stup3d2zseBts2Q=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adykThOXtc7U4uWOk/Of7j5xtBD7pmyEt/jbIz6D7OE mD5lU2yo5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwESKXBl+MnZsnpBa97QiyN9w UVu633SXWTGsQRHzJXZpzyuc4xbkx8iwX+DVd6vzUwwuCsssNpwi5BSvf5L13XVttktL93eu28X IAwA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097592660116600 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_start_full() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/savevm.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 5fe896545a5407393b1bc5126ee977f11b1fc626..96c1a029953230586d4dd480974= 67d3fdc3e3d39 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2690,7 +2690,7 @@ static bool check_section_footer(QEMUFile *f, SaveSta= teEntry *se) } =20 static int -qemu_loadvm_section_start_full(QEMUFile *f, uint8_t type) +qemu_loadvm_section_start_full(QEMUFile *f, uint8_t type, Error **errp) { bool trace_downtime =3D (type =3D=3D QEMU_VM_SECTION_FULL); uint32_t instance_id, version_id, section_id; @@ -2702,8 +2702,8 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t t= ype) /* Read section start */ section_id =3D qemu_get_be32(f); if (!qemu_get_counted_string(f, idstr)) { - error_report("Unable to read ID string for section %u", - section_id); + error_setg(errp, "Unable to read ID string for section %u", + section_id); return -EINVAL; } instance_id =3D qemu_get_be32(f); @@ -2711,8 +2711,7 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t t= ype) =20 ret =3D qemu_file_get_error(f); if (ret) { - error_report("%s: Failed to read instance/version ID: %d", - __func__, ret); + error_setg(errp, "Failed to read instance/version ID: %d", ret); return ret; } =20 @@ -2721,17 +2720,17 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t= type) /* Find savevm section */ se =3D find_se(idstr, instance_id); if (se =3D=3D NULL) { - error_report("Unknown savevm section or instance '%s' %"PRIu32". " - "Make sure that your current VM setup matches your " - "saved VM setup, including any hotplugged devices", - idstr, instance_id); + error_setg(errp, "Unknown savevm section or instance '%s' %"PRIu32= ". " + "Make sure that your current VM setup matches your " + "saved VM setup, including any hotplugged devices", + idstr, instance_id); return -EINVAL; } =20 /* Validate version */ if (version_id > se->version_id) { - error_report("savevm: unsupported version %d for '%s' v%d", - version_id, idstr, se->version_id); + error_setg(errp, "savevm: unsupported version %d for '%s' v%d", + version_id, idstr, se->version_id); return -EINVAL; } se->load_version_id =3D version_id; @@ -2739,7 +2738,7 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t t= ype) =20 /* Validate if it is a device's state */ if (xen_enabled() && se->is_ram) { - error_report("loadvm: %s RAM loading not allowed on Xen", idstr); + error_setg(errp, "loadvm: %s RAM loading not allowed on Xen", idst= r); return -EINVAL; } =20 @@ -2747,10 +2746,11 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t= type) start_ts =3D qemu_clock_get_us(QEMU_CLOCK_REALTIME); } =20 - ret =3D vmstate_load(f, se, NULL); + ret =3D vmstate_load(f, se, errp); if (ret < 0) { - error_report("error while loading state for instance 0x%"PRIx32" o= f" - " device '%s'", instance_id, idstr); + error_prepend(errp, "error while loading state for" + " instance 0x%"PRIx32" of" + " device '%s' ", instance_id, idstr); return ret; } =20 @@ -2761,6 +2761,9 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t t= ype) } =20 if (!check_section_footer(f, se)) { + error_setg(errp, "Reading footer section of instance " + "0x%"PRIx32" of device '%s' for version_id:'%d' failed", + instance_id, idstr, version_id); return -EINVAL; } =20 @@ -3061,7 +3064,7 @@ retry: switch (section_type) { case QEMU_VM_SECTION_START: case QEMU_VM_SECTION_FULL: - ret =3D qemu_loadvm_section_start_full(f, section_type); + ret =3D qemu_loadvm_section_start_full(f, section_type, NULL); if (ret < 0) { goto out; } --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097584; cv=none; d=zohomail.com; s=zohoarc; b=Tig9ytd9ITZ9di7Fek+rHx7No2CQ9avsRQlQw98jn3oE4BKsFXpp3i8yjST2Q4mom6zGbETsFQznPkz145lEBD5hmxRPkOARmLJPJSL0Mv7gPKCg0Sg6lSF9EEn/bvOTMTc74SHtPoJCItXQAp7m4Ar3ppjHmawkXkZl/7pJT2g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097584; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=m8Uq4lNa/kfE7XbxMaNa9vUXJTbd/267RfdEXBm2Bhk=; b=auRsVEMpItEypQCX9+dkc/JGrk3krTEcFpNS+rPfU+z8sYzqCKnli64SiWOkABSgHTMTR44Eo5dExYnmCNWc3voBDXMLHQNU6/90oD4lZHhKbe4dezDBwBpj3hp05qoBl7s7kABKzkWx+lGZcMxKLdxE5djfiM4UbyBG4TZopQI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097584174775.2123964502125; Mon, 21 Jul 2025 04:33:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udojg-00015z-9t; Mon, 21 Jul 2025 07:31:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoj2-0000F8-I2 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:34 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoj0-0000uz-2R for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:32 -0400 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-266-9c1BG8KzOCqUax1CYdaPBA-1; Mon, 21 Jul 2025 07:30:27 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2363bb41664so33763385ad.0 for ; Mon, 21 Jul 2025 04:30:27 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.30.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:30:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097428; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=m8Uq4lNa/kfE7XbxMaNa9vUXJTbd/267RfdEXBm2Bhk=; b=F8uHxgyFZr+0jxKZ+UMfMoRxFnhFFuwNoAiiBwMsS1sRv6w4CcAhn8ebfmiIgtZL80CD1p swo2zBN4m5hLE8MxrA44Dk3zGPOtAy2m21gzRlMZqbx2VRmAdXa2YQL+8ByLM0rKLB9kqU GRSRt2L2zHKEncmiaBTeIEHXK/TPF4I= X-MC-Unique: 9c1BG8KzOCqUax1CYdaPBA-1 X-Mimecast-MFC-AGG-ID: 9c1BG8KzOCqUax1CYdaPBA_1753097426 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097423; x=1753702223; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=m8Uq4lNa/kfE7XbxMaNa9vUXJTbd/267RfdEXBm2Bhk=; b=PMK2D+wh6VjlLnjlUBxQV5ooqc0FhQOSmxpIK7W7T/nKtSKGoixmTvGxYQk4m4q+cW uJWL7DEE0yG6tQzB5KJppsGvxcksiWG0bKIFdzuoJX3LEoB2W1glDi6I40cmYvH6OqD6 U5FATiOgnAGljL0ApB6lzCHhvKSDAT4QbXQaWHaX1UIo+xRXsmnObw9/8KTNHVGuY+YT cpIEXZyCVb4wfLz2JUu+BmjuaOfD+pT10uTX0g2+gKp48JlpAIVokhhxv4E2y9M45a6x 3byV4P0BFDj/xt6aAPoNTeQCX12MfXz/Du2frAEpRQ3kOUQ0bH5JFUT19RJ8TsX6ELnP /XRw== X-Gm-Message-State: AOJu0YzvXJ8p1JWGZ8GvhYjoq8765Lvd5IX1rjB/Xwqvt98lLpKLKXcY 8zffnfE3s/0LfX+F8AZONUM+tC8BnIU1miGDlkmIxBTFrQWmoJctfhf6cYbh2xZi6PRHH/NHSKN BfpfXHA+hgkJra5/Pn0jiF0dhqFUhOm4aykOW4hQHltH3Gd3wGxARdb8n X-Gm-Gg: ASbGncsRmPaXpkM2MeeaXqcLOntJR+MPrjxlWUB3YypMhDsq6X6WErDO+dNqW7B86F7 8vJN6k0CQm68ukg2v2lymGvqE/Mx2Gqfcep2klkvXDWkBKogWP8hj3EUlK8gWleTWab+18ZmQDW C3tmJbvbQ/ll63Ef0ZKTqDzVW5WiFUk1HSI60R8INrf0r2IsGMZBFl2H5qh+M7ww/wvOfM+cNJ6 9YtaBdFD3csmBOa+XtJjuowCQfAnmzS6SC14sIpYKCDsfa3WFE40d8puRdqTBx346gCbah+oNtS vHOI5dS/nh+aAm6X7kOLKatGzMpWi8+sOCz7gluAy5t7i3c9RKce X-Received: by 2002:a17:903:230c:b0:23f:75d1:3691 with SMTP id d9443c01a7336-23f75d13a76mr79780185ad.15.1753097423512; Mon, 21 Jul 2025 04:30:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFpXpmEREd0bwedVExDvrr/vB7pLEQfDU9XphAsk18yUQ750BkL4ZlboL3cq/tW22KH1kGfZA== X-Received: by 2002:a17:903:230c:b0:23f:75d1:3691 with SMTP id d9443c01a7336-23f75d13a76mr79779795ad.15.1753097423041; Mon, 21 Jul 2025 04:30:23 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:11 +0530 Subject: [PATCH v6 06/24] migration: push Error **errp into qemu_loadvm_section_part_end() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-6-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2733; i=armenon@redhat.com; h=from:subject:message-id; bh=SQt+x4YZaTW+4j70w5VMUsH0RvUUv0r7vHzZu4wzDws=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adysQvD1rM5mjrVT90W/HivPS1HwdkE+91PWB/+UWjI P90j/7BjlIWBjEuBlkxRZaGrwGyTQGFEZG2L6/DzGFlAhnCwMUpABNJvsbIMPHDAhle4dXuD3U5 //8xuhuuuEtiz/Lq1fOUnZce2SGpz8XwVzwpmy1kwk6thczZP94EhTDbCm1bv8o4WVQl/Tb7/dh wZgA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097586672116600 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. Signed-off-by: Arun Menon --- migration/savevm.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 96c1a029953230586d4dd48097467d3fdc3e3d39..bef2236799945ed63124b3a4155= 9ca4ab02e094e 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2771,7 +2771,7 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t t= ype, Error **errp) } =20 static int -qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type) +qemu_loadvm_section_part_end(QEMUFile *f, uint8_t type, Error **errp) { bool trace_downtime =3D (type =3D=3D QEMU_VM_SECTION_END); int64_t start_ts, end_ts; @@ -2783,8 +2783,7 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t typ= e) =20 ret =3D 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; } =20 @@ -2795,7 +2794,7 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t typ= e) } } if (se =3D=3D NULL) { - error_report("Unknown savevm section %d", section_id); + error_setg(errp, "Unknown savevm section %d", section_id); return -EINVAL; } =20 @@ -2803,10 +2802,10 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t t= ype) start_ts =3D qemu_clock_get_us(QEMU_CLOCK_REALTIME); } =20 - ret =3D vmstate_load(f, se, NULL); + ret =3D vmstate_load(f, se, errp); if (ret < 0) { - error_report("error while loading state section id %d(%s)", - section_id, se->idstr); + error_prepend(errp, "error while loading state section id %d(%s) ", + section_id, se->idstr); return ret; } =20 @@ -2817,6 +2816,8 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t typ= e) } =20 if (!check_section_footer(f, se)) { + error_setg(errp, "Check section footer error, section_id: '%d'", + section_id); return -EINVAL; } =20 @@ -3071,7 +3072,7 @@ retry: break; case QEMU_VM_SECTION_PART: case QEMU_VM_SECTION_END: - ret =3D qemu_loadvm_section_part_end(f, section_type); + ret =3D qemu_loadvm_section_part_end(f, section_type, NULL); if (ret < 0) { goto out; } --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097692; cv=none; d=zohomail.com; s=zohoarc; b=KVN4lpBKP5t+BkdPsD3B40mgDkxubGhWg+KwuC9HZmbQfxrtIrUu3MtM+YCTh7guvJzihLtYsLgFuOewA51Kh7cButoAE+M4/RRc9P8pS3Q0z4XAkMR+tdSBrrbPMji7uI5eCY9qzz5qGMxb6YopQwb3+SNYTjEG+8HEqKpghM4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097692; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/LNqUCu7dKPQ/SuGiYcMybR4TcCesQNHzWDsgprIUc0=; b=LAI3BytYuoVDlE+87baw9PytJphKXaoVjSWCJno3xwzLRNh6BahAcAK1kzCj/YGVDM1n3TN4vb78FeQ2RpvpQjEAZ2ka24tlOMbh+fBSbUpshcoAj/Y3wZ5oo/5CoQdeaTCVUnIohbX/yfV5KKpGMW1OFVs2KuXVSZfQd8xldqI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097692570744.5697496345143; Mon, 21 Jul 2025 04:34:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udolD-0003MI-6Y; Mon, 21 Jul 2025 07:32:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojB-0000Pe-EH for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:42 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoj8-0000vx-7k for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:40 -0400 Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-295-ge81KtitMIukKsXxbl_UkQ-1; Mon, 21 Jul 2025 07:30:34 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-23dc7d3e708so29870755ad.3 for ; Mon, 21 Jul 2025 04:30:34 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.30.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:30:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097436; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/LNqUCu7dKPQ/SuGiYcMybR4TcCesQNHzWDsgprIUc0=; b=VCJeVhLPt1csVhr06vxN5lxH3IzFV0/Jk0q7Ovi54MNuiwdHr95xwUAQzXgJyWrQ9DAoQb jOs0osnZX9JoHCzPYDCgcUqLLxjfA+Gnr0WluLsw0N1NKKfo4ArWzAx/bJDdvb4obUzSv0 0v4sYe3gpyRVdB4aVu2gz5uYPunoE6Q= X-MC-Unique: ge81KtitMIukKsXxbl_UkQ-1 X-Mimecast-MFC-AGG-ID: ge81KtitMIukKsXxbl_UkQ_1753097434 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097432; x=1753702232; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/LNqUCu7dKPQ/SuGiYcMybR4TcCesQNHzWDsgprIUc0=; b=As7Lmy1nHBjXHNl9J2RNZtUcxZv4tit8pqP0Z0wZ1KPj/owRxYrrmVrSGPknbIFzA+ FyhtOTZ3RNaWb2DMzWR/hCv6/gF2LQTPc00Rw3Wbz5ZnAE0/vaLycNx2Wt3oQkdi8v/c T2KEjNSCTNQRXTlQKzvp5iLNFhWqEicxYJ28vjLLzdsItkWHIjNfgFbJqpD28JN2x5j6 kQkXJc/Lnna+qj9egtGH0dddjnyqynIV8CIoh531nKOe+GsNS9PNtcXE+s9MmvXj3Ta8 J2Auwwo+aOuEsMGV+Xwf4mM8AYXm7t7j77LFewbWb48bEsngObkAf+1Qr5OdFoLHrPQF j4WQ== X-Gm-Message-State: AOJu0YzOAUX6Yo0W++G2OtCgbNsJJ7LJFC5+owIU2/NPn6FgqlwRwXsx dETx8zNknPBWloP6qhZ/iq27RT8vBfGyf5oAJQvPPu/1rTUHK57Iu9vmlEe2fRPf/rlVZCIc/EW wzNoRvrm4xh+hKKY8Ed249TEMKqJ13nXcTPqnEzFVYOGwmO16rGWBLQbT X-Gm-Gg: ASbGnctgLNQRLri42e2j4VbZ9IF4aenSgz1hGKgW/GKDRGwqvvbn897qfeluyDD9vVR ZEcvx6yhkq2h7y8dJUhgBaLeDuMkizZjxhPgqDDBDbN3LX7iDoiVhEiYYPNx6j+8HjrDJWaghsE WKBY372f+PV0x/4NiceK8Cq7n+iyqQiCFma2h99Nefb169IECEO6bbzxR6H2YyP0MK/nCsu/gYH dWWpAm+kWq81hRyLRj1RlA0bEf2/7RabkQHS0WBGM1potPNr+KZSerw9r8yeXowOs0+f08r/+0B blpQ+2pBz7guAuTLIcUaQEqBgJV2o9chnGUjBpNmnFvJmgjiv1ca X-Received: by 2002:a17:903:ace:b0:234:adce:3ebc with SMTP id d9443c01a7336-23e2578a8aemr309082525ad.52.1753097431654; Mon, 21 Jul 2025 04:30:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEwH+R2QUhaa3FhehiC+1lKY5szCrc6hJ8O/PHhTR1YRDlWDQqngxSbW4ms4MM/6cHGw1XM9w== X-Received: by 2002:a17:903:ace:b0:234:adce:3ebc with SMTP id d9443c01a7336-23e2578a8aemr309081805ad.52.1753097431234; Mon, 21 Jul 2025 04:30:31 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:12 +0530 Subject: [PATCH v6 07/24] migration: Update qemu_file_get_return_path() docs and remove dead checks MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-7-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3725; i=armenon@redhat.com; h=from:subject:message-id; bh=XMQupSy2eiojmjsmzqjvvSwAHzmqZOlGldkjbKkKFOw=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adysSJ0jLCr/JCUu4FLpw+IX3XYpc4q5gmyflPJYS1/ 9eYBVzsKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMJHjaxn+CofGCq7qSShQbLnm +37lk+aCrAsTbzenHZa3dpLRuZxex8jQcnNH57Yby2TV/jzpX8fz9YvwscDtLzQ36x48plX+TcW fGwA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097693922116600 The documentation of qemu_file_get_return_path() states that it can return NULL on failure. However, a review of the current implementation reveals that it is guaranteed that it will always succeed and will never return NULL. As a result, the NULL checks post calling the function become redundant. This commit updates the documentation for the function and removes all NULL checks throughout the migration code. Signed-off-by: Arun Menon Reviewed-by: Daniel P. Berrang=C3=A9 --- migration/colo.c | 4 ---- migration/migration.c | 12 ++---------- migration/qemu-file.c | 1 - migration/savevm.c | 4 ---- 4 files changed, 2 insertions(+), 19 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index e0f713c837f5da25d67afbd02ceb6c54024ca3af..981bd4bf9ced8b45b4c5d494aca= e119a174ee974 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -849,10 +849,6 @@ static void *colo_process_incoming_thread(void *opaque) failover_init_state(); =20 mis->to_src_file =3D qemu_file_get_return_path(mis->from_src_file); - if (!mis->to_src_file) { - error_report("COLO incoming thread: Open QEMUFile to_src_file fail= ed"); - goto out; - } /* * Note: the communication between Primary side and Secondary side * should be sequential, we set the fd to unblocked in migration incom= ing diff --git a/migration/migration.c b/migration/migration.c index 10c216d25dec01f206eacad2edd24d21f00e614c..b3bccaeaee806abd01595863f64= 75057049b0688 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2646,12 +2646,9 @@ out: return NULL; } =20 -static int open_return_path_on_source(MigrationState *ms) +static void open_return_path_on_source(MigrationState *ms) { ms->rp_state.from_dst_file =3D qemu_file_get_return_path(ms->to_dst_fi= le); - if (!ms->rp_state.from_dst_file) { - return -1; - } =20 trace_open_return_path_on_source(); =20 @@ -2660,8 +2657,6 @@ static int open_return_path_on_source(MigrationState = *ms) ms->rp_state.rp_thread_created =3D true; =20 trace_open_return_path_on_source_continue(); - - return 0; } =20 /* Return true if error detected, or false otherwise */ @@ -4010,10 +4005,7 @@ void migration_connect(MigrationState *s, Error *err= or_in) * QEMU uses the return path. */ if (migrate_postcopy_ram() || migrate_return_path()) { - if (open_return_path_on_source(s)) { - error_setg(&local_err, "Unable to open return-path for postcop= y"); - goto fail; - } + open_return_path_on_source(s); } =20 /* diff --git a/migration/qemu-file.c b/migration/qemu-file.c index b6ac190034f777dbde0da1598483a892089d7538..f9ccee9a1091ecbd37e6b7d2081= a4446442b544d 100644 --- a/migration/qemu-file.c +++ b/migration/qemu-file.c @@ -125,7 +125,6 @@ static QEMUFile *qemu_file_new_impl(QIOChannel *ioc, bo= ol is_writable) =20 /* * Result: QEMUFile* for a 'return path' for comms in the opposite directi= on - * NULL if not available */ QEMUFile *qemu_file_get_return_path(QEMUFile *f) { diff --git a/migration/savevm.c b/migration/savevm.c index bef2236799945ed63124b3a41559ca4ab02e094e..96af7b412f2ed43468f4bcac8b8= 33cda223f8321 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2583,10 +2583,6 @@ static int loadvm_process_command(QEMUFile *f) return 0; } mis->to_src_file =3D qemu_file_get_return_path(f); - if (!mis->to_src_file) { - error_report("CMD_OPEN_RETURN_PATH failed"); - return -1; - } =20 /* * Switchover ack is enabled but no device uses it, so send an ACK= to --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097903; cv=none; d=zohomail.com; s=zohoarc; b=crabehT7xY8Lo3Ux9wdNPV0aSyC2dB1zet8kz4EWQeK0waTvbKbKU7T9QIL3bw+nXHLE8VmK3O0p2Qbb0KV9uQGa/ThaxzsFW5xrHy7AMfj9EwdwCYrHHYYhkzLZOl2q6riMRKLSrt/aCLB53RBOVlnUrx6tFsBtFyv5JpszGNo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097903; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=e/bTnVzCJK1JGmEtQ/HulU6OEfafySNKkRXdrQD17Hc=; b=Gio1pJIJ0I+8FxHdrBy0PJU3n3NC1haArW+JvIPkxmgBOXLsc0MXEFEQvRQK/3S5U49ngcL/Mj1uu45o539/apZXMB8on24hiSwy985OLSGR3iOVO3DMHO0xfhPxxCkOrGp5n62ewnhQ2+LuivrGw6wgKHGa+23SW+T0MNc8Gsw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175309790303576.06729257057543; Mon, 21 Jul 2025 04:38:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udokf-0002Hx-OG; Mon, 21 Jul 2025 07:32:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojJ-0000zM-DJ for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojD-0000x6-P2 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:48 -0400 Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-551-R-VgRpQmN1u-I_5gCR8IWw-1; Mon, 21 Jul 2025 07:30:41 -0400 Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b38ec062983so2883069a12.3 for ; Mon, 21 Jul 2025 04:30:41 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.30.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:30:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097442; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=e/bTnVzCJK1JGmEtQ/HulU6OEfafySNKkRXdrQD17Hc=; b=a7oMO7Tskoy1NNSgp5HyjRvpXhLi5umZRWuX4QvrgEYkClLwlSm/TrXcu0p9IALBk5N29u SXm+IZWXNE/m3NzWkldXn8iKT71rQBom/y+APICNj2MQp+MBj8qWH+iG+tEY+JPIJ3A2ZK wjvS9bz+DLufjqnrlXTBdZQ9HxsJ2lA= X-MC-Unique: R-VgRpQmN1u-I_5gCR8IWw-1 X-Mimecast-MFC-AGG-ID: R-VgRpQmN1u-I_5gCR8IWw_1753097440 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097440; x=1753702240; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=e/bTnVzCJK1JGmEtQ/HulU6OEfafySNKkRXdrQD17Hc=; b=mhOAwJsQ4uSgrarF3ZB1Fx4/2xHsMWHeAsOrHPSe3ktYnr+p9thOrbF+03MMRIGKRN jL9EbbZPxA5l9KNVr01Q2O5NUahPouOFsAuMD3nmFTFGvfXkTDHpyODAQ4XWVFNxJ5no UUsAV9KK4Lqnm21KiwwEftmGelRMeI78Hp63bn/s6vPQXqRleeCoOatohyTd1ThFBeAJ 4pnysMoctMu+LMTgFzoclfH9hF4pP938w50WJwJHkB894dbvoklfSYwwW6wolUjoQp7r yATeH62cdsQd4fYPSob+FMb6rGNa1lUbU8meDcGitxGABGl1HIDfTYdPLuT73ac7ON4F NvJg== X-Gm-Message-State: AOJu0YwZ7OgzQ0+yY66foWvmkhSYl0YHq6o5m4xfkrm5ukOR8zPK1F3w IHG2ihiUC5aJB74BqDEVdGV7rlBC2x+jJ9S/Db8w+7NiS0qPQMdaNe5H65bpDjfG+9Z0smA/fy1 VXeciW5TMXAthSuYPyo7pfQswV0CU2wv9LbVafjp0T2+8x5YDjmhqzf5H X-Gm-Gg: ASbGnctN7bAhrb9DgVdjvAFiqJxCI/XP9XIUK4PGpP33Bc5f8NyU7kje0LFwf8C7G+d BY/0JPU55pehIDjKNFQ/d64UDSLZb6NwE7CtJafKzKjfUEhSy5e/SSvBjd2mV87vMPNJj+Mx57Y yTrErWjqwbgY2IRFwDJxZpy41ShXXbVX9LSFwQGOMXcoaVkb7FBhXTLmi7UyNWdqcEXBX167iSH AHFEL7MOvwsqkQs727CZdo8FeG4wWDfj3k7IgHLMQRpB0bgwACGwGG4twzz3Cdg8iehTKDsrZla vUwxELGDwlj0za6zzX4KemWpWPwAS9DFr4VN4qGDBdpCPV4FQpbM X-Received: by 2002:a17:903:b47:b0:23c:8f2d:5e23 with SMTP id d9443c01a7336-23e3b89a480mr178275555ad.52.1753097440272; Mon, 21 Jul 2025 04:30:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFBy3ihIJI7EX3r4ru+pi/i7Rc+iUvXcJoi2UwaEIxGhsHhLwedc4yXM53EJ3bbESnavhw95g== X-Received: by 2002:a17:903:b47:b0:23c:8f2d:5e23 with SMTP id d9443c01a7336-23e3b89a480mr178274885ad.52.1753097439813; Mon, 21 Jul 2025 04:30:39 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:13 +0530 Subject: [PATCH v6 08/24] migration: push Error **errp into loadvm_process_command() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-8-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6363; i=armenon@redhat.com; h=from:subject:message-id; bh=p3UPLCpz/aJX2UcP9W/OTrqcaVqP4oRxsSLO4TGtDSY=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adysRJ548+8pmnJxexcuu2m6Jmlc3FMqslXnNt79dyu /P/a8jMjlIWBjEuBlkxRZaGrwGyTQGFEZG2L6/DzGFlAhnCwMUpABMxUWb47yJVx3pns52n3XUx K4NP+3wFIr+2mh3+JnbQht2ueDHzd4b/UQq7Lm1a4dcUuLykJLMhm2GWMtu7exzfDn8KqW/m3VL KDAA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097903980116600 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 loadvm_process_command() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/savevm.c | 87 +++++++++++++++++++++++++++++++++++++++++---------= ---- 1 file changed, 66 insertions(+), 21 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 96af7b412f2ed43468f4bcac8b833cda223f8321..d8feb9e1599d019636cd400ee7e= be594df27bd1d 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2546,12 +2546,13 @@ static int loadvm_postcopy_handle_switchover_start(= void) * LOADVM_QUIT All good, but exit the loop * <0 Error */ -static int loadvm_process_command(QEMUFile *f) +static int loadvm_process_command(QEMUFile *f, Error **errp) { MigrationIncomingState *mis =3D migration_incoming_get_current(); uint16_t cmd; uint16_t len; uint32_t tmp32; + int ret; =20 cmd =3D qemu_get_be16(f); len =3D qemu_get_be16(f); @@ -2562,16 +2563,16 @@ static int loadvm_process_command(QEMUFile *f) } =20 if (cmd >=3D MIG_CMD_MAX || cmd =3D=3D MIG_CMD_INVALID) { - error_report("MIG_CMD 0x%x unknown (len 0x%x)", cmd, len); + error_setg(errp, "MIG_CMD 0x%x unknown (len 0x%x)", cmd, len); return -EINVAL; } =20 trace_loadvm_process_command(mig_cmd_args[cmd].name, len); =20 if (mig_cmd_args[cmd].len !=3D -1 && mig_cmd_args[cmd].len !=3D len) { - error_report("%s received with bad length - expecting %zu, got %d", - mig_cmd_args[cmd].name, - (size_t)mig_cmd_args[cmd].len, len); + error_setg(errp, "%s received with bad length - expecting %zu, got= %d", + mig_cmd_args[cmd].name, + (size_t)mig_cmd_args[cmd].len, len); return -ERANGE; } =20 @@ -2590,11 +2591,10 @@ static int loadvm_process_command(QEMUFile *f) * been created. */ if (migrate_switchover_ack() && !mis->switchover_ack_pending_num) { - int ret =3D migrate_send_rp_switchover_ack(mis); + ret =3D migrate_send_rp_switchover_ack(mis); if (ret) { - error_report( - "Could not send switchover ack RP MSG, err %d (%s)", r= et, - strerror(-ret)); + error_setg(errp, "Could not send switchover ack " + "RP MSG, err %d (%s)", ret, strerror(-ret)); return ret; } } @@ -2604,39 +2604,84 @@ static int loadvm_process_command(QEMUFile *f) tmp32 =3D qemu_get_be32(f); trace_loadvm_process_command_ping(tmp32); if (!mis->to_src_file) { - error_report("CMD_PING (0x%x) received with no return path", - tmp32); + error_setg(errp, "CMD_PING (0x%x) received with no return path= ", + tmp32); return -1; } migrate_send_rp_pong(mis, tmp32); break; =20 case MIG_CMD_PACKAGED: - return loadvm_handle_cmd_packaged(mis); + ret =3D loadvm_handle_cmd_packaged(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_ADVISE: - return loadvm_postcopy_handle_advise(mis, len); + ret =3D loadvm_postcopy_handle_advise(mis, len); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_LISTEN: - return loadvm_postcopy_handle_listen(mis); + ret =3D loadvm_postcopy_handle_listen(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_RUN: - return loadvm_postcopy_handle_run(mis); + ret =3D loadvm_postcopy_handle_run(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_RAM_DISCARD: - return loadvm_postcopy_ram_handle_discard(mis, len); + ret =3D loadvm_postcopy_ram_handle_discard(mis, len); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_RESUME: - return loadvm_postcopy_handle_resume(mis); + ret =3D loadvm_postcopy_handle_resume(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_RECV_BITMAP: - return loadvm_handle_recv_bitmap(mis, len); + ret =3D loadvm_handle_recv_bitmap(mis, len); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_ENABLE_COLO: - return loadvm_process_enable_colo(mis); + ret =3D loadvm_process_enable_colo(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_SWITCHOVER_START: - return loadvm_postcopy_handle_switchover_start(); + ret =3D loadvm_postcopy_handle_switchover_start(); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; } =20 return 0; @@ -3074,7 +3119,7 @@ retry: } break; case QEMU_VM_COMMAND: - ret =3D loadvm_process_command(f); + ret =3D loadvm_process_command(f, NULL); trace_qemu_loadvm_state_section_command(ret); if ((ret < 0) || (ret =3D=3D LOADVM_QUIT)) { goto out; --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097831; cv=none; d=zohomail.com; s=zohoarc; b=l6suS7J/hAlQqyaoaXvfHooJxZFDbpBUmFz7jPyA7Ikimz4y5CWR7RmiJvDNOeDLTQyu49ojfv6oGdaAygsbq4dQoassJ0K0lyH6UnZZyEhi7qOdLhLgKzxWPaIyOn8SPwuySqdV+yo8hXNOLsop3fJ6bI4QEK0Gsw3AsfFzqGM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097831; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ULs+Y7dE9uSVpJOMyTHhkJaujP5KmYFZNLz5yJwY4k4=; b=lqmRtfaWPBB9JkywF0uzJREpO8aTaA8r95RXLovuhbK3gcNcBcWsd/tzj1S54difhH6KKakxb2FCjEveZoKVYiffoBLv0WZbJtr69GF1Vekx96eeg2l2WjnAgNWNlH8ednxX+tzBQdjgi5rvSo2rhtP9cd0IFkR0QA2zJ4qCkCo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097831740319.44662474702943; Mon, 21 Jul 2025 04:37:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udolQ-0004Z2-72; Mon, 21 Jul 2025 07:33:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojO-00019e-2C for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojM-0000yw-0v for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:30:53 -0400 Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-612-8OI3XtHDOXusXc6a1PG_AA-1; Mon, 21 Jul 2025 07:30:49 -0400 Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-235f6b829cfso32916705ad.2 for ; Mon, 21 Jul 2025 04:30:49 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.30.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:30:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097451; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ULs+Y7dE9uSVpJOMyTHhkJaujP5KmYFZNLz5yJwY4k4=; b=C2rtPUI4sa0vydi0pDZwTaBIWHUC21jLPYi2FA4oYGj/Zo5ecoue6CzmKDqUniRL37BHmy xU1bCJkwvElsEYDVMwhGuM6CKvR4s6YxdxWxmIubGtIGvweZPr+iTzfpLeyodOSo1E2Ukm CPRUm5gHgsjYK3a943PClvGCXka9Z6E= X-MC-Unique: 8OI3XtHDOXusXc6a1PG_AA-1 X-Mimecast-MFC-AGG-ID: 8OI3XtHDOXusXc6a1PG_AA_1753097449 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097449; x=1753702249; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ULs+Y7dE9uSVpJOMyTHhkJaujP5KmYFZNLz5yJwY4k4=; b=Dk9EUK9JEvJoVf8gmbthdyzIF1P78BwGh7iBzCW5kZQXMe9c/fc4zGFXKVFfE1JP5u tIKstjZhRt5WXrAvLVQUiQXNvXWdeOD4TEHK5bx3oyYgs2xpiq2XkwTVyzNUCPvUnTFV ZE1we+RIsP3qj9KEr1/Z51dzCiqYnDK5XQoZiaeBYT18V0JDaxGZcyxd6ad7av8xRsDy PbIsc2Ih1F6Z8YrUxzYXtmKwT1tC35+rsbZ2DCRy8QLLOfuNDp5n/Dx/CeKwvVoMsQf5 UlyAawXkUblAyEbJ7qLclM88K2gRrzfhXsLiw+A3FW2diwDsAb1WGYljzNuxp56/EzSt d6kQ== X-Gm-Message-State: AOJu0Yy/O1b1J+Xm5E3WrVq+iSlHuMc8hCt8OEy+q6SMf8Tj9ZZI9Cas zwnSajUvmpm2TV7VAApe9ytfb43TYM4l8Vm1IO0VDfi3+jqfvw6LvsDgICaAG0wHp/Bz70+J1AR F4Vp3kJ9dBsl0vEdZqpFk38SrpzxhFQnwn/E44QcdI01d0ROuBXM70Dxh X-Gm-Gg: ASbGnctIQK2EwFTQIRkUg6EFz0c/vj7E3HuA7i0J/M/9Ny3pqFQS6icMjsL39mDZSEg AIQM74O/Td5JmVkOZQU56r3TcxlnfeUYYSZB3IW7+EJn/9IuP57x+CurUIa/UFWt5sWPZC7ju6E xqSmbllEFxCqAVbulYh1VQe1GkJ3BP5h/u02pIcGNaOTTH2l1HJ5IUpr1hBpfRNJEsWm0AITKk/ DRoXwkJd/zzFetTEsi9Ag3vSNYPBXUTnDOf0JnZXxzn58mSh+tGhhd5wVo4FXVtpRopZHjvGQww Z15aoL+nTumnXUTK+wi1zfBRPlJQuGjQUX+Oj9EhKEzID5muIUAM X-Received: by 2002:a17:903:2342:b0:237:c8de:f289 with SMTP id d9443c01a7336-23e2575f9c4mr256223715ad.36.1753097448803; Mon, 21 Jul 2025 04:30:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEnUGAkFGsp2EOCjWjjIvprvVlNXuEYnLBTcIiUbCZMWBnBVTk/lPJy1ZCdodOJoiYYA4vHWQ== X-Received: by 2002:a17:903:2342:b0:237:c8de:f289 with SMTP id d9443c01a7336-23e2575f9c4mr256223275ad.36.1753097448333; Mon, 21 Jul 2025 04:30:48 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:14 +0530 Subject: [PATCH v6 09/24] migration: push Error **errp into loadvm_handle_cmd_packaged() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-9-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2750; i=armenon@redhat.com; h=from:subject:message-id; bh=2Pni/uIRYnrVWEWOd4Mq+ZjAN8oGU8Y1RFtsZkJix3k=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adykTvesvLP0V8ulbOujrf4WFupLJZQpPc2h37eaWe/ MuaZCzZUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCLiPxgZtv7s/Tc58PmcxxsU zwSwBShYuwpubn28qnhXyw71xe9zUxkZPjv+rWdtVXI9W6bf7FfXlJXhZt4v7xkxKTh735zG3lA uAA== X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097832938116600 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 loadvm_handle_cmd_packaged() must report an error in errp, in case of failure. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Arun Menon --- migration/savevm.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index d8feb9e1599d019636cd400ee7ebe594df27bd1d..3ade91d2f757f94bc6c0242a38c= 6e750a9252f96 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2405,7 +2405,7 @@ static int loadvm_postcopy_handle_resume(MigrationInc= omingState *mis) * Returns: Negative values on error * */ -static int loadvm_handle_cmd_packaged(MigrationIncomingState *mis) +static int loadvm_handle_cmd_packaged(MigrationIncomingState *mis, Error *= *errp) { int ret; size_t length; @@ -2415,7 +2415,7 @@ static int loadvm_handle_cmd_packaged(MigrationIncomi= ngState *mis) trace_loadvm_handle_cmd_packaged(length); =20 if (length > MAX_VM_CMD_PACKAGED_SIZE) { - error_report("Unreasonably large packaged state: %zu", length); + error_setg(errp, "Unreasonably large packaged state: %zu", length); return -1; } =20 @@ -2426,8 +2426,8 @@ static int loadvm_handle_cmd_packaged(MigrationIncomi= ngState *mis) length); if (ret !=3D length) { object_unref(OBJECT(bioc)); - error_report("CMD_PACKAGED: Buffer receive fail ret=3D%d length=3D= %zu", - ret, length); + error_setg(errp, "CMD_PACKAGED: Buffer receive fail ret=3D%d lengt= h=3D%zu", + ret, length); return (ret < 0) ? ret : -EAGAIN; } bioc->usage +=3D length; @@ -2457,6 +2457,9 @@ static int loadvm_handle_cmd_packaged(MigrationIncomi= ngState *mis) } while (1); =20 ret =3D qemu_loadvm_state_main(packf, mis); + if (ret < 0) { + error_setg(errp, "VM state load failed: %d", ret); + } trace_loadvm_handle_cmd_packaged_main(ret); qemu_fclose(packf); object_unref(OBJECT(bioc)); @@ -2612,12 +2615,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) break; =20 case MIG_CMD_PACKAGED: - ret =3D loadvm_handle_cmd_packaged(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_handle_cmd_packaged(mis, errp); =20 case MIG_CMD_POSTCOPY_ADVISE: ret =3D loadvm_postcopy_handle_advise(mis, len); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097831; cv=none; d=zohomail.com; s=zohoarc; b=Xfpc6OVtfcptBhup8z2KyjJtT+PETK/Nb4shJLpH2QGwmRYQlHo9OUYQlnDqLyv+fEp5jx/YXt/IdDh6KvJw3kR/9rsr0t8EYAA75DUN9sLjpA3lxlejdhFTXAbkocOMmLtAFJAti73QYGiGpvLrcciBkvSSLsAeNtvizm8Jaao= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097831; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=e9bw0kHEksjvUKEizwGfefuPp0i5EtS03tpg6W+kBZs=; b=Z881QwNpATzBka5i4MXO5mceBJ7j1DGrssylkzyIl3ffCaD9YbsjjYTCG7yJ1kCRGbInH8gjSfBKUMC4eu0OPxhH8PwThh6czvsD/3vV+BYcO1WOIKLgD3VSgkAXNx3OSjnsuRnKHnHF0809YYdtXz3KM6HyS+5C8HxFSyYxndo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097831502999.8867720624875; Mon, 21 Jul 2025 04:37:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udolI-0003lk-2L; Mon, 21 Jul 2025 07:32:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojZ-0001IZ-JL for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:31:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojU-000103-Fw for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:31:05 -0400 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-96-5A3UW9w-PmaNR_DIsPtVlw-1; Mon, 21 Jul 2025 07:30:58 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2382607509fso28890975ad.3 for ; Mon, 21 Jul 2025 04:30:57 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.30.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:30:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097459; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=e9bw0kHEksjvUKEizwGfefuPp0i5EtS03tpg6W+kBZs=; b=L+O0yKFzK4UC1YWbTc5u9Vr6H/oNeQ7lC494S9re+VqxtHSiKAzuW/unqYuou/yb4cbkx+ hHcNEU4UBtNInRYvsf+l7JQOWylB66VlKOsKJhIfIERYosboUkBjjG90YcaIfcSiyKXw2Z 4TRQG4w7G2qgRj1/UUrn3E3XTbQ4plc= X-MC-Unique: 5A3UW9w-PmaNR_DIsPtVlw-1 X-Mimecast-MFC-AGG-ID: 5A3UW9w-PmaNR_DIsPtVlw_1753097457 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097457; x=1753702257; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=e9bw0kHEksjvUKEizwGfefuPp0i5EtS03tpg6W+kBZs=; b=W0TNwSm+TrcpFfXDqmveJA1ymmHwNhVSk+D3GhQh19amLVSlvSReR0SXNwfGN8d2Gv BsKooRJfhv2p/FJUpm4Tqt7HWpV2kKE92rqSbeAWgGwG4acwOV5fHqdqRhN3rYKLsbG3 MsZfsPZ1tq31Hxq7kRiYUwefIotmFkxom2T7SXLy19I8DVR2245+Kv2hg3Xbov/CBxvi sGywJcosKg6yacxpAr2+M7PdADd0H9f7yudZMM1BZjZtEGErSYVT9XluhpdZPH7XOsyc qycTjB3UypGGwuMF2pLqUBVkgYzPisdYSzU5z7eu/mC11Pwy5iMSaoibGl26Rmyvyauk KQoQ== X-Gm-Message-State: AOJu0YwBXaFloNRdFE0nMpQ+8XmF8ahyR8LwwvhrIVE04+DrX88cfJgo HMHJmU2DPqpDkF5kxKzgS5ZN6QOYpyEMPI02quWvs3k8qEKZNzusJK5db3xG6Fy2xSTA/bn+8Ih XVjxLX/n3Cc58uqF8ivjuXrm+AlX8MHjZ2YkNeuu1ZtCNK6FD+yAHYVta X-Gm-Gg: ASbGncsIW53h2yFY43y0ABbkCS5MKqGVvQ6SL9MsuOS+HFUCYKU3iAZ6UvbLURkOhUj eAK8EyGPw7fh++/4bZx4Ih2zOJUV6aIadAjWROhXlwMICDXhoCPs/D3DN5Xm2WvFHjyUjmLJTun tC+M1bJrtpJQow81MkFJAflWOvMaNRDTuv6t+NUyqhflWKpJPUIJtaS7guwYpFEkBBs8IX2k8sa 1QuoxSU0fGbs/ZWDD3h5ZdEi8RfBXFV3xa6taSxw8GGqrU6kT22tRlavsA1+RdhOVXlfi0Qm5tZ HpxjdjEB/MVcQZChbb8WnNUGbw8JmiAJzyzkmJDgaaeHxK9wPbLS X-Received: by 2002:a17:902:f745:b0:22e:421b:49b1 with SMTP id d9443c01a7336-23e24f9477dmr307309825ad.48.1753097457013; Mon, 21 Jul 2025 04:30:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGE5saP/qEGzcx0AVMVXkTRk+x3GRZFNSg6ywpeC8KCb30Lx3OlhKt2ScUOUmmxr8EO3+bnfw== X-Received: by 2002:a17:902:f745:b0:22e:421b:49b1 with SMTP id d9443c01a7336-23e24f9477dmr307309375ad.48.1753097456571; Mon, 21 Jul 2025 04:30:56 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:15 +0530 Subject: [PATCH v6 10/24] migration: push Error **errp into ram_postcopy_incoming_init() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-10-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5016; i=armenon@redhat.com; h=from:subject:message-id; bh=lEaVRGiTD2JzH/Z+bJIrdIkUc6ResF6vLucMSdCaXvM=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adysR7K5lkDDtf+ckz+l7NaVEJ4H6YyztPY5t7BqdFU n5JMnNHKQuDGBeDrJgiS8PXANmmgMKISNuX12HmsDKBDGHg4hSAifTuZfhfIv1MrKBt5dnVTJ4f 0pyNJm702rPlZOTjX7v6PDr85pSkMDLsvMPEVvk9oJ3b/aBLjoPKRac7q6azSZd++KR8/clRt4e MAA== X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097833071116600 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 ram_postcopy_incoming_init() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/postcopy-ram.c | 9 ++++++--- migration/postcopy-ram.h | 2 +- migration/ram.c | 6 +++--- migration/ram.h | 2 +- migration/savevm.c | 2 +- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c index 45af9a361e8eacaad0fb217a5da2c5004416c1da..05617e5fbcad62226a54fe17d9f= 7d9a316baf1e4 100644 --- a/migration/postcopy-ram.c +++ b/migration/postcopy-ram.c @@ -681,6 +681,7 @@ out: */ static int init_range(RAMBlock *rb, void *opaque) { + Error **errp =3D opaque; const char *block_name =3D qemu_ram_get_idstr(rb); void *host_addr =3D qemu_ram_get_host_addr(rb); ram_addr_t offset =3D qemu_ram_get_offset(rb); @@ -701,6 +702,8 @@ static int init_range(RAMBlock *rb, void *opaque) * (Precopy will just overwrite this data, so doesn't need the discard) */ if (ram_discard_range(block_name, 0, length)) { + error_setg(errp, "failed to discard RAM block %s len=3D%zu", + block_name, length); return -1; } =20 @@ -749,9 +752,9 @@ static int cleanup_range(RAMBlock *rb, void *opaque) * postcopy later; must be called prior to any precopy. * called from arch_init's similarly named ram_postcopy_incoming_init */ -int postcopy_ram_incoming_init(MigrationIncomingState *mis) +int postcopy_ram_incoming_init(MigrationIncomingState *mis, Error **errp) { - if (foreach_not_ignored_block(init_range, NULL)) { + if (foreach_not_ignored_block(init_range, errp)) { return -1; } =20 @@ -1703,7 +1706,7 @@ bool postcopy_ram_supported_by_host(MigrationIncoming= State *mis, Error **errp) return false; } =20 -int postcopy_ram_incoming_init(MigrationIncomingState *mis) +int postcopy_ram_incoming_init(MigrationIncomingState *mis, Error **errp) { error_report("postcopy_ram_incoming_init: No OS support"); return -1; diff --git a/migration/postcopy-ram.h b/migration/postcopy-ram.h index 3852141d7e37ab18bada4b46c137fef0969d0070..ca19433b246893fa5105bcebffb= 442c58a9a4f48 100644 --- a/migration/postcopy-ram.h +++ b/migration/postcopy-ram.h @@ -30,7 +30,7 @@ int postcopy_ram_incoming_setup(MigrationIncomingState *m= is); * postcopy later; must be called prior to any precopy. * called from ram.c's similarly named ram_postcopy_incoming_init */ -int postcopy_ram_incoming_init(MigrationIncomingState *mis); +int postcopy_ram_incoming_init(MigrationIncomingState *mis, Error **errp); =20 /* * At the end of a migration where postcopy_ram_incoming_init was called. diff --git a/migration/ram.c b/migration/ram.c index 7208bc114fb5c366740db380ee6956a91b3871a0..8223183132dc0f558f45fbae3f4= f832845730bd3 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3708,7 +3708,7 @@ static int ram_load_cleanup(void *opaque) /** * ram_postcopy_incoming_init: allocate postcopy data structures * - * Returns 0 for success and negative if there was one error + * Returns 0 for success and -1 if there was one error * * @mis: current migration incoming state * @@ -3716,9 +3716,9 @@ static int ram_load_cleanup(void *opaque) * postcopy-ram. postcopy-ram's similarly names * postcopy_ram_incoming_init does the work. */ -int ram_postcopy_incoming_init(MigrationIncomingState *mis) +int ram_postcopy_incoming_init(MigrationIncomingState *mis, Error **errp) { - return postcopy_ram_incoming_init(mis); + return postcopy_ram_incoming_init(mis, errp); } =20 /** diff --git a/migration/ram.h b/migration/ram.h index 921c39a2c5c45bc2344be80854c46e4c10c09aeb..275709a99187f9429ccb4111e05= 281ec268ba0db 100644 --- a/migration/ram.h +++ b/migration/ram.h @@ -86,7 +86,7 @@ void ram_postcopy_migrated_memory_release(MigrationState = *ms); void ram_postcopy_send_discard_bitmap(MigrationState *ms); /* For incoming postcopy discard */ int ram_discard_range(const char *block_name, uint64_t start, size_t lengt= h); -int ram_postcopy_incoming_init(MigrationIncomingState *mis); +int ram_postcopy_incoming_init(MigrationIncomingState *mis, Error **errp); int ram_load_postcopy(QEMUFile *f, int channel); =20 void ram_handle_zero(void *host, uint64_t size); diff --git a/migration/savevm.c b/migration/savevm.c index 3ade91d2f757f94bc6c0242a38c6e750a9252f96..6b8c78bfb9bde2a8e7500b0342c= d386b0d12db97 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1989,7 +1989,7 @@ static int loadvm_postcopy_handle_advise(MigrationInc= omingState *mis, return -1; } =20 - if (ram_postcopy_incoming_init(mis)) { + if (ram_postcopy_incoming_init(mis, NULL) < 0) { return -1; } =20 --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097718; cv=none; d=zohomail.com; s=zohoarc; b=O4JU/2PcuLepKNqdumIfTDvX/QAU0DYvEP4gus5NfRElkjK+9NE1ExNcI4Lg4SJ1OPnC1A3sFX72f4YADv1LSsmsIOxXR7wceck/nCGKxiDhhkKc3hN/fIVoFq+b5nkOXRRwDNKvJ4w03ro++QPDb5rszk6aBheLbSdkmeKSaDE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097718; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YNAFut7yfNqps0+AcxOkC9eFiWKbZwZH5geqoaKzyjg=; b=dC2+HeR0Lwq6MJHieJ9usspzVA48B7/SgupTjVc1uS8CndxaGvwboefBxHQ7aywj9ljTcjZNfDig4NQL2c0ZJcpkIIA5bcuWkyogUdpj/ooVoqq9sIA96TaCL749pwc2dssxweC2+86lTDezTqZDOVWDMdgS9+AFz19yjGb1v3Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17530977186501014.8362590816478; Mon, 21 Jul 2025 04:35:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udolc-0005TN-BI; Mon, 21 Jul 2025 07:33:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojj-0001Qs-HQ for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:31:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoje-000113-4Z for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:31:15 -0400 Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-116-uN4lpQUyOCOyLTgXV55nlA-1; Mon, 21 Jul 2025 07:31:06 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2382607509fso28891775ad.3 for ; Mon, 21 Jul 2025 04:31:06 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.30.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:31:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097468; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YNAFut7yfNqps0+AcxOkC9eFiWKbZwZH5geqoaKzyjg=; b=Em1VNweyuBiqhg1lDVKttOE28y5EyJ4MjTlcFq2XY57gVi6cNznz05jTyEcPloX6zJuDhh ILvvlLFnS8HFSZs8wMNbh13c1331vBQG+HRqfT059xJNvrhKG5CZ6cYqOLU5aToUyyKkn9 YbV8EKKTxbzvEwiRkZCdhHYmoKikijs= X-MC-Unique: uN4lpQUyOCOyLTgXV55nlA-1 X-Mimecast-MFC-AGG-ID: uN4lpQUyOCOyLTgXV55nlA_1753097466 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097466; x=1753702266; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YNAFut7yfNqps0+AcxOkC9eFiWKbZwZH5geqoaKzyjg=; b=jsgzODc+IawYNJ1r4NsxIrh8SIKjZk5m0ziDgeD2HJ8gVMGZasQ1SbUXqQPzDq/3VM mGD0LB4ncV0O7NKUBuQm3LKj6rSC0KJ/KXFaxYpHKVYzGnYbBTAgJy797IoSgpbe672Y GY5RXpHPkGRdGViNS4wKZ+Kms3ZOtorKpZFolR/BhDrNlqAkjJpzK7Dc8SIPenKUV0d7 ALhRCjjboB8lf0TFASuJXoOwxWWlWKLs/Al9HAqMzhcBJbjTtrKQQfz1CwROgp/h+L7h GBvMr1ovXc5VKNhPaqfQWxHi9fFwEk/arP9zr+MaiH1kEMzS8309wMYnhHej9/TEPWw0 KajA== X-Gm-Message-State: AOJu0Yxuf5Fku7XNbITZY730fXgsx6XH4IyKY1+hIgu0PYn3L/lqYi8N VRPvXWFVFWU8PoB12yaI2TwNgUUa/2ONBPN3BERvxBgM53q7MGxmdkF0BHwrkhXuyu7b2/xPwVX JOrWVuY/tXdfIds7bkxSkAfeXMHGmfI8I1rabEjz/vGYGjYQ8jxbQiebU X-Gm-Gg: ASbGncuGg4lCvj7hipGCaQq8ZAeZ22a9/GG/MQf5y2bd/CFZ2brFWwwEZHx5Q59AcrT P841xCYUyS5f1GkX8SCDL0HxVbiie2AI8gxXqh7G6Jd/qMZDKx8R3Yd2Sk2rRVqyKEptE+14pUv po//tPD5IQiXTp1BfT2MLw290OnOlZQV7MM3NTdW/+Hdvuw+HvO3d8w33PjdQ1WlOEYeIL9Wabv hDqOBxp00ckZcUCcnTSLKPhgXcqOmc/4LQ3+wozf1mHD2z4Pn7MkPGlIHdcSn4VftrTgmS1K3xu k48ePN7ZeXuiRLRBTwcCArT8YBO+LIixfvp7PTBVUe39AF/PA/ks X-Received: by 2002:a17:903:15cc:b0:236:93cb:48b with SMTP id d9443c01a7336-23e24f59db4mr317664225ad.44.1753097465558; Mon, 21 Jul 2025 04:31:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGY9kROTtd0hJCzwz1CZgjMQ4tc66qjE8Q1+uLGQ077NWlYkMfc7ESAgnK5BGrNzzp+hcB6kg== X-Received: by 2002:a17:903:15cc:b0:236:93cb:48b with SMTP id d9443c01a7336-23e24f59db4mr317663785ad.44.1753097465098; Mon, 21 Jul 2025 04:31:05 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:16 +0530 Subject: [PATCH v6 11/24] migration: push Error **errp into loadvm_postcopy_handle_advise() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-11-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4718; i=armenon@redhat.com; h=from:subject:message-id; bh=nhi7k9oAh5EbIvIrP4ZKuTJmCX5yAb6B9YERtNQPqxI=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adykTr/U2BIcLBP/pmmmT/snavmrC074BC6FKOxP9H9 DZaJr3tKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMBE+BkaG3cced8wucFO+P8WF a4Gk+o2NiTemPfZNX7NmpUj5hjUXjBgZPn+aUuv6J7h+74sL7L0+51dF/GJ3jNZNrdh3zV7pxvI YfgA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097719896116600 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 loadvm_postcopy_handle_advise() must report an error in errp, in case of failure. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Arun Menon --- migration/savevm.c | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 6b8c78bfb9bde2a8e7500b0342cd386b0d12db97..4a3db9498678a19597257e68302= 9cd3f6c8d1a65 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1912,39 +1912,39 @@ enum LoadVMExitCodes { * quickly. */ static int loadvm_postcopy_handle_advise(MigrationIncomingState *mis, - uint16_t len) + uint16_t len, Error **errp) { PostcopyState ps =3D postcopy_state_set(POSTCOPY_INCOMING_ADVISE); uint64_t remote_pagesize_summary, local_pagesize_summary, remote_tps; size_t page_size =3D qemu_target_page_size(); - Error *local_err =3D NULL; =20 trace_loadvm_postcopy_handle_advise(); if (ps !=3D POSTCOPY_INCOMING_NONE) { - error_report("CMD_POSTCOPY_ADVISE in wrong postcopy state (%d)", p= s); + error_setg(errp, "CMD_POSTCOPY_ADVISE in wrong postcopy " + "state (%d)", ps); return -1; } =20 switch (len) { case 0: if (migrate_postcopy_ram()) { - error_report("RAM postcopy is enabled but have 0 byte advise"); + error_setg(errp, "RAM postcopy is enabled but have 0 byte advi= se"); return -EINVAL; } return 0; case 8 + 8: if (!migrate_postcopy_ram()) { - error_report("RAM postcopy is disabled but have 16 byte advise= "); + error_setg(errp, "RAM postcopy is disabled but have 16 " + "byte advise"); return -EINVAL; } break; default: - error_report("CMD_POSTCOPY_ADVISE invalid length (%d)", len); + error_setg(errp, "CMD_POSTCOPY_ADVISE invalid length (%d)", len); return -EINVAL; } =20 - if (!postcopy_ram_supported_by_host(mis, &local_err)) { - error_report_err(local_err); + if (!postcopy_ram_supported_by_host(mis, errp)) { postcopy_state_set(POSTCOPY_INCOMING_NONE); return -1; } @@ -1967,9 +1967,9 @@ static int loadvm_postcopy_handle_advise(MigrationInc= omingState *mis, * also fails when passed to an older qemu that doesn't * do huge pages. */ - error_report("Postcopy needs matching RAM page sizes (s=3D%" PRIx64 - " d=3D%" PRIx= 64 ")", - remote_pagesize_summary, local_pagesize_summary); + error_setg(errp, "Postcopy needs matching RAM " + "page sizes (s=3D%" PRIx64 " d=3D%" PRIx64 ")", + remote_pagesize_summary, local_pagesize_summary); return -1; } =20 @@ -1979,17 +1979,17 @@ static int loadvm_postcopy_handle_advise(MigrationI= ncomingState *mis, * Again, some differences could be dealt with, but for now keep it * simple. */ - error_report("Postcopy needs matching target page sizes (s=3D%d d= =3D%zd)", - (int)remote_tps, page_size); + error_setg(errp, "Postcopy needs matching target " + "page sizes (s=3D%d d=3D%zd)", (int)remote_tps, page_si= ze); return -1; } =20 - if (postcopy_notify(POSTCOPY_NOTIFY_INBOUND_ADVISE, &local_err)) { - error_report_err(local_err); + if (postcopy_notify(POSTCOPY_NOTIFY_INBOUND_ADVISE, errp)) { return -1; } =20 - if (ram_postcopy_incoming_init(mis, NULL) < 0) { + if (ram_postcopy_incoming_init(mis, errp) < 0) { + error_prepend(errp, "PostCopy RAM incoming init failed "); return -1; } =20 @@ -2618,12 +2618,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_handle_cmd_packaged(mis, errp); =20 case MIG_CMD_POSTCOPY_ADVISE: - ret =3D loadvm_postcopy_handle_advise(mis, len); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_advise(mis, len, errp); =20 case MIG_CMD_POSTCOPY_LISTEN: ret =3D loadvm_postcopy_handle_listen(mis); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753098049; cv=none; d=zohomail.com; s=zohoarc; b=gKSHUbEUaYnFfVT1UhQr/fR90IcUzaWwJcxSEvKgsxaAK+unkeyFzo+WriPJn1f1y+1vd0EMnRcaVfiEOVAYQgnZlMYn2YcTWc5Sv7jm3m3ppdcZ/ALfwUqOc3ZgU1zo13jXxfYjXaGaYHG12V1I1rW8zEncaMCwT66ZyFf6v8Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753098049; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=IMpQ36kOWIQTJO2jgUaDOO1ImiGekmVsPOUtQMcJ4QY=; b=Ck4Hhj5hy1AqmzS95VIXiSzLgbLnLmKFB9fFmaZ/WdKuDVUhq+B0FZW72fB3a/fXnL6qX8vx6vmCqCmc7p+Dfp/gd2RbwDIkWcnsWddtPW/RfOp6Bmjt1JqByC2s47N93yikgB19ilGqUH+hA6jsVnC81VjgcO6bcPZ88dhqHgs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17530980494231008.781119864362; Mon, 21 Jul 2025 04:40:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udolU-0004yv-Eb; Mon, 21 Jul 2025 07:33:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojq-0001it-RV for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:31:28 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojm-00011y-P4 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:31:22 -0400 Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-401-3pXS2OEpM2ObSwIB-hTgyg-1; Mon, 21 Jul 2025 07:31:15 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-235f77f86f6so40693105ad.2 for ; Mon, 21 Jul 2025 04:31:15 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.31.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:31:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097476; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IMpQ36kOWIQTJO2jgUaDOO1ImiGekmVsPOUtQMcJ4QY=; b=AtClWmrrLl4coHHasR18qkl4EtBcsY+rGmOz3yH+t4H7Rz5D+OyLZOyJrk1xlkB/bItbgI SvY1SlnCPL8Q7Wgse/s4NRJRBYnLVbskjkkWB+kh/TvLsYTQL2qY7C+zWFQnY6JSr3Fh+K cYYOG7MmraZdXf5yupBftHGGGn4dV7c= X-MC-Unique: 3pXS2OEpM2ObSwIB-hTgyg-1 X-Mimecast-MFC-AGG-ID: 3pXS2OEpM2ObSwIB-hTgyg_1753097474 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097474; x=1753702274; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IMpQ36kOWIQTJO2jgUaDOO1ImiGekmVsPOUtQMcJ4QY=; b=GeUhWIXCSmK03JSZyRvoSd/vxuxvHMg/qnJWNhN7fPL893YPip2Wyzb+x7NulcQBuc anc2RAIGLdmVjyp7WEcKYjNHeWeGsVi166Kx/qUjNtXYUZGaCuBJipaIW2XqQnsKysWo O1tJ08gAQw3XuulH1Lmg4LFLCZhAbEjV1ULsRNTUuoCBKNB1E5nIpAZjBz0db9oFL2s6 vI7I1x1+6go5cSF7eW/7t6cQAS85XtzR1dAK2fqsPGdNnQxCJTQCJNDS372gwRqlI//q pa7Q8zVwhovKc5B871OpHkEyWWqk840O29iRhSYDCe/f1lz4HHTtEqFzhRFQl4673C90 pmUw== X-Gm-Message-State: AOJu0YwWPAuZvs1gS4W0yLdfFpxcB2hxeVCe6YFAVp6fpH4VVc0CaDkj tzR6mpdtuInXKAGw+iA+IUvuIV9smImCNVyfAGOHzMHWS+Wcq0m08I9r1+UQ6HGyW006vQ147KY xABS6EAxltEf4lKD72GzExygL5XFnl7949uYSGLeL3SBkClPcCMvYAp5i X-Gm-Gg: ASbGncsAcJdAZ5CZQyM89Og+5Oo12BxSBeRnoJlFNfuGe5PYDfnLV3wDUWqErlgP4lN R1jwHF5QKoVPV5pk8ZlXv8qRqqxpcg3V/7+joZwWUDq0aXv0Bm45E7oHqWlLDDASPYq3EhkgpHf hXXxjzxsvCRqJkV1dumovmK797WXQBKrD+MLdqouJsexEoUQCJIkMOTI+sjhwG19eZE0BSb8VXL Y9uN+H6yVMMXrHspEZ4vtSPYAfH/UxlcUCqoGA357dCIWQV+hkxo13CEz0EKY7bKDVc1ahBd3Y4 HBlCZ/PeB8ME2k8dtFiSU5bpaz1jwMYE1MOoBWf+usB9Ao79LmIJ X-Received: by 2002:a17:902:f64f:b0:22d:b243:2fee with SMTP id d9443c01a7336-23e256addf0mr223612185ad.13.1753097474220; Mon, 21 Jul 2025 04:31:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGD4Xf/gk8LJQ8NCMC6gFW8iNVwY55aKKulVSO16NvoO5yz2/P0G/kwyjqZu/hibwsutJypOg== X-Received: by 2002:a17:902:f64f:b0:22d:b243:2fee with SMTP id d9443c01a7336-23e256addf0mr223611735ad.13.1753097473809; Mon, 21 Jul 2025 04:31:13 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:17 +0530 Subject: [PATCH v6 12/24] migration: push Error **errp into loadvm_postcopy_handle_listen() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-12-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2734; i=armenon@redhat.com; h=from:subject:message-id; bh=icfmsOZ00TKgvbj6eWaydnADKM4+jVfCr9cSUQQ3iak=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adysR36/jDvj+aafplhY+y/eVT105Pv7csTtFCzHRlj /Z6O5MTHaUsDGJcDLJiiiwNXwNkmwIKIyJtX16HmcPKBDKEgYtTACYiuZmRYeJPmdawkz13DGZy HHy8bO4WLZvwmR8Ulv/+VbTkyLb6LD6G/25H18qoz2W22Hv8c7Bh4nSR6Htb0rMMLGzuro9ecEm VlQ0A X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753098143383116600 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 loadvm_postcopy_handle_listen() must report an error in errp, in case of failure. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Arun Menon --- migration/savevm.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 4a3db9498678a19597257e683029cd3f6c8d1a65..09d12dbcf59e2dedd529224f700= 03e6e673442ff 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2179,15 +2179,16 @@ static void *postcopy_ram_listen_thread(void *opaqu= e) } =20 /* After this message we must be able to immediately receive postcopy data= */ -static int loadvm_postcopy_handle_listen(MigrationIncomingState *mis) +static int loadvm_postcopy_handle_listen(MigrationIncomingState *mis, + Error **errp) { PostcopyState ps =3D postcopy_state_set(POSTCOPY_INCOMING_LISTENING); - Error *local_err =3D NULL; =20 trace_loadvm_postcopy_handle_listen("enter"); =20 if (ps !=3D POSTCOPY_INCOMING_ADVISE && ps !=3D POSTCOPY_INCOMING_DISC= ARD) { - error_report("CMD_POSTCOPY_LISTEN in wrong postcopy state (%d)", p= s); + error_setg(errp, "CMD_POSTCOPY_LISTEN in wrong postcopy " + "state (%d)", ps); return -1; } if (ps =3D=3D POSTCOPY_INCOMING_ADVISE) { @@ -2210,14 +2211,14 @@ static int loadvm_postcopy_handle_listen(MigrationI= ncomingState *mis) if (migrate_postcopy_ram()) { if (postcopy_ram_incoming_setup(mis)) { postcopy_ram_incoming_cleanup(mis); + error_setg(errp, "Failed to setup incoming postcopy RAM blocks= "); return -1; } } =20 trace_loadvm_postcopy_handle_listen("after uffd"); =20 - if (postcopy_notify(POSTCOPY_NOTIFY_INBOUND_LISTEN, &local_err)) { - error_report_err(local_err); + if (postcopy_notify(POSTCOPY_NOTIFY_INBOUND_LISTEN, errp)) { return -1; } =20 @@ -2621,12 +2622,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_handle_advise(mis, len, errp); =20 case MIG_CMD_POSTCOPY_LISTEN: - ret =3D loadvm_postcopy_handle_listen(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_listen(mis, errp); =20 case MIG_CMD_POSTCOPY_RUN: ret =3D loadvm_postcopy_handle_run(mis); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753098184; cv=none; d=zohomail.com; s=zohoarc; b=BbTwH5jBUN1FGUfre87v2jJH+DX4ErsLsfbelYbgfM2sKCWivZyRI1chkWDQtU1T07GtdCn9XsX09Cqos6gJ2M/UcqzJIHOWVRz8n41IiMhX3KRWQsoICAVO834K4WF+JysFWN6lUgY01/zCH+MENeHqUtcQc8I2fHlaU0jvaz4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753098184; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zyYz1xtCwZyxn4IXaGpYg4fJLMvtmlv/XpixD4zN4xI=; b=Y4JRakvXw0uCBI5ueVDSaPrhFuEh/eH7WYfZti8OmhapTooG9ka95pzbuVUPQ5cxye6hsmIECIN2kzkkHF1Ju0QxvFeN7uzol8IxDIb8I4WVZk7WS61co6sIYgkoTMmuOcxoSqq02W985ZPKO3osxed9D/vl71EiWu0UMo4hatU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175309818490495.47755649103942; Mon, 21 Jul 2025 04:43:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udonP-0001RP-W8; Mon, 21 Jul 2025 07:35:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoka-0002Hq-Jl for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udojv-00013G-9S for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:31:29 -0400 Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-621-yvgbCSNEMSmSVzcEJ1mAmQ-1; Mon, 21 Jul 2025 07:31:25 -0400 Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b3f321dc6abso1933449a12.1 for ; Mon, 21 Jul 2025 04:31:23 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.31.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:31:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097486; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zyYz1xtCwZyxn4IXaGpYg4fJLMvtmlv/XpixD4zN4xI=; b=f0yGvSVLjmDv/0YR0sYmqI+2zZaqyZRIs37Q82mDXVBLV5fdUCY30eZYmAvQE44aFEFvUM 15dDhVo0T33rHTAC/O/hgOX7YDKgePVCG9p2yGdx1BFoVkzaV8/ZiQq1RNkwJdxIgu+Id6 ItVZmNmLhkGCZt1NJNhPJ/z6+fYByJ4= X-MC-Unique: yvgbCSNEMSmSVzcEJ1mAmQ-1 X-Mimecast-MFC-AGG-ID: yvgbCSNEMSmSVzcEJ1mAmQ_1753097483 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097483; x=1753702283; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zyYz1xtCwZyxn4IXaGpYg4fJLMvtmlv/XpixD4zN4xI=; b=YqpHwVEc2BwSZfFZkeOHNdEQtmQ8yDK3J9jYQuK9hyQ2jiizD5QzZldh7oSXC3BSJR 2Vo5a2hHKBYw9gXy2Ua77b7zW1NtfHFKuSuCAV1xNfOJ75L2V6ULayEEEsgsQzwhHN4+ MAD1me7G53o+7PBAEDuwaySoVKcVnp5pZWgTlX41KtF3AZt8QazMLE+UWQdvnXLuIqfX /PfKwJIOupzuzkFrnk0/2djqnII1//puzB5vYLhlYixLzp/EBOec8zwNssjmfrAwPjT8 nlgj90L2cpw4q7/oHlHXL7oCY+GS6s81I0cmFydXJtC6MNvETXIPP5ZPq1DBXN0GNwLH XPtA== X-Gm-Message-State: AOJu0YwumZCTA2shUfgLN9DgMj+sbm2trGBXKyZX4sG//3QtSNKfjIyv j/vaYR8zEwySKUt0wvv8+jIOxU65otZKXPkLVBDKGIJCW57ryxLuR0hQomLk18XsSbDHk7FZioD atxofXP3x8dfwRz7IXidQ0K+EtR8QATfK7xPpYuVO4TzNaYVGpRk8BOkQ X-Gm-Gg: ASbGncs32ZDoyhJPDTnoUeYTi/PMJq0lU0V54Io0Rf9no9STL+DBpOej2lbGX8Uv/Mf /bR+rwheCDmGPRsy7NFoXDHYk6VCT5IV8KqSefNSBI/dYqHGQgOcbaUS80pRDuhtuM/AVIF/J4g 0oNuh0zAmp7gFIZBdiwC01A4ikPzBhMFM0cp0dgI0LtaMdJQDAFuCQ2GqbT7sI3lyGzTR83zr/p Sd2KXA7G+dUoE7KnchXS1dZBsV5XFOopScyGSCYb7eJjAwWrVlamU3N2hWvSpNBhKESMp2QUx+n 0stmaTE+IUXUQ+NR5zATiCS5FZdlsQzkVGGSWA2k9gTfnA4dDbNc X-Received: by 2002:a17:903:32cc:b0:234:c5c1:9b5f with SMTP id d9443c01a7336-23e256b6e89mr244456555ad.16.1753097482819; Mon, 21 Jul 2025 04:31:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHntwN9CY/ddE+iepBKZfRP4Tl+nIoG+xMRc7ujVb1U4aH+MeR/PyqquRbvhnoPtFl2LqkpSA== X-Received: by 2002:a17:903:32cc:b0:234:c5c1:9b5f with SMTP id d9443c01a7336-23e256b6e89mr244456055ad.16.1753097482402; Mon, 21 Jul 2025 04:31:22 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:18 +0530 Subject: [PATCH v6 13/24] migration: push Error **errp into loadvm_postcopy_handle_run() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-13-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1893; i=armenon@redhat.com; h=from:subject:message-id; bh=TONLV2CnLzLVhvR62svdv6KnanpfdwsJshUlVQ9ywUM=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyqRfemtS04U9z3L+S3nIcHOdj2hNrFSZdRAvO6v8a mnhM94dpSwMYlwMsmKKLA1fA2SbAgojIm1fXoeZw8oEMoSBi1MAJtK1npHh4IkZb7sd3basiav5 vULs7mPjBq/l0X1V2ZNiKhX6Xk+2YPjDNa1028m2zsQHZmp3Z2w79c4x4/W0K+aa4Ru2uMnZ3dn HDgA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753098190609116600 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 loadvm_postcopy_handle_run() must report an error in errp, in case of failure. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Arun Menon --- migration/savevm.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 09d12dbcf59e2dedd529224f70003e6e673442ff..856ec984e1ab09f5fddfd30eeb5= 9e73a4c981697 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2271,13 +2271,14 @@ static void loadvm_postcopy_handle_run_bh(void *opa= que) } =20 /* After all discards we can start running and asking for pages */ -static int loadvm_postcopy_handle_run(MigrationIncomingState *mis) +static int loadvm_postcopy_handle_run(MigrationIncomingState *mis, Error *= *errp) { PostcopyState ps =3D postcopy_state_get(); =20 trace_loadvm_postcopy_handle_run(); if (ps !=3D POSTCOPY_INCOMING_LISTENING) { - error_report("CMD_POSTCOPY_RUN in wrong postcopy state (%d)", ps); + error_setg(errp, "CMD_POSTCOPY_RUN in wrong postcopy " + "state (%d)", ps); return -1; } =20 @@ -2625,12 +2626,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_handle_listen(mis, errp); =20 case MIG_CMD_POSTCOPY_RUN: - ret =3D loadvm_postcopy_handle_run(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_run(mis, errp); =20 case MIG_CMD_POSTCOPY_RAM_DISCARD: ret =3D loadvm_postcopy_ram_handle_discard(mis, len); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753098284; cv=none; d=zohomail.com; s=zohoarc; b=G0Dx+IB8ao1XQn0IvnYMQV6QXKxKiLbdpJMdJGbO4jc6CFUJb76Z4IJBmWsAlMWibfTvMPmzx5un0D/y6aKQRN6F9Xrn3+TsnpmjxbXMXlHp/HuF8TiVcIY7fkV3CDDkmv2nHfD4hXu2tL40P1NkQn0AbIsxiFQfbYulR0Ee/5c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753098284; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4rWgZekE9P/3ziG+RiG2hpPU1qFiLS5Bi7zv2TJ7d3w=; b=e1mSUEsIxa3qz+JPX9QswI2kRqNSZRdBsbGLU9BBOgcn1Hoeyfwk859Ru1bhY4OKmXdDCCAjzfFyicV45FH+MDgOTII6gZTJHXblLqRgOEwVY4xC5j75rOVaieoRlc0AARJAL5n6fcJ8i2zN1jt5uNgbvBiCwz8rpSN+h3KqY2Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753098284347742.6345007880685; Mon, 21 Jul 2025 04:44:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udon7-0000Bi-Iy; Mon, 21 Jul 2025 07:34:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoka-0002Hy-I1 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udok3-00014L-KC for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:31:37 -0400 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-660-Fv9WlApZOH2LfjOs7aXduA-1; Mon, 21 Jul 2025 07:31:32 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2355651d204so36915735ad.2 for ; Mon, 21 Jul 2025 04:31:32 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.31.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:31:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097493; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4rWgZekE9P/3ziG+RiG2hpPU1qFiLS5Bi7zv2TJ7d3w=; b=Xoyv2yVtFw8yvkMlYEbGvC5cMk2t3/nHLDD+d3JYyRlLi/ZSK2AwyjLxRSNDvvOOxMnLay UqFR6WZJ88DVcJXPRJ5IcnQ/UQe9wcF5gp/e7wR4xco52ZbNuvEvaVA/EqBWEpriHbUIKZ 6ah099q92rK7vlr/NnEjyW2kfGQ8CaA= X-MC-Unique: Fv9WlApZOH2LfjOs7aXduA-1 X-Mimecast-MFC-AGG-ID: Fv9WlApZOH2LfjOs7aXduA_1753097491 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097491; x=1753702291; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4rWgZekE9P/3ziG+RiG2hpPU1qFiLS5Bi7zv2TJ7d3w=; b=hRnYqJOMaOQOC8XG30LO19F3qm9HpysduwVIslMKnG5UlPHzasw4Ka1c+2s82+AaC5 CJQxrC2gOuAkbOh+vD5IdqBRauQ90FC0UNzPDZTG/hg4HhZmtaQ/YGNdKJoZunCWuVNO EHbE+uUDY6Ty7dHjiiB+ji9rn94jVabn/dp+XXb0NDv81inEqad04UDJSRFUJ5CAJyr0 JFbusENpXSlvg/4wsFGMGyMreJbuRODCOST+NbHQOkdCz1uyd0SMrEGxACvZg9HUAf/d mKqEU6k1jTcOhb1/z/DXtylNVtZqpJOjVNRMj1y5D/cofO//RPKmHaO9qA8nIpVa/D2N 6nTw== X-Gm-Message-State: AOJu0Ywe/uqhF118aqwDlUIyiUpdMrIgDzfgGIZbsExG+4k/A8bcGriZ +0n7v+qlDoEtALijpgoqBvy73Y14qvG09jkNV44XPcw3XZj7Cih8Jzt6yNtMePybqqEdoc8b5Iz /hyWkLg+3RZaUhI37w6p+IV4PE9xfdgA6k15gCkJgn4kuaF9I+Qc1EtBLB0adyj3IFW4= X-Gm-Gg: ASbGnctkrT35XKiyx0/fgKT+s/G/3/jvUJIIFurdXzqGU53E4b0+EaUfc8L/KJRq9SU S6z+MgyBrqJy8Tv95Omi8UVLLizTTT4H4P+oA2UoskAUFbEbpM4cIh5WvMEZsBF0AkZWsZCb/Dz H8mGVQgMI/luRirNXhbLljpCICPRPdO+j0Ps6TVrtVg/hWHIT3CZAbloWWr4ujU7ehrWIXu0nZY 0Zv1XEk5teOjCFEf/FAZBJ65J/LafusHoOF7+TpguzFZBv8xXbcTVWfwWM7xI4yGbWEuGaYX3cO qhK4kB0bQDlaHJqVmCGRcGD/n/bs7PCLsiWnSUEyuJPn3a3pGd7h X-Received: by 2002:a17:903:b8d:b0:234:986c:66bf with SMTP id d9443c01a7336-23e24ec7396mr259909755ad.11.1753097491166; Mon, 21 Jul 2025 04:31:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH+QoW6Q54ReVxycAZ5mn6A4ZByG8DrYGxfw5a4vjJUCtWPBl+dCeQWdCchSCbshKrzv95y3w== X-Received: by 2002:a17:903:b8d:b0:234:986c:66bf with SMTP id d9443c01a7336-23e24ec7396mr259909355ad.11.1753097490737; Mon, 21 Jul 2025 04:31:30 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:19 +0530 Subject: [PATCH v6 14/24] migration: push Error **errp into loadvm_postcopy_ram_handle_discard() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-14-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4236; i=armenon@redhat.com; h=from:subject:message-id; bh=GTdxve+ao/QNKIL21QQ7e2lxPTjzHDIxSagvmpEMyv0=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyqS1zOLTVU+eO8Ghmi29wCbv1ZKgwAY3z3kvTYXSJ 29lst/aUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCL3oxj+ZyqF3U2e5brsaezs CRbzlhfd7GXdLtI5STryrcuMVoupvxj+6XZMPXs8sVfi5NnLPxw0Zi+rVXe6t8kwSlCs/+LGZpf /HAA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753098286225116600 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 loadvm_postcopy_ram_handle_discard() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/savevm.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 856ec984e1ab09f5fddfd30eeb59e73a4c981697..e472f79d5d5c4fb4410a28cbf43= c298be028f4b4 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2002,7 +2002,7 @@ static int loadvm_postcopy_handle_advise(MigrationInc= omingState *mis, * There can be 0..many of these messages, each encoding multiple pages. */ static int loadvm_postcopy_ram_handle_discard(MigrationIncomingState *mis, - uint16_t len) + uint16_t len, Error **errp) { int tmp; char ramid[256]; @@ -2015,6 +2015,7 @@ static int loadvm_postcopy_ram_handle_discard(Migrati= onIncomingState *mis, /* 1st discard */ tmp =3D postcopy_ram_prepare_discard(mis); if (tmp) { + error_setg(errp, "Failed to prepare for RAM discard: %d", tmp); return tmp; } break; @@ -2024,8 +2025,8 @@ static int loadvm_postcopy_ram_handle_discard(Migrati= onIncomingState *mis, break; =20 default: - error_report("CMD_POSTCOPY_RAM_DISCARD in wrong postcopy state (%d= )", - ps); + error_setg(errp, "CMD_POSTCOPY_RAM_DISCARD in wrong " + "postcopy state (%d)", ps); return -1; } /* We're expecting a @@ -2034,29 +2035,30 @@ static int loadvm_postcopy_ram_handle_discard(Migra= tionIncomingState *mis, * then at least 1 16 byte chunk */ if (len < (1 + 1 + 1 + 1 + 2 * 8)) { - error_report("CMD_POSTCOPY_RAM_DISCARD invalid length (%d)", len); + error_setg(errp, "CMD_POSTCOPY_RAM_DISCARD invalid length (%d)", l= en); return -1; } =20 tmp =3D qemu_get_byte(mis->from_src_file); if (tmp !=3D postcopy_ram_discard_version) { - error_report("CMD_POSTCOPY_RAM_DISCARD invalid version (%d)", tmp); + error_setg(errp, "CMD_POSTCOPY_RAM_DISCARD invalid version (%d)", = tmp); return -1; } =20 if (!qemu_get_counted_string(mis->from_src_file, ramid)) { - error_report("CMD_POSTCOPY_RAM_DISCARD Failed to read RAMBlock ID"= ); + error_setg(errp, "CMD_POSTCOPY_RAM_DISCARD Failed to read " + "RAMBlock ID"); return -1; } tmp =3D qemu_get_byte(mis->from_src_file); if (tmp !=3D 0) { - error_report("CMD_POSTCOPY_RAM_DISCARD missing nil (%d)", tmp); + error_setg(errp, "CMD_POSTCOPY_RAM_DISCARD missing nil (%d)", tmp); return -1; } =20 len -=3D 3 + strlen(ramid); if (len % 16) { - error_report("CMD_POSTCOPY_RAM_DISCARD invalid length (%d)", len); + error_setg(errp, "CMD_POSTCOPY_RAM_DISCARD invalid length (%d)", l= en); return -1; } trace_loadvm_postcopy_ram_handle_discard_header(ramid, len); @@ -2068,6 +2070,7 @@ static int loadvm_postcopy_ram_handle_discard(Migrati= onIncomingState *mis, len -=3D 16; int ret =3D ram_discard_range(ramid, start_addr, block_length); if (ret) { + error_setg(errp, "Failed to discard RAM range %s: %d", ramid, = ret); return ret; } } @@ -2629,12 +2632,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_handle_run(mis, errp); =20 case MIG_CMD_POSTCOPY_RAM_DISCARD: - ret =3D loadvm_postcopy_ram_handle_discard(mis, len); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_ram_handle_discard(mis, len, errp); =20 case MIG_CMD_POSTCOPY_RESUME: ret =3D loadvm_postcopy_handle_resume(mis); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097833; cv=none; d=zohomail.com; s=zohoarc; b=BtKuDFCYzONHK6pIaG0PY0faSI0Fri1PSBm6dk2TnIk6gSxWbo632O0gfNYd2ZR5h+cvdxQV7Tj92mmcz4sZhbUdT1/RhjgTUJ6796LWtZIT5vpjmf/aF0FQAZU/TJBqGCoSCWJM52ql8LYTcJedmYix459jZzf8PamTL3K888Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097833; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=I7VGnOwoyFn98Un1Ij+29GHLk64B6WUjjj3kHRHHzyQ=; b=C7a3rWwHNfNGwH5va4SOHRJqzhTcSqYA7V2dQ2Lgmu/v+Zc6foiy60nnee0xBqjhQCZR4MH15eReLmuLaa60S43h+fSjeyKdNvMXakuCpdR/08FcRyp78NVtGJiiEhEa99rde1UKC8zljUS79axphPVKPMcePmCTN0G4Y4+O9MQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097833648523.8323962242781; Mon, 21 Jul 2025 04:37:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udon6-0008TG-SI; Mon, 21 Jul 2025 07:34:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoka-0002I3-Er for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udokC-00015d-A1 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:31:46 -0400 Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-467-l6csU5TiMfuxlXhCPnRmfA-1; Mon, 21 Jul 2025 07:31:40 -0400 Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b31c38d4063so2968238a12.3 for ; Mon, 21 Jul 2025 04:31:40 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.31.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:31:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097502; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=I7VGnOwoyFn98Un1Ij+29GHLk64B6WUjjj3kHRHHzyQ=; b=U3mfZkLRfYvUjr9BpVn97sqDSE22gDxxpMDim9p+MXVuqkvdRCMgxBbrVZOGhCSB7H9s9m ZQS2uMYZsQCTUIl5Ebm2boZRiVspNL/VniGP5XqeRqV6dThzU+xen89Xw73LWtai3q9SsQ ziDie3CoH3eRvnhcQ9GQk7PTP7woMhI= X-MC-Unique: l6csU5TiMfuxlXhCPnRmfA-1 X-Mimecast-MFC-AGG-ID: l6csU5TiMfuxlXhCPnRmfA_1753097500 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097500; x=1753702300; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=I7VGnOwoyFn98Un1Ij+29GHLk64B6WUjjj3kHRHHzyQ=; b=SzWRGtE8bKR7tpkrwSnHD+Fb+PsypY+6GVqH7yxt9KUxvEo4IFO8JzLsjZw4h6/7Qd r+uhYNYKCQNi8YJKlLK475ArLvGfsJZxB6V7spuPnDuky4ZCqFwEmNTMCyRmwGCNyw62 7yAgVoICPlrALHeud8aTSvywfBB/8pohHtUMKMl818kuQbrnWA+xx0zsA0lYCxrMSaRx NORb6rAC8JLLQ85DpnPFK43NmhUsExRhzOVipqAbXtnR4KF2Qh463f695Ovm8wTD9Eza cEgLkwWx1mQ0e06nLX2eYcvCAf+WpicnXSsN1CxjdMD/BmpGsvE9ZOWhrRHPGWUuSzWe Rgwg== X-Gm-Message-State: AOJu0YyXtgvh8Mg8Bl4BairVyM7uCHejMFsD3fjwqIA/tUqKT0t1y+OX ZaktMLM+NWSvCWxp315WpTd4tR5xpTkBZZQr1i8Xoh/k8BXga5WaRsrIF7A89dCbwUi+m1arrg/ 6gs3gdfpKz5GVlGafseOtHmR+72P+W1MA2LX6nilWUpirGIC2eiretNzM X-Gm-Gg: ASbGncsyASfHTRVR4fjAkwSKqb6tDZu+OMQzjBGR+tet4J/olJK+gzNlaZNHkxQMqPe KMzAs24nqWBPB0YpD/0ISPGmb/vUOodpKqbQDWYcbwMLeQNe0DFCDyRLXfsKNkhzug59cxme5bW dDc7+YkzrId/U0mWLlK610ke6u+qa8dKry51S7vi8/LopUHlWuGPT8LBGwQEO1afWN2jRvvnsZd p1TzWr+P0hLxWxXRs786dA7a47qDchD3Q8PGeAS90LZvPuj0UOcKUHe/sD7WrySObq0pSPGngRC OYxdGsVJSTyZIoP6iHhLSlBk/1trJ5ojhQDzKe3s6plfg6qv32OU X-Received: by 2002:a17:903:2445:b0:235:737:7ba with SMTP id d9443c01a7336-23e2576c4f6mr284712995ad.44.1753097499683; Mon, 21 Jul 2025 04:31:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEy0SP0IPtWt7rG2CJ22+EOG3rH9Em2wLiPcQAus+iR9qnfli/f/Z0PcqZLFOIX0YI2Gf6t4w== X-Received: by 2002:a17:903:2445:b0:235:737:7ba with SMTP id d9443c01a7336-23e2576c4f6mr284712315ad.44.1753097499213; Mon, 21 Jul 2025 04:31:39 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:20 +0530 Subject: [PATCH v6 15/24] migration: make loadvm_postcopy_handle_resume() void MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-15-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1948; i=armenon@redhat.com; h=from:subject:message-id; bh=h1O+tXSFamRYzpOUqPME/GZKWYiLv8KlGKDDwk+ohfo=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyqRJGQ/XfBaflut0UOtR5yvHTZoz2KIX8TClaK/Ti tqkepmno5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwETqZjH8FWytqVOZ4S8y7cff BT0nap7Ls/Q780nl796a625w55t5OsN/P98Fmy1Z/2+W1Vl2Sc355MR/6Y76OgsYzdVe/7Zn6m7 kAAA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097834872116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Arun Menon --- migration/savevm.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index e472f79d5d5c4fb4410a28cbf43c298be028f4b4..6887877f2f8648f66e34bdb1cc3= ca6dc7514f9df 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2339,12 +2339,12 @@ static void migrate_send_rp_req_pages_pending(Migra= tionIncomingState *mis) } } =20 -static int loadvm_postcopy_handle_resume(MigrationIncomingState *mis) +static void loadvm_postcopy_handle_resume(MigrationIncomingState *mis) { if (mis->state !=3D MIGRATION_STATUS_POSTCOPY_RECOVER) { - error_report("%s: illegal resume received", __func__); + warn_report("%s: illegal resume received", __func__); /* Don't fail the load, only for this. */ - return 0; + return; } =20 /* @@ -2396,8 +2396,6 @@ static int loadvm_postcopy_handle_resume(MigrationInc= omingState *mis) /* Kick the fast ram load thread too */ qemu_sem_post(&mis->postcopy_pause_sem_fast_load); } - - return 0; } =20 /** @@ -2635,12 +2633,8 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_ram_handle_discard(mis, len, errp); =20 case MIG_CMD_POSTCOPY_RESUME: - ret =3D loadvm_postcopy_handle_resume(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + loadvm_postcopy_handle_resume(mis); + return 0; =20 case MIG_CMD_RECV_BITMAP: ret =3D loadvm_handle_recv_bitmap(mis, len); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097754; cv=none; d=zohomail.com; s=zohoarc; b=b7O0jN6Jspduu7+PCi/Yl/sL9cks7iLkNeq7TfRWgEMl0zGoSS32FKha02Gz54DkhD8FsAjneaztbnK1ElaB/ZvVIKwBy0k9zhfGSE1hndp68G0Cq98rTc3fyIvyf8tpD2ZbpF8kJbcgBI2Vl0O9RkHWB92W5yrzm8c+1LmxLfw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097754; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=mUM5772vsSX7ZjZ2vpHNCeAj3DyDYNqqKnzF3WiJt+E=; b=DxV5PUMEgYmYsP/0rC9FCLUhbHPONPr8ugnilBS+/MFBCb7dH7MtL+vp3QkfKtFagyYbFes/hAfBUaF47vcmyKslKxUN0pndg2s1XXmdj5z9CuGX0qBkykUe5eW3a5H/jCIa7XvwJ0vxUyIT4ah8/Md2RhwfhgTHR0+4xKnZuoI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175309775414649.802254756163165; Mon, 21 Jul 2025 04:35:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udonk-0002O5-Ch; Mon, 21 Jul 2025 07:35:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoka-0002Io-Ib for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udokJ-00016e-JH for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:31:56 -0400 Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-569-YVf3gezyMGqpjhFT27rhew-1; Mon, 21 Jul 2025 07:31:49 -0400 Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-b2c36d3f884so2842660a12.2 for ; Mon, 21 Jul 2025 04:31:49 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.31.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:31:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mUM5772vsSX7ZjZ2vpHNCeAj3DyDYNqqKnzF3WiJt+E=; b=InBj11VdR3FIpvLsGiv4KjSu752xtbu69udd2Rj0TykNM2U6BwUuqQqE1ROWJLH2lOdrNe Qx9THQ2aymbQBytFNuJMlc2KxzmGQM6lgt6jD+KBeWnBeIwNFC1VqA0sHDlDH+w6EKjaFJ jNqan7vTk9oGRmtWruP6h4bz7CJWTeE= X-MC-Unique: YVf3gezyMGqpjhFT27rhew-1 X-Mimecast-MFC-AGG-ID: YVf3gezyMGqpjhFT27rhew_1753097508 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097508; x=1753702308; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mUM5772vsSX7ZjZ2vpHNCeAj3DyDYNqqKnzF3WiJt+E=; b=kPuW4j5xjYj4w1dToOrhMyFRB6G4iQluWNFYMLNqjrH1CZHY4oas2wazetus2fdzPu ZGUZw0y3VO5KraaMY+DfQ5VRGG5/HaTJDjgVzrfBUaPGFZDkH9HKO6lJ5QjfbpZwSVJw xpfwubcl4alax+Rq+J55lsSMaGexqaD4v2Pr5/Go91qoEKxKVIKPP6HgHonzE+t5UVcZ 1vneRB/bhae1qXF1vjsNNoQnRCWRrBo1g1r4eYU6Mqi/yQS1o4qSOu80VbBu9zgur5N5 950nWSQZljYtUueAQoBdO4apvY1al3QzTU0z0THxW+qTW3Cd2Pcm4SUCY0ClIeOH3n71 IGIw== X-Gm-Message-State: AOJu0YyW1utRd3f7cZvjPTl/Tgg/M4Z9v1RshzF5AiBOFH33veKC6Jka CHu9mPRyzZksAAVqah8SA7ezRRaky72PvFxTguWr19PFbrg3c+oI5VpZ1rZsGqBoCGTWSqz9wtB +Vaz4OM3+/1q2ULGgDRZ9Ol5nA7oVelC1ozw6toYtqPoYK8H9GECyTytQ X-Gm-Gg: ASbGncuiruMf5qgEdutaZZF0kEIQrFQk72NXorzi6MgI5H7yhLk9umX+5GJgLJk6PSf vEhHfGaC1ltKAGMQrexSIB06g54YFhZduYgDvsm50wnBL44mBGpvNgVeSZv8kI1EKsxRBuEfiSv mt/pR7rSI3ockJPZFxgCT+I8o8kgfTFoKhNqHz15cT92O/p9PzhrAc5SqjP9md7HnzzmlP+gHmj EU8oNwMQriqJ+yfByZBLUTxoqSBK4IvyUYqq3Vf7Y7uwmQMsUlMjF21bt62Zi0GMRPoMYarmX74 6A/CUUFUnzCQrfx7niUSKJdmIK+cI0oOeRH98yTTDH7la3REy44i X-Received: by 2002:a17:90b:1c07:b0:311:e8cc:4264 with SMTP id 98e67ed59e1d1-31c9f3decd2mr29032432a91.12.1753097508198; Mon, 21 Jul 2025 04:31:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH96STyelzBY9GN63m0qhdEKzTf4w8TyLJDxbiQOU3O4q8y3Pqr2wHfv5huvIZRbpsEhlnWNg== X-Received: by 2002:a17:90b:1c07:b0:311:e8cc:4264 with SMTP id 98e67ed59e1d1-31c9f3decd2mr29032395a91.12.1753097507778; Mon, 21 Jul 2025 04:31:47 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:21 +0530 Subject: [PATCH v6 16/24] migration: push Error **errp into loadvm_handle_recv_bitmap() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-16-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2640; i=armenon@redhat.com; h=from:subject:message-id; bh=BrfP4AuOJ2araX/go8A+EVA+UVEeb9rKZaVrCGv3cus=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyiR+w7S6h+8rT3Iq3HCemM5i+vxMifC7DSpfGpfWN Wb+MwjuKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMJFrXgz/FNzSnk6sXaam/YCn WGWiZwpL8ZT4Ns0yTr5wlRDveZknGBmabGOX9FY/sPC/0PyV4bknc2j+7afuGmKXVr4W3Bu6OJw ZAA== X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, T_SPF_TEMPERROR=0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097756573116600 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 loadvm_handle_recv_bitmap() must report an error in errp, in case of failure. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Arun Menon --- migration/savevm.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 6887877f2f8648f66e34bdb1cc3ca6dc7514f9df..011f4032d582e64b112313e783e= 0cbf98822292d 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2477,32 +2477,35 @@ static int loadvm_handle_cmd_packaged(MigrationInco= mingState *mis, Error **errp) * len (1 byte) + ramblock_name (<255 bytes) */ static int loadvm_handle_recv_bitmap(MigrationIncomingState *mis, - uint16_t len) + uint16_t len, Error **errp) { QEMUFile *file =3D mis->from_src_file; RAMBlock *rb; char block_name[256]; size_t cnt; + int ret; =20 cnt =3D qemu_get_counted_string(file, block_name); if (!cnt) { - error_report("%s: failed to read block name", __func__); + error_setg(errp, "failed to read block name: %s", block_name); return -EINVAL; } =20 /* Validate before using the data */ - if (qemu_file_get_error(file)) { - return qemu_file_get_error(file); + ret =3D qemu_file_get_error(file); + if (ret < 0) { + error_setg(errp, "migration stream has error: %d", ret); + return ret; } =20 if (len !=3D cnt + 1) { - error_report("%s: invalid payload length (%d)", __func__, len); + error_setg(errp, "invalid payload length (%d)", len); return -EINVAL; } =20 rb =3D qemu_ram_block_by_name(block_name); if (!rb) { - error_report("%s: block '%s' not found", __func__, block_name); + error_setg(errp, "block '%s' not found", block_name); return -EINVAL; } =20 @@ -2637,12 +2640,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return 0; =20 case MIG_CMD_RECV_BITMAP: - ret =3D loadvm_handle_recv_bitmap(mis, len); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_handle_recv_bitmap(mis, len, errp); =20 case MIG_CMD_ENABLE_COLO: ret =3D loadvm_process_enable_colo(mis); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097929; cv=none; d=zohomail.com; s=zohoarc; b=StPE3vJzcacKIw9WkSOOKNBczSOwznPUQbJsI+607ooerUU9TRvBrHJ/7MifeWp+EWDeBWq3zRS+6DXDaAJMij4sfxvj24/P58ylL6FPd4q2V77aLpCCeI5Xo/dXBSxcxNex+64Ks06E1vTowvnHlfhfmBoQr7TOt/0Mx/572ws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097929; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WWnnOOZssAqy+ZivYvKk/9N+LTPqGJXTfjoJczUreUg=; b=A5f6P7zImT/Nj48GNIKt2UTQl5GpEH5ZqzP8e7SNdi2toQFYpvCt8YybgYy6p/BtJuWtazDwjscxkEieLRb7iUl34N9ZE6SX6YsiXHE7iyJNc/gP2D6UZMp07IBSBLXZ7ISnEjV1Nz58zy4Vikc7739Lv2h9frJlJ1spwL0aDeg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097929123706.2676742551282; Mon, 21 Jul 2025 04:38:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udond-0002KA-Tq; Mon, 21 Jul 2025 07:35:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udokb-0002Li-B4 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udokU-00017d-GB for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:08 -0400 Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-426-utNHxxTFNl2a_BRKq3OtLA-1; Mon, 21 Jul 2025 07:32:00 -0400 Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-235f77f86f6so40697175ad.2 for ; Mon, 21 Jul 2025 04:31:59 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.31.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:31:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097521; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WWnnOOZssAqy+ZivYvKk/9N+LTPqGJXTfjoJczUreUg=; b=h51mWyLCxFXBSS/5rsBYv69onpMYZ5SdgOtPuCvVD27sdYcf3mWjHtVHzgx9xCu+aM/PYg GO0p4WLG+gf478AveYiwmgMjuYhitbwjGGYki2nDHCItjS1QcuFAZ059zfZUK4xWuv8JS6 /CS4eRMXhArOMPVUmw8TOmCYA1TTHg0= X-MC-Unique: utNHxxTFNl2a_BRKq3OtLA-1 X-Mimecast-MFC-AGG-ID: utNHxxTFNl2a_BRKq3OtLA_1753097519 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097517; x=1753702317; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WWnnOOZssAqy+ZivYvKk/9N+LTPqGJXTfjoJczUreUg=; b=J1mI22HjPwd0zzqtAmtu4AVovnCu3qhqSdiW/11+qYFAP04/v+RIkKmrvYlHaSZNAM 7UvwB751YVxbS43bTDgVqBDizGIOBkQfEneg7tGY0Vun3ftHb3Dmvve/jw5iIiPDnQwb /X/uvv6hJDSf1UarMI0IfXhKgLtg8Q79hd77pzezpbJZ92gcpUVQlm5dJgSt4+vl/iSG ywmqjKtM3xcRXOLb5PXXaBLioOXzFzeuru9UP0d65YKExSTA3uD61F/VoBvwLzxsejux eZ/xYEujScF/fy4ZqRd3gxSb7AYQxz3yadxHShpVS13ubSuyyheFhrO+u1AK5MwMgV16 EH9g== X-Gm-Message-State: AOJu0YztnACh66WmlHW+f9wGla03XZM1Y7wZM88jT3dGkgDrhEebqZpc QrzxPcOHQRzoeC1nbDA+99a3lpTgpX3rAt3chBQO2y+L2WW/qfVOgaxS8MtKOepUq3qzmjKqxc7 +DC2it4zCF/QNgfAxbzmHxU9PkFeHJE9NyBQ06I4vlS7f8+eM7notpeOi X-Gm-Gg: ASbGncsKv9Xqw/QC1gKmB8jJN++i6PUeAHjWqFzJuCiA6fqVcLG2b/gHpdUbmkqk7vX Y0fXs932FF6VNnhb4NVs+7DA2V0FNCg9OYMsgZsZSdAqSq+03bTbMYzLAvhPmQwuhC+SsTTMogU UQN4xplbTVMXSd/3q6R5iI12FhXW8YRXoCBXOCQDGH2IinE09v9Io0KfGljhxz37vCFRvJoOpO3 0EMLYfTfqBUl+9U5qIo5j3dboyOaK3eVS8pA0lf3R4PPs83d6pmD+5Z4KcFf3pxjmEPP8E7hzBQ rwqeDpzl8i0t7kCVKS0oNyYSGeA+jPn/9XG87uxIX97X70byYCtF X-Received: by 2002:a17:902:e547:b0:235:eb71:a37b with SMTP id d9443c01a7336-23e25776833mr358039255ad.46.1753097516750; Mon, 21 Jul 2025 04:31:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGqgn34/n2Ilewer2uwVwTMw2zmRzex15pb1m/5YHCQxBHtm9Do0gvIOGCyR+OazLF0VjavoA== X-Received: by 2002:a17:902:e547:b0:235:eb71:a37b with SMTP id d9443c01a7336-23e25776833mr358038605ad.46.1753097516287; Mon, 21 Jul 2025 04:31:56 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:22 +0530 Subject: [PATCH v6 17/24] migration: push Error **errp into loadvm_process_enable_colo() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-17-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5943; i=armenon@redhat.com; h=from:subject:message-id; bh=Ms0bgiemTO9y3dtp+EfTX+VE/wxDPLWcxN1XKLTV/Vk=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyqRfFsenbVzjlSGx8OYHk4WzHA6v9T26/ePEMD+3r beL5+b5dJSyMIhxMciKKbI0fA2QbQoojIi0fXkdZg4rE8gQBi5OAZhIczfD/1R+r3q2u9u2LVT4 wLLvHJNv2crgOVoR6hOYX2w62bG0ip/hv+8JW+2OT3rZdnq86XovN6SIPz1pxSiQaXTjD2/nOSc nVgA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097930006116600 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 loadvm_process_enable_colo() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- include/migration/colo.h | 2 +- migration/migration.c | 12 ++++++------ migration/ram.c | 8 ++++---- migration/ram.h | 2 +- migration/savevm.c | 26 +++++++++++++------------- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index 43222ef5ae6adc3f7d8aa6a48bef79af33d09208..d4fe422e4d335d3bef4f860f564= 00fcd73287a0e 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -25,7 +25,7 @@ void migrate_start_colo_process(MigrationState *s); bool migration_in_colo_state(void); =20 /* loadvm */ -int migration_incoming_enable_colo(void); +int migration_incoming_enable_colo(Error **errp); void migration_incoming_disable_colo(void); bool migration_incoming_colo_enabled(void); bool migration_incoming_in_colo_state(void); diff --git a/migration/migration.c b/migration/migration.c index b3bccaeaee806abd01595863f6475057049b0688..d748a02712dc4ebc2de6b0488fb= 199c92c4d4079 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -623,22 +623,22 @@ void migration_incoming_disable_colo(void) migration_colo_enabled =3D false; } =20 -int migration_incoming_enable_colo(void) +int migration_incoming_enable_colo(Error **errp) { #ifndef CONFIG_REPLICATION - error_report("ENABLE_COLO command come in migration stream, but the " - "replication module is not built in"); + error_setg(errp, "ENABLE_COLO command come in migration stream, but th= e " + "replication module is not built in"); return -ENOTSUP; #endif =20 if (!migrate_colo()) { - error_report("ENABLE_COLO command come in migration stream, but x-= colo " - "capability is not set"); + error_setg(errp, "ENABLE_COLO command come in migration stream" + ", but x-colo capability is not set"); return -EINVAL; } =20 if (ram_block_discard_disable(true)) { - error_report("COLO: cannot disable RAM discard"); + error_setg(errp, "COLO: cannot disable RAM discard"); return -EBUSY; } migration_colo_enabled =3D true; diff --git a/migration/ram.c b/migration/ram.c index 8223183132dc0f558f45fbae3f4f832845730bd3..607c979cc15a3d321e5e3e380ac= 7613d80d86fc9 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3576,7 +3576,7 @@ static void colo_init_ram_state(void) * memory of the secondary VM, it is need to hold the global lock * to call this helper. */ -int colo_init_ram_cache(void) +int colo_init_ram_cache(Error **errp) { RAMBlock *block; =20 @@ -3585,9 +3585,9 @@ int colo_init_ram_cache(void) block->colo_cache =3D qemu_anon_ram_alloc(block->used_length, NULL, false, false); if (!block->colo_cache) { - error_report("%s: Can't alloc memory for COLO cache of blo= ck %s," - "size 0x" RAM_ADDR_FMT, __func__, block->idst= r, - block->used_length); + error_setg(errp, "%s: Can't alloc memory for COLO cache of= " + "block %s, size 0x" RAM_ADDR_FMT, __func__, + block->idstr, block->used_length); RAMBLOCK_FOREACH_NOT_IGNORED(block) { if (block->colo_cache) { qemu_anon_ram_free(block->colo_cache, block->used_= length); diff --git a/migration/ram.h b/migration/ram.h index 275709a99187f9429ccb4111e05281ec268ba0db..24cd0bf585762cfa1e86834dc03= c6baeea2f0627 100644 --- a/migration/ram.h +++ b/migration/ram.h @@ -109,7 +109,7 @@ void ramblock_set_file_bmap_atomic(RAMBlock *block, ram= _addr_t offset, bool set); =20 /* ram cache */ -int colo_init_ram_cache(void); +int colo_init_ram_cache(Error **errp); void colo_flush_ram_cache(void); void colo_release_ram_cache(void); void colo_incoming_start_dirty_log(void); diff --git a/migration/savevm.c b/migration/savevm.c index 011f4032d582e64b112313e783e0cbf98822292d..49eb629a8dcd909274e78ecb2f3= 1eb10f57c5425 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2516,15 +2516,20 @@ static int loadvm_handle_recv_bitmap(MigrationIncom= ingState *mis, return 0; } =20 -static int loadvm_process_enable_colo(MigrationIncomingState *mis) +static int loadvm_process_enable_colo(MigrationIncomingState *mis, + Error **errp) { - int ret =3D migration_incoming_enable_colo(); + int ret; =20 - if (!ret) { - ret =3D colo_init_ram_cache(); - if (ret) { - migration_incoming_disable_colo(); - } + ret =3D migration_incoming_enable_colo(errp); + if (ret < 0) { + return ret; + } + + ret =3D colo_init_ram_cache(errp); + if (ret) { + error_prepend(errp, "failed to init colo RAM cache: %d", ret); + migration_incoming_disable_colo(); } return ret; } @@ -2643,12 +2648,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_handle_recv_bitmap(mis, len, errp); =20 case MIG_CMD_ENABLE_COLO: - ret =3D loadvm_process_enable_colo(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_process_enable_colo(mis, errp); =20 case MIG_CMD_SWITCHOVER_START: ret =3D loadvm_postcopy_handle_switchover_start(); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097903; cv=none; d=zohomail.com; s=zohoarc; b=J5rrFWIAlzSPYvFwIUQdwhrXslo/xIEjizepAiK1s99sPL/If5R1pwFUYX6S0bLgq5kCTO0pUP0Y4HXj/ZskzO+i5fQ/IBHKMz9N6WX0In8KSixfCc/UxHb3IW/hHCRsfJJCdztYkeql0TMa81gwfYZNOW21Cmku1Z7pZON2wjg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097903; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=k/f6UP9sBy6SbL+S5EjCbNoztA4em6pGbHeWM92+jUM=; b=WjFDTxg0PkIJn4+/NUQtkBpNxkNGetzSbqDGA634lHlhuhFq4Yairg0kZbuNDGEvZSzhYfhzKfueKoboS7gVt4m1Xy+KSJLCVAABiTmFE3v3k2w/74SYUZGBdezYGIe0Z/Jbv3KFUW4obaO5cm2bpmXzPleqQwzd+ZPs0gh4HHs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097903020369.0054168922545; Mon, 21 Jul 2025 04:38:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udooL-0004oA-T9; Mon, 21 Jul 2025 07:36:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udokq-0002p2-FP for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udokm-0001A6-KY for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:24 -0400 Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-284-1zWU7FHcNPOFQ3vMU2ZraQ-1; Mon, 21 Jul 2025 07:32:08 -0400 Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2369dd58602so32947765ad.1 for ; Mon, 21 Jul 2025 04:32:07 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.31.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:32:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097536; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=k/f6UP9sBy6SbL+S5EjCbNoztA4em6pGbHeWM92+jUM=; b=NmZ4njgxHVtrDAXSQM4PEkYYTn7iE38+09bKMMt4QgKrfvqL3It+9uwX0gwyUYe+JoBdCo 5xju4QdmE1sb+1ITf4pQaySqOwPGdIQr6s2Pr0roVRYaJRwra6plkocGquaa1jzDeyZXFd CahlJ+nAp1wM5Dh8Y8F/83TqgKwCKhY= X-MC-Unique: 1zWU7FHcNPOFQ3vMU2ZraQ-1 X-Mimecast-MFC-AGG-ID: 1zWU7FHcNPOFQ3vMU2ZraQ_1753097525 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097525; x=1753702325; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=k/f6UP9sBy6SbL+S5EjCbNoztA4em6pGbHeWM92+jUM=; b=iPcuk0gh4To/fco0eq5UuLYF5+D/g42RIHiQ0wH+cWpWYdjRa0IS4Lv8oeV9fTqTgF kuptuAbnTcs/ZmSxaxZhspzMXpPlFKdftYQDdsXPaIfDKA+J3iF+XyuT+eyvSOtWZYPG GUfTrxxJwrXIuTehpID0a1QTUbwFsTZMZqkDpCx68dGWW5LnNlP+PfjfzZtQ7cucVOBs Om22wtZiAzYD+R8C6bQb5mXmSq7V17HBhiY/W66uLW9v502psjM0fjeHIXaphM/2nF6N QnGm+WzT2yrIi5m26jon6+RsZeRGMe4JWSYLLZwX3lSw/+sgI92DGW/UYf2wo71x4iRz twvw== X-Gm-Message-State: AOJu0YxxQrTh26wpp661y3xwiWi0/xJ9yGupmOPDTrIaBGx+k/ebxiCC XoS6MeCcsP9WKWY/Cgum2O8yspCU7d0o90hfMxwMYOL3Y0q8NDnV1ss2tqCHQp1oMlLeKkXbXKB sxYrFaC6OlFe10rfkcGXnsQNqB9ZLYVuKrcigWHNqc604qyLCwgEk1kXQ X-Gm-Gg: ASbGncsiIYpVnTAFEt5equf6vHKEe1xa7yLoFHQSmHrkYkl3oJg08EVQIbAUeMjbnJN T5zITEC6tI6ITyUoDUD3itmy0L+I76Y2z3EOftuJhDkPBCw25H2qnDRdkCLIfXnT95+rYZCJjpt kCeoeaEUcVgnkg4P8dYI3spqWbNwprd51mHZD8XUrT1vSGXw0hjuypMqM2chm3s5oebBWNClhU8 9kcIf65m1N4AHSorgdJPaASp2TRRnKyUIaeo4OoWr9c0HqyXHzY/boDFnpya4uWyuBMTGKuNoSh cVySSABWTHaovQQXHD4hSNF1bK7ZoM9bt8UHBYnS4dU85r2KI8g+ X-Received: by 2002:a17:903:166e:b0:234:c5c1:9b63 with SMTP id d9443c01a7336-23e256b73f3mr218889045ad.18.1753097525401; Mon, 21 Jul 2025 04:32:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE6avsZ1LangP5a7zyDdFZbeEybORwVnG7N0UbwWlKapyea8s6d1KfCiSc4Mb+66e1VRsKjjQ== X-Received: by 2002:a17:903:166e:b0:234:c5c1:9b63 with SMTP id d9443c01a7336-23e256b73f3mr218888665ad.18.1753097525003; Mon, 21 Jul 2025 04:32:05 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:23 +0530 Subject: [PATCH v6 18/24] migration: push Error **errp into loadvm_postcopy_handle_switchover_start() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-18-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1728; i=armenon@redhat.com; h=from:subject:message-id; bh=T4ESedbEFaWlt3KKuF3jtYtJa1dU5jJIREayOIFOE3M=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyiSm3qcTMn39rVa2b/h83Dy4LyJv/6rCHSIBCz+un +dTPNOno5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwESO8DH8YrZvLKmfFVpQ3VV8 rnfKoV2zCpL6g6cUyLUWeh3qrj69meGvnE/2DrPkJoG7i2W36L36xDUpMHTWY8vDvlMWvO84Lnu XEQA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097903882116600 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 loadvm_postcopy_handle_switchover_start() must report an error in errp, in case of failure. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Arun Menon --- migration/savevm.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 49eb629a8dcd909274e78ecb2f31eb10f57c5425..679abf7c668ea7990da10ca8cab= a09fbb7bdd2ea 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2534,7 +2534,7 @@ static int loadvm_process_enable_colo(MigrationIncomi= ngState *mis, return ret; } =20 -static int loadvm_postcopy_handle_switchover_start(void) +static int loadvm_postcopy_handle_switchover_start(Error **errp) { SaveStateEntry *se; =20 @@ -2547,6 +2547,7 @@ static int loadvm_postcopy_handle_switchover_start(vo= id) =20 ret =3D se->ops->switchover_start(se->opaque); if (ret < 0) { + error_setg(errp, "Switchover start failed: %d", ret); return ret; } } @@ -2651,12 +2652,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_process_enable_colo(mis, errp); =20 case MIG_CMD_SWITCHOVER_START: - ret =3D loadvm_postcopy_handle_switchover_start(); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_switchover_start(errp); } =20 return 0; --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753098246; cv=none; d=zohomail.com; s=zohoarc; b=ESRNXYBctdu+rNbCBBqGOchnNMPHMloZEPBnW9wwlaOann7mGiMII74Bil/kwtDYRbj/H8d6QFIHTkZ3jfJCvIS8kgBtcuIwYitmuxptftMXGP8gtJYAhLDNsrlQ37jVnjznLqThkaxOio2Kr7IAdAN0Ar3P9QAI+G4wKM+EpLo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753098246; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=f4QzxpgcLnGLas7DvgDqYZQjE07sC2RqyIhjhZQGHIg=; b=E5Z9Dh6WMo99M6fDWo03a6EpBJ6pH+NxL1+KvP1vjRUf6UReCx8xMT3C0AdcI23b0Cfo6aVzjh8h/O5peGJYAEvsa+JcBnEYgwommTe321vZ3IANlzMwgonG/QmIeg4pAgx0jF666A7tBKLXeIzyJmZmKjZy2EoldniObLlrl7g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753098246519231.94785514359762; Mon, 21 Jul 2025 04:44:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udonB-0000cG-9B; Mon, 21 Jul 2025 07:34:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udokn-0002nO-Vw for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:36 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udokk-0001A2-Fn for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:20 -0400 Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-63-nlxZ1FMaN6e3LVrVeM-6oQ-1; Mon, 21 Jul 2025 07:32:15 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-235dd77d11fso42007935ad.0 for ; Mon, 21 Jul 2025 04:32:14 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.32.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:32:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097536; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=f4QzxpgcLnGLas7DvgDqYZQjE07sC2RqyIhjhZQGHIg=; b=fr0qMTHVubQbP/2ZhmL0+K9TRIz29+AKuzMfAcEF0jwWNGn8o/Usi7AOVOHzWDRz6FzPvW uNdUW/Lt/wKPg/wJy/QKDSSKjwwDKjmhlBnW8QrMnBWSzOAK51GOBVPh7ojyLxtVRNUPjm BIPP/8xG1Qmf8IiRZYlHykfd4PPFsGQ= X-MC-Unique: nlxZ1FMaN6e3LVrVeM-6oQ-1 X-Mimecast-MFC-AGG-ID: nlxZ1FMaN6e3LVrVeM-6oQ_1753097534 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097534; x=1753702334; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f4QzxpgcLnGLas7DvgDqYZQjE07sC2RqyIhjhZQGHIg=; b=rZb1VaH2HJ9ALhIEmgO8WAZ/xikO4UvuqZItYSwJmDV606zbLP4MoaXbNm0+zc1YpV 66xwiKOcpI56/QOBChREUdhLukgxM/jIC2EhFm5PN3b0Ut74uosp47F88KPhne8LM8ZC vh9i35GEdYIYmRM4ZQKbI8JNPw3322yRb/+9zLBMiy+nTdIQ4qbaIYunSee/gtwx7K6H 498qpEah9T5w8SwIlOfI0+MBeUSDY+6IUra6HE6kKQKNmOk/fdeM5mMehe/00IY5Joth 6OX6jl/ssQygl+7gxVULOHBAdQQ6L1WaFnoOmh8e96DxIVL/5gua2hXrsQd1GF/Da8NZ ZTsA== X-Gm-Message-State: AOJu0YyvRScER54T1etB09mpyLkdNH3QJytP0ulg2SRDmx5ET3qwj1HR AZUT/CPBW9dsd4heWPs5k1jiFxdBmOSBl28OjEKOHpJ0NZtCbddmP8QymMntST7pbbFL2z9jHQ1 Au7pcweZfDexLpZvq4EvNTtpMOkXMbmYgP4QSfYU9NUaK8sDP73GLlXKJ X-Gm-Gg: ASbGncvZcQvMZXFfGhMtL/YeIuahjo+NjSt6nwbPVAsyUDmgiBnfZjzinGytKbnapyk x4SoSOcjwFTv3A+QFM608+lPCxPdUCK6r2f0BzbMmqfJuPjLT/u/0+n4k01N5G0lWJ85jn9x//b 1jHbWmNiQt7ecV06SKjaAqbY2mCOZ6BEH8U7tghu7EizcBfVf3oHIUGZX7J9Xam1eqh6qCRg0da cZ82QN1X4xpwp/E49FFzKAJnwz+c0tamQOarN0+NWb4D7obTLLClXiGvWcJEGwM1VEcLzFBqUO3 LTFDeS7ouiFRRGMcfL2e0Dw3eNe82pjGkl/TT2XjctGFQsTHRz9o X-Received: by 2002:a17:902:f68d:b0:23d:ddf0:c908 with SMTP id d9443c01a7336-23e25685226mr238406265ad.6.1753097533846; Mon, 21 Jul 2025 04:32:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGFW2BAE9+vDqDZBfRzC14BjyQ78PF8Efb1MQb9Fggpr/yFAn6LfcBzmxQ72UDtXzlDZdSJSw== X-Received: by 2002:a17:902:f68d:b0:23d:ddf0:c908 with SMTP id d9443c01a7336-23e25685226mr238405675ad.6.1753097533363; Mon, 21 Jul 2025 04:32:13 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:24 +0530 Subject: [PATCH v6 19/24] migration: push Error **errp into qemu_loadvm_state_main() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-19-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5809; i=armenon@redhat.com; h=from:subject:message-id; bh=ie8KesUjIS+qK5YWhLytK+ngB39vKddEIpiUnWjtDA4=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyqTqdfZBc1p+8Cz3rPpooTO/jFtKfo/nxJSA5Kmb1 TKWnpXsKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMBHzqwy/mE4971+9OiQ7cKWx 2b6rC8TsrnWWSnu43nzVHbAjzCJhISPDWi7/PcbbKq7ekjj343KTz7FFwm/mswWsbtjWWd2cm27 LDwA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753098247870116600 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_state_main() must report an error in errp, in case of failure. loadvm_process_command also sets the errp object explicitly. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Arun Menon --- migration/colo.c | 4 ++-- migration/savevm.c | 25 ++++++++++++++----------- migration/savevm.h | 3 ++- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 981bd4bf9ced8b45b4c5d494acae119a174ee974..03edf870e2bc9c724fc27e26e7b= a54a40c13399e 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -686,11 +686,11 @@ static void colo_incoming_process_checkpoint(Migratio= nIncomingState *mis, =20 bql_lock(); cpu_synchronize_all_states(); - ret =3D qemu_loadvm_state_main(mis->from_src_file, mis); + ret =3D qemu_loadvm_state_main(mis->from_src_file, mis, errp); bql_unlock(); =20 if (ret < 0) { - error_setg(errp, "Load VM's live state (ram) error"); + error_prepend(errp, "Load VM's live state (ram) error"); return; } =20 diff --git a/migration/savevm.c b/migration/savevm.c index 679abf7c668ea7990da10ca8caba09fbb7bdd2ea..ba146f91427f2a36880aadeb16b= 11ab2b7df099a 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2108,7 +2108,7 @@ static void *postcopy_ram_listen_thread(void *opaque) qemu_file_set_blocking(f, true); =20 /* TODO: sanity check that only postcopiable data will be loaded here = */ - load_res =3D qemu_loadvm_state_main(f, mis); + load_res =3D qemu_loadvm_state_main(f, mis, NULL); =20 /* * This is tricky, but, mis->from_src_file can change after it @@ -2459,9 +2459,9 @@ static int loadvm_handle_cmd_packaged(MigrationIncomi= ngState *mis, Error **errp) qemu_coroutine_yield(); } while (1); =20 - ret =3D qemu_loadvm_state_main(packf, mis); + ret =3D qemu_loadvm_state_main(packf, mis, errp); if (ret < 0) { - error_setg(errp, "VM state load failed: %d", ret); + error_prepend(errp, "Loading VM state failed: %d ", ret); } trace_loadvm_handle_cmd_packaged_main(ret); qemu_fclose(packf); @@ -3059,7 +3059,8 @@ static bool postcopy_pause_incoming(MigrationIncoming= State *mis) return true; } =20 -int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis) +int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis, + Error **errp) { uint8_t section_type; int ret =3D 0; @@ -3068,8 +3069,10 @@ retry: while (true) { section_type =3D qemu_get_byte(f); =20 - ret =3D qemu_file_get_error_obj_any(f, mis->postcopy_qemufile_dst,= NULL); + ret =3D qemu_file_get_error_obj_any(f, mis->postcopy_qemufile_dst,= errp); if (ret) { + error_prepend(errp, "Failed to load device state section ID : = %d ", + ret); break; } =20 @@ -3077,20 +3080,20 @@ retry: switch (section_type) { case QEMU_VM_SECTION_START: case QEMU_VM_SECTION_FULL: - ret =3D qemu_loadvm_section_start_full(f, section_type, NULL); + ret =3D qemu_loadvm_section_start_full(f, section_type, errp); if (ret < 0) { goto out; } break; case QEMU_VM_SECTION_PART: case QEMU_VM_SECTION_END: - ret =3D qemu_loadvm_section_part_end(f, section_type, NULL); + ret =3D qemu_loadvm_section_part_end(f, section_type, errp); if (ret < 0) { goto out; } break; case QEMU_VM_COMMAND: - ret =3D loadvm_process_command(f, NULL); + ret =3D loadvm_process_command(f, errp); trace_qemu_loadvm_state_section_command(ret); if ((ret < 0) || (ret =3D=3D LOADVM_QUIT)) { goto out; @@ -3100,7 +3103,7 @@ retry: /* This is the end of migration */ goto out; default: - error_report("Unknown savevm section type %d", section_type); + error_setg(errp, "Unknown savevm section type %d", section_typ= e); ret =3D -EINVAL; goto out; } @@ -3164,7 +3167,7 @@ int qemu_loadvm_state(QEMUFile *f) =20 cpu_synchronize_all_pre_loadvm(); =20 - ret =3D qemu_loadvm_state_main(f, mis); + ret =3D qemu_loadvm_state_main(f, mis, NULL); qemu_event_set(&mis->main_thread_load_event); =20 trace_qemu_loadvm_state_post_main(ret); @@ -3238,7 +3241,7 @@ int qemu_load_device_state(QEMUFile *f) int ret; =20 /* Load QEMU_VM_SECTION_FULL section */ - ret =3D qemu_loadvm_state_main(f, mis); + ret =3D qemu_loadvm_state_main(f, mis, NULL); if (ret < 0) { error_report("Failed to load device state: %d", ret); return ret; diff --git a/migration/savevm.h b/migration/savevm.h index 2d5e9c716686f06720325e82fe90c75335ced1de..fd7419e6ff90062970ed246b3ea= 71e6d49a6e372 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -66,7 +66,8 @@ int qemu_save_device_state(QEMUFile *f); =20 int qemu_loadvm_state(QEMUFile *f); void qemu_loadvm_state_cleanup(MigrationIncomingState *mis); -int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis); +int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis, + Error **errp); int qemu_load_device_state(QEMUFile *f); int qemu_loadvm_approve_switchover(void); int qemu_savevm_state_complete_precopy_non_iterable(QEMUFile *f, --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753098124; cv=none; d=zohomail.com; s=zohoarc; b=cu5W6WG5cc/Ecw/6yGPfrdZHR0iNcdGur7zWXsNvG886OeRH4kUmusk5rO/jJUKBciwjlChKl4SS9a3RrTroAHinfJXzvP76YLCyyDWKIGw5eBKRmWnq4Pb/sgPHtADO7kCwT+3W2d7JEnpOZHnhIAzN1VXKizyzI6ZW6nBV3lc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753098124; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zY97o+Xwfk2dW6k8JcNZ/JX64QtBvwhLBKNhHY4zOx0=; b=Tnd4NUlftQi7o8q3TZeyBoC+W2eq7suARIPbTuU+DTNK9mFv0QSXPQSg3sTEeTHKjl5Lx6pjyjUaWO2LcZqQSYedIqW7Xnbnglb1Zq1rAeCKWQ6IsDg7ZR3xgo1hcDwgt/Q4HPw/JF12YpVn9Q+BB5E1EcI3S2kpA/PudZdvupQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753098124867912.5228150141863; Mon, 21 Jul 2025 04:42:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udomK-000753-DL; Mon, 21 Jul 2025 07:33:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udoku-0002tQ-QX for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udokr-0001B7-A8 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:27 -0400 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-192-N2-CAmNQPkSWoXvGhjVMLw-1; Mon, 21 Jul 2025 07:32:23 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-23632fd6248so38667045ad.3 for ; Mon, 21 Jul 2025 04:32:23 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.32.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:32:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097544; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zY97o+Xwfk2dW6k8JcNZ/JX64QtBvwhLBKNhHY4zOx0=; b=Mxy2XjLUKZ2G7J0HEqm1FuCiUVWUiB6hnjbG8DGmSo6U3cAomUAT7KjdwHvU5kSr0LXEwj x3fjXdWdw2uyZ7S3iCR+/NHaKtJmXEfm/9eTAr9QZG8ezyZx1UFAq4B6AGKcf+MEXkvhj3 TspxgZMXDHrQ/b3HwqxsxtS5ni/1IM0= X-MC-Unique: N2-CAmNQPkSWoXvGhjVMLw-1 X-Mimecast-MFC-AGG-ID: N2-CAmNQPkSWoXvGhjVMLw_1753097542 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097542; x=1753702342; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zY97o+Xwfk2dW6k8JcNZ/JX64QtBvwhLBKNhHY4zOx0=; b=fL1lUGuBDvNge7dG07azwe5RqnaB1Aoi/MeKrqzc6btQ5aNDlA7hcCWC/HDTe4NU7x Kh1kupdG2laW3cncO4k4+RXh+sflt/FlaGcHQeGXBoqXgAXCG9rC+dbdscwRWdWPI05Z WpGHhlfuxDVLcNQ8SEGnhMX66cZb+Rr3iMbUuezCvAZZVcJ5hPawrDMd2m6WvQhgD47N jtjODwz8TdI78Q7Nu7Jq5zClPFX1agdrITMlwTiQX6YdUzqQ4SSdH3Fyl4X2iwMZU0yD qZzv0Ao51WJHR1Kpr1wUb8H702gdNbxAKxxwXb5K2zdEPj4hZQRwTkCLZBFH36X4L9BG 8sUg== X-Gm-Message-State: AOJu0YxArXzi//AxfN/WAXPF0RpYd5LsRuJ7jLRaHUlL/A8ljCMlkUmx NyiyABTWHW8AC/3PHS2J+pt4z3VWIUxjTxfIiY3/EJ7mI0dSC9QX47e82CI9ObeVdSdHCwYIAvq 3V58WzG2dkMHVZFHeJJR6FvXAo/H3QGeHJ2t8Rhal2GSU7Uv7WWCKKH9J X-Gm-Gg: ASbGnctkHEL0YaV4E3WsHyD0OMMJ5iwfpj4cvxMA85c4M6R9RCLvPwDBKKyUFKnBARG Z4pkNMJeYXaIBykb9PweJxmOy1cdL4iz3kYdjYdXjLmkh44UddGF02BiQWd3hASSUgxpadoaDI4 tYyVefeZGQmTO/eR6zaVZw0N1n/0UJ12jooIQj419WKybAJXA9VOR6lILOtfP+FtD9zfFAptcJw Eji/QTLOLp/5noPvmV4xv22L1bsqZKa36yX85O+hT1EPN0XmuEATieJ8m8KzUdz/Pd8an5ZBjnR qZjAyQP0cZ7MWcAfLAau5fBerODDZmIJepsTSsmq8TZm6sI+fGmH X-Received: by 2002:a17:902:b115:b0:235:81c7:3c45 with SMTP id d9443c01a7336-23e2578e7a4mr262862245ad.46.1753097542025; Mon, 21 Jul 2025 04:32:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFGckmg+y8la1r6Uk5tFn+OnjpQfpURBbfbTlm4Vb+TX05qbTUugccINNCiaOSyhwfRH9ZimA== X-Received: by 2002:a17:902:b115:b0:235:81c7:3c45 with SMTP id d9443c01a7336-23e2578e7a4mr262861885ad.46.1753097541629; Mon, 21 Jul 2025 04:32:21 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:25 +0530 Subject: [PATCH v6 20/24] migration: push Error **errp into qemu_loadvm_state() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-20-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4861; i=armenon@redhat.com; h=from:subject:message-id; bh=lg1aiipEtXIIMdaPEfs5RNRiSQXigd7HC9snbMHPYKs=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyqTiVe++8fBelHd1/eGV+PNZnyRH07RuDvfPz8PW/ Oh4xD+xo5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwESq4xgZnrwTa5nbrM8sG73m ho6/7bfk6EyL2Z/5li5/fz/5eEjvdkaGfTLlB1cJiFj/+HF0Hd9rXuFFu+yqZ179Hed3+pi2dV4 kIwA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753098166668116600 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_state() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/migration.c | 5 +++-- migration/savevm.c | 25 +++++++++++++------------ migration/savevm.h | 2 +- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index d748a02712dc4ebc2de6b0488fb199c92c4d4079..09fadf36dbbbd2f68df1e4cafbf= 3a51b18531978 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -881,7 +881,7 @@ process_incoming_migration_co(void *opaque) MIGRATION_STATUS_ACTIVE); =20 mis->loadvm_co =3D qemu_coroutine_self(); - ret =3D qemu_loadvm_state(mis->from_src_file); + ret =3D qemu_loadvm_state(mis->from_src_file, &local_err); mis->loadvm_co =3D NULL; =20 trace_vmstate_downtime_checkpoint("dst-precopy-loadvm-completed"); @@ -908,7 +908,8 @@ process_incoming_migration_co(void *opaque) } =20 if (ret < 0) { - error_setg(&local_err, "load of migration failed: %s", strerror(-r= et)); + error_prepend(&local_err, "load of migration failed: %s ", + strerror(-ret)); goto fail; } =20 diff --git a/migration/savevm.c b/migration/savevm.c index ba146f91427f2a36880aadeb16b11ab2b7df099a..1261e81c86f836e6b5a155ba188= 0b5823a779567 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3137,27 +3137,24 @@ out: return ret; } =20 -int qemu_loadvm_state(QEMUFile *f) +int qemu_loadvm_state(QEMUFile *f, Error **errp) { MigrationState *s =3D migrate_get_current(); MigrationIncomingState *mis =3D migration_incoming_get_current(); - Error *local_err =3D NULL; int ret; =20 - if (qemu_savevm_state_blocked(&local_err)) { - error_report_err(local_err); + if (qemu_savevm_state_blocked(errp)) { return -EINVAL; } =20 qemu_loadvm_thread_pool_create(mis); =20 - ret =3D qemu_loadvm_state_header(f, NULL); + ret =3D qemu_loadvm_state_header(f, errp); if (ret) { return ret; } =20 - if (qemu_loadvm_state_setup(f, &local_err) !=3D 0) { - error_report_err(local_err); + if (qemu_loadvm_state_setup(f, errp) !=3D 0) { return -EINVAL; } =20 @@ -3167,7 +3164,7 @@ int qemu_loadvm_state(QEMUFile *f) =20 cpu_synchronize_all_pre_loadvm(); =20 - ret =3D qemu_loadvm_state_main(f, mis, NULL); + ret =3D qemu_loadvm_state_main(f, mis, errp); qemu_event_set(&mis->main_thread_load_event); =20 trace_qemu_loadvm_state_post_main(ret); @@ -3185,8 +3182,12 @@ int qemu_loadvm_state(QEMUFile *f) if (migrate_has_error(migrate_get_current()) || !qemu_loadvm_thread_pool_wait(s, mis)) { ret =3D -EINVAL; + error_setg(errp, "Error while loading vmstate : %d", ret); } else { ret =3D qemu_file_get_error(f); + if (ret < 0) { + error_setg(errp, "Error while loading vmstate : %d", ret); + } } } /* @@ -3472,10 +3473,10 @@ void qmp_xen_load_devices_state(const char *filenam= e, Error **errp) f =3D qemu_file_new_input(QIO_CHANNEL(ioc)); object_unref(OBJECT(ioc)); =20 - ret =3D qemu_loadvm_state(f); + ret =3D qemu_loadvm_state(f, errp); qemu_fclose(f); if (ret < 0) { - error_setg(errp, "loading Xen device state failed"); + error_prepend(errp, "loading Xen device state failed "); } migration_incoming_state_destroy(); } @@ -3546,13 +3547,13 @@ bool load_snapshot(const char *name, const char *vm= state, ret =3D -EINVAL; goto err_drain; } - ret =3D qemu_loadvm_state(f); + ret =3D qemu_loadvm_state(f, errp); migration_incoming_state_destroy(); =20 bdrv_drain_all_end(); =20 if (ret < 0) { - error_setg(errp, "Error %d while loading VM state", ret); + error_prepend(errp, "Error %d while loading VM state ", ret); return false; } =20 diff --git a/migration/savevm.h b/migration/savevm.h index fd7419e6ff90062970ed246b3ea71e6d49a6e372..a6df5198f3fe1a39fc0e6ce3e79= cf7a5d8e032db 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -64,7 +64,7 @@ void qemu_savevm_send_colo_enable(QEMUFile *f); void qemu_savevm_live_state(QEMUFile *f); int qemu_save_device_state(QEMUFile *f); =20 -int qemu_loadvm_state(QEMUFile *f); +int qemu_loadvm_state(QEMUFile *f, Error **errp); void qemu_loadvm_state_cleanup(MigrationIncomingState *mis); int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis, Error **errp); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753098170; cv=none; d=zohomail.com; s=zohoarc; b=TPZj1UOLE6MnSV5qrfxOdNim2rK2MS3p6+ZC+hHIWkq4Rb/ti1qe+pETG/X5Wk9GWjCmvHXdCgXOrAhkWFoF1sgCsKnotI1iA5xXKyhZf7smzQeHeHk7sFPtHFNKzsHj4zsX1YhJO6euy9TTvSdVBvpBHZbi8SI4jZga1tLDZdQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753098170; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=t3ae3kJExW2Sg5pWJRDVUIOvol+Ctrurv2L52br01Kg=; b=fD+viDB+Scl+6xEWbdtBgIcDvWe3J/3E6L6MS1U6vW590AwTJAfbAWCECAtb2zW6OCdfpd+O0zDshG5UkauuqOc9GOM8+7bM7dB28cL+cnRu/8e1EZhBYyI6yHX0OX3VQkQfaN/zAC28zivupF/q2PH55qx+e71wiifz3u2YZww= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 175309817000674.14270874393469; Mon, 21 Jul 2025 04:42:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udooJ-0004ak-AV; Mon, 21 Jul 2025 07:35:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udol8-0003Dz-E5 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:43 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udol0-0001CB-Km for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:41 -0400 Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-347-KCp5uiZ-NyGfMaanGC_xrg-1; Mon, 21 Jul 2025 07:32:31 -0400 Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b3f2e05fb78so2389317a12.1 for ; Mon, 21 Jul 2025 04:32:31 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.32.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:32:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=t3ae3kJExW2Sg5pWJRDVUIOvol+Ctrurv2L52br01Kg=; b=N5z0jfcigEsXjJzjwmB3qFuxc8aJg4H9BvkakAOY3PPw98Dt94DiE+JKG8m/TL0VD04T8o DuH3jlA510GL37Vm9uRsgWYneW7FYlQ5k9o8BsIYdMAopOkB0+040JcEIcG8iT5YIJYPKt tfEFSk0ywDKo+IgrcTkNbt1KKdxWUc4= X-MC-Unique: KCp5uiZ-NyGfMaanGC_xrg-1 X-Mimecast-MFC-AGG-ID: KCp5uiZ-NyGfMaanGC_xrg_1753097550 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097550; x=1753702350; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=t3ae3kJExW2Sg5pWJRDVUIOvol+Ctrurv2L52br01Kg=; b=hNfFAHtaiDv+RaAtnwDTOGr+K9cgA5JW4uMjmciCpRsEDg/GDX/ySc69IPJ10VGpM6 bm+1Bd52jdzFifUKqoWNISgQDGX9z52y/h8ZQDt+mQWE3UXuTZuaLaVi1nKq6iOT9G1h rHZFnDfH6KS2WcCleoz8B8cSg4+B+N2UjNRltiosmwarQsc8LZtdL5em6ISYCSA82ZHe NT2ah8+KqlbbJlDu0/1J4nj08Trll8R/0E3QGRPLWhgyzCnmsQwzcKLTc7E9xkyXyDx/ xRx8RlMtbTlDtdc1hQc1VDU+Qx0DyM7CP0U6s89UtegzCdHdFkOuKgDZzzQI0iS6AsE5 lY5g== X-Gm-Message-State: AOJu0YxZmwPkG6UegUbLorsM5T7476RvCPlVi5DxjAJ8di+s+EEREirS ceVDf2ZqayVkdarQH8VhtB6bCMwhQiWVcgOAGLzEXW9AVCcuLnU07vdmchrug4fKsnQKYwhGMtK b1Pv6Xt2cKM1y+XyPR+oQjKiF6kYRtlAxcRHqC2iJsSaweIJujFcSUsEi X-Gm-Gg: ASbGncvVS/nTj5rXIHVhdlXifPYQ+TfybPzLfkt0TWDTPq/wmy2mwpME14G4oceZx93 s2s2IbVeryEGUoVWb6i8B7WTN3Dv+p5vDKTH2ob5vSS2UKfblSRHmVmZtoJ4i1PKodA1E4H5ea/ zrXHFCdz3mQmSinDxCCjsMv8E41JTO4d8pEMOuDb43KY5ntZ8LGQB0UFLuqtI4hzDTWeKP/SmC3 Ge35aJWl5+dq8vzz+Pm7cJC/eZJODR2M6dg3T0lAXS5tuYyoPuC4K4rfQ93F05O8IFW3ewJh018 YZTVIaq0oJFH0TWuWbxPNi6xUk3DYFUDMyLoMjkhjucQuXYfUgkc X-Received: by 2002:a17:902:ea04:b0:234:8c64:7885 with SMTP id d9443c01a7336-23e2578d9e2mr271660965ad.53.1753097550245; Mon, 21 Jul 2025 04:32:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH006936SOWFLX0KeCHHYnhae+sSKEKnmeFxfNdsSqzcQLtt57uyechRQ3uZA+ymerwRrJ7kQ== X-Received: by 2002:a17:902:ea04:b0:234:8c64:7885 with SMTP id d9443c01a7336-23e2578d9e2mr271660395ad.53.1753097549783; Mon, 21 Jul 2025 04:32:29 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:26 +0530 Subject: [PATCH v6 21/24] migration: push Error **errp into qemu_load_device_state() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-21-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2659; i=armenon@redhat.com; h=from:subject:message-id; bh=oyukj1JRYKQrUQbIkOMl3uoW1cNIxrsfV12H77J7t0g=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyqR9N32vHtG6wF/l4lb774vex5W+loIVRpteG7/pb z+zLKuwo5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwESy/RgZppSbWnxatGLJ242v p87rk2LflPRsy7tI/Qf961+rn5GddYvhr5DCgvOPF9nb8L9bGSYlombxuKvwk9Viv476G63HLxn VMgEA X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753098179435116600 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_load_device_state() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/colo.c | 4 ++-- migration/savevm.c | 6 +++--- migration/savevm.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index 03edf870e2bc9c724fc27e26e7ba54a40c13399e..650f7b61d92693eeace475f221a= 37cfa81331b97 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -729,9 +729,9 @@ static void colo_incoming_process_checkpoint(MigrationI= ncomingState *mis, bql_lock(); vmstate_loading =3D true; colo_flush_ram_cache(); - ret =3D qemu_load_device_state(fb); + ret =3D qemu_load_device_state(fb, errp); if (ret < 0) { - error_setg(errp, "COLO: load device state failed"); + error_prepend(errp, "COLO: load device state failed "); vmstate_loading =3D false; bql_unlock(); return; diff --git a/migration/savevm.c b/migration/savevm.c index 1261e81c86f836e6b5a155ba1880b5823a779567..b90505595091da27d3cf92984eb= 256f137fb9d36 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3236,15 +3236,15 @@ int qemu_loadvm_state(QEMUFile *f, Error **errp) return ret; } =20 -int qemu_load_device_state(QEMUFile *f) +int qemu_load_device_state(QEMUFile *f, Error **errp) { MigrationIncomingState *mis =3D migration_incoming_get_current(); int ret; =20 /* Load QEMU_VM_SECTION_FULL section */ - ret =3D qemu_loadvm_state_main(f, mis, NULL); + ret =3D qemu_loadvm_state_main(f, mis, errp); if (ret < 0) { - error_report("Failed to load device state: %d", ret); + error_prepend(errp, "Failed to load device state: %d ", ret); return ret; } =20 diff --git a/migration/savevm.h b/migration/savevm.h index a6df5198f3fe1a39fc0e6ce3e79cf7a5d8e032db..c337e3e3d111a7f28a57b90f61e= 8f70b71803d4e 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -68,7 +68,7 @@ int qemu_loadvm_state(QEMUFile *f, Error **errp); void qemu_loadvm_state_cleanup(MigrationIncomingState *mis); int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis, Error **errp); -int qemu_load_device_state(QEMUFile *f); +int qemu_load_device_state(QEMUFile *f, Error **errp); int qemu_loadvm_approve_switchover(void); int qemu_savevm_state_complete_precopy_non_iterable(QEMUFile *f, bool in_postcopy); --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097956; cv=none; d=zohomail.com; s=zohoarc; b=gVs4d59/2dLvbafSYjcbUUbXcwzOmzefJC9nPo/wLIm2GReqXnvDWmuodeA0B5I6X5QpHOY/UVtIjlgtaNQKL8Qr2Q9vFoyxnFP8wK7SV1nWmnK9DIbci5ftUeTzaDZW4n5SxIuD5IKnDe9rYRUafV3yDnPUJJ/KzcejY/IIfAY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097956; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hkw007WkL2bTNA6NzrTVjPjzDilf74VZVqgpQUpo1iQ=; b=BaaOMRU+HD6eUQz4DKNGCiFBRXEEZmsPOzwHeKBa/xTnwfxf7lR0Qhk3gP+xi8+lYoDrRoFnNozBgKDbEubq+5iUyi+4ZJVhQCVb5gWW3pacnILRxA+C6pqvXoLZON7W2XbLgc01ovTWF9Y56ABWtQd+QO95v5SuBx3ikK8yEPI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097956796181.90720325790357; Mon, 21 Jul 2025 04:39:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udonl-0002RO-Qt; Mon, 21 Jul 2025 07:35:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udolG-0003lO-G0 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udol8-0001DT-OA for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:50 -0400 Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-659-1Fr0RXw9PFSAAEGEhKLjww-1; Mon, 21 Jul 2025 07:32:39 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-23dc7d3e708so29880255ad.3 for ; Mon, 21 Jul 2025 04:32:39 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.32.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:32:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097561; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hkw007WkL2bTNA6NzrTVjPjzDilf74VZVqgpQUpo1iQ=; b=MQ9ajdbn/BvRabG2AKG0IPE/4yjtjB0DeIVnSK/ILR+K2II2ylzTMnqcxDB3Bf/zYqxPHk fZIVfwUvXC9qkhmr8tte/tqL5TzvtwZoTyHRIDafkj95uI84T9ZdsLAFuJVil3F62gU7/i pOZQeVjzv4ay1RggaDVQ7asuxlyr0IQ= X-MC-Unique: 1Fr0RXw9PFSAAEGEhKLjww-1 X-Mimecast-MFC-AGG-ID: 1Fr0RXw9PFSAAEGEhKLjww_1753097559 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097558; x=1753702358; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hkw007WkL2bTNA6NzrTVjPjzDilf74VZVqgpQUpo1iQ=; b=v/h7pxCjxpbV2Lpp6GeOSo4+0dElUmu/B7zp+GxQkGSdG3tvynBh0Zrl43q5YZ00d6 u0WW8Zg1xGvYj6pc7qtwd5z+qchMXhMI1wGD60jfiKfy0IPWVy7hdk+VK1GkenmNl9K8 y2Nvw5X0bj51pdVjfRGiJSf0yqh/0J/HnM8fHYjuRHqbmwH+zbDwef0gyFSTKK3rqoKN 6Nsf5TqawcfaQ4oRON1xzoDjEl65YQGzHSQSOgzDHuwb90ehGOXcBMAB2Eiq52oAnQOU z2O7KZgMtYrod7q/unyOcyUBrxzdwNnLkS2l90qvEzCADkXsKoy2LL4iGEAHMn4eRM2Q Kpjg== X-Gm-Message-State: AOJu0YwD9Jn0lHti1Az8im3CAVSHnjPNxma6T+IchrsfdfpKYnJ0fjx6 gA8VdOSoSnmjypuRppQePfBTJul9Twg9z8OKjzEHL8LxKe/1ezdo2uYgU6BvqvMo579nkrPiM/6 2hM0/CIexGGLIMXw64Vs5Ao13m08AhS/RFyAczrCph/ZLv/lSJejTKfSf X-Gm-Gg: ASbGncvGSHOC8n33NyTmMC3dO5itxW/i+qS7FNnrbZ16Wp5uqUSV21beqh7NxQ/vQfv jyd5zzKYriALsZhkH0IMahcm7fVJuLL+/mpngXACnxtyXgK4EnDUsP9zcIhJeOkH0HvUHyyautC hhMimKxdkBrU9VTC7Lqs45qRouEIMoEbTG/j7fEetIISwsCir+Hy8RIJhRp9kBIJhbqD0CWdpJC RqadUGvXikW4XJ/dZQHmMtIlSnlX5mfxFFKVCcKL7Ae3UGwN02OBXtYrdUwx2NAfl/OTaqPzm/C hcgYOqv+DGx9I0gXeGoVznJ28iqIosgcpFSpoohVf5Eh0AzZJbts X-Received: by 2002:a17:903:1c6:b0:234:f182:a734 with SMTP id d9443c01a7336-23e2572fe2cmr266488175ad.31.1753097558410; Mon, 21 Jul 2025 04:32:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGOcXkvyO/2m94/qNR6kURY/gxJZ6l0VLzmjmmUWOSmET6QivsvVH3zNbalHI8kzy6/xmR/Yw== X-Received: by 2002:a17:903:1c6:b0:234:f182:a734 with SMTP id d9443c01a7336-23e2572fe2cmr266487625ad.31.1753097557999; Mon, 21 Jul 2025 04:32:37 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:27 +0530 Subject: [PATCH v6 22/24] migration: Capture error in postcopy_ram_listen_thread() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-22-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2961; i=armenon@redhat.com; h=from:subject:message-id; bh=v3kIu8xv5CmXmOovgQtNwiMRjDivOP6smrquljBzKYk=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyqT1j7Ui5bnqFsnw/pTx5ss+xqD6snlNr/7PYOME9 UOZ26U7SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATERzKsNvlozJKwytysT6Niid tTn8ewvbsV07pttaemZOEDwnt3ffNkaG70trGjq/SJRWB6cud9zibmr0u2ZSd+XmJd+49s6/027 DAgA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097958141116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. postcopy_ram_listen_thread() calls qemu_loadvm_state_main() to load the vm, and in case of a failure, it should set the error in the migration object. When postcopy live migration runs, the device states are loaded by both the qemu coroutine process_incoming_migration_co() and the postcopy_ram_listen_thread(). Therefore, it is important that the coroutine also reports the error in case of failure, with error_report_err(). Otherwise, the source qemu will not display any errors before going into the postcopy pause state. Signed-off-by: Arun Menon --- migration/migration.c | 2 +- migration/savevm.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 09fadf36dbbbd2f68df1e4cafbf3a51b18531978..8acbed207440fe4a2dfe303f97c= fd83b40457db0 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -925,7 +925,7 @@ fail: migrate_set_state(&mis->state, MIGRATION_STATUS_ACTIVE, MIGRATION_STATUS_FAILED); migrate_set_error(s, local_err); - error_free(local_err); + error_report_err(local_err); =20 migration_incoming_state_destroy(); =20 diff --git a/migration/savevm.c b/migration/savevm.c index b90505595091da27d3cf92984eb256f137fb9d36..55cda4566ac2f8c72fe5fa2f8df= 8475e175ee717 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2092,6 +2092,7 @@ static void *postcopy_ram_listen_thread(void *opaque) QEMUFile *f =3D mis->from_src_file; int load_res; MigrationState *migr =3D migrate_get_current(); + Error *local_err =3D NULL; =20 object_ref(OBJECT(migr)); =20 @@ -2108,7 +2109,7 @@ static void *postcopy_ram_listen_thread(void *opaque) qemu_file_set_blocking(f, true); =20 /* TODO: sanity check that only postcopiable data will be loaded here = */ - load_res =3D qemu_loadvm_state_main(f, mis, NULL); + load_res =3D qemu_loadvm_state_main(f, mis, &local_err); =20 /* * This is tricky, but, mis->from_src_file can change after it @@ -2134,7 +2135,12 @@ static void *postcopy_ram_listen_thread(void *opaque) __func__, load_res); load_res =3D 0; /* prevent further exit() */ } else { - error_report("%s: loadvm failed: %d", __func__, load_res); + if (local_err !=3D NULL) { + error_prepend(&local_err, "loadvm failed during postcopy: = %d", + load_res); + migrate_set_error(migr, local_err); + error_report_err(local_err); + } migrate_set_state(&mis->state, MIGRATION_STATUS_POSTCOPY_ACTIV= E, MIGRATION_STATUS_FAILED); } --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097831; cv=none; d=zohomail.com; s=zohoarc; b=BDeMDCTTKhVowm0WwPye5KlSuZChqX60ONUucbxqkiYEyuAIoonlOCHmnbgmiZ4SJ+OPdIS3OsNShYGb74Sdm9s6Iq4k1E7XZw0NSUsS837z56DYaHYCMS2+mnq78GqLJRhfxzDLiI8F9+ROCPYlMNFxKGzvwhtF/RjCJSyCQbA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097831; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=9AF+7c8u5HxJ0eCpL/YXqsKTRoDXAggxdzD85+tAHME=; b=g/aaLHY8ctl2KrU5LWOSceYjQrdcR2u0jJToO410pnjI8PYH3oDZsr8MjFGPyJo9z/N2YUOey06T5PpmVk2M6tOaSi+QT5DKotAMpVWSu1K8YT98BAqhX+0ZX0l+mKllLxfp6k/gZCTtPJpV0M8HQKlUJliT/rb8G8ruMuSxjm8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097831410235.99945926598843; Mon, 21 Jul 2025 04:37:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udook-0005dm-PZ; Mon, 21 Jul 2025 07:36:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udolK-0004AT-Pi for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:56 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udolG-0001Ed-H7 for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:32:54 -0400 Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-691-pU9wqqGAPGadTM9maJrSZw-1; Mon, 21 Jul 2025 07:32:48 -0400 Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-235089528a0so43192315ad.1 for ; Mon, 21 Jul 2025 04:32:47 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.32.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:32:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097569; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9AF+7c8u5HxJ0eCpL/YXqsKTRoDXAggxdzD85+tAHME=; b=Axp4FZtilsyS0tbTMXfjJv062VkIb6g9nbi7LOZVEIJ07HsUvwjJ1GdpPm9qkgFSFn0kP7 4+H0SnK1KsqGUzWGYstTpTzugWxuuo6/DSbAZm4SnVQpAoHuywxC1wTul0ZMDQo3O7g9U2 5Oq/73jMF2jbCxFz/uEBt8RSPoUKfuQ= X-MC-Unique: pU9wqqGAPGadTM9maJrSZw-1 X-Mimecast-MFC-AGG-ID: pU9wqqGAPGadTM9maJrSZw_1753097567 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097567; x=1753702367; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9AF+7c8u5HxJ0eCpL/YXqsKTRoDXAggxdzD85+tAHME=; b=kir+KleJ/ML5X5zsd992FAYBPO8RlLmG049zK4ncX9kRV7adRoqpQxQ4ESbt/ZSS71 nPTZNj6qEr3WQuyf7CHBXVvhA5XK7J0+KDwPVYuBzCI/Br1eN6kn9Z1CKXOCP4jcTq89 8VnbxWiDqtfZe8w32Pgzi6vxZs6aTOIUJg3GaAJOayn3cGC14tOhpDwiV6OSGcDiS26H BMOX6MrO8r2NlxaTi9m7A9IRLKwWUdKdI0nC9aHJ2Lp4R8sz9s4yDxkAR9mCiTlWuN5h 0c8YRZAsV+Ynj8WX4JGxK/FfC9Z8NMjrW/FjvbXOkbs/YIiOFAhXfsWoTNfMiLw8+9ed gWgQ== X-Gm-Message-State: AOJu0YwKnFUO/+Mq4u97kw03U4HC+ZTGTxZiKVlV3Uk0+YTGDFVUpFNC xPvxLnlB9V+e327YUH1by8EpvrqXpqYeK+v8WiJS/REr0rDwfYyMpFwIw9kNYJA6nmn0xz56Kt0 xaoFeWRDDZTkPgfI/jSzFuHdocQyQ1fFdwm7u1fpOPqeG7py/zYhM80Od X-Gm-Gg: ASbGnctU8SdiILnja7ZgVoitBRgoku+Hxw2MxED99h0aWF2NOJCZUVlNxq80/dVVYaX tUbBb4gk+V5Q5HN+Hb32A+skhXfe+Gn/c6tekIKE9VIoSCtQdmd/QScLVu98UJKOadDFIMopEag YzNs/v0YrWUXSuCANE+tWSrW6WXre/kUbNepfT5FBoQ+Q1ODUwQ2+x01w2C5mYEs5AmhGAyBFRF DWOcU1nqe6KLCbb4e9X/4dC4gIKvwEvbx+bkmbc/iGHZ4/wDnoVobJqlBCwtDlHE/xnjCfoYjg5 fjVM74VAsp8aZ7AHSZxIo6znZuQi8N1lsdOmNRc+qsqkROHTC751 X-Received: by 2002:a17:902:c94b:b0:235:278c:7d06 with SMTP id d9443c01a7336-23e2f6d2420mr256341535ad.8.1753097566923; Mon, 21 Jul 2025 04:32:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHdiPexjo8snhE5rX8cCdYEJMvmbD0WiiyBF6hWhLb265i3yIAKjCfEsAJyghAZC6LR1ZV+zg== X-Received: by 2002:a17:902:c94b:b0:235:278c:7d06 with SMTP id d9443c01a7336-23e2f6d2420mr256340845ad.8.1753097566430; Mon, 21 Jul 2025 04:32:46 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:28 +0530 Subject: [PATCH v6 23/24] migration: Add error-parameterized function variants in VMSD struct MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-23-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6628; i=armenon@redhat.com; h=from:subject:message-id; bh=4u2wEPaJWzkOD0krWjkaQt4Hj33n6lpbrXVanB9lnio=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyuQrvPPOz+Ro5XJsePsg8fSS9SeP3VA+8o+/ZoJ/v W9Tbvz1jlIWBjEuBlkxRZaGrwGyTQGFEZG2L6/DzGFlAhnCwMUpABNZeomR4cGKG9w+jdcvTjJ9 /k8j5pXeFLsF/e8Xa3xbuO67fbfq53MMfyW27F2Rl87xq1bbt9JyirTiYSXfO58Sr+S1ShhI9n7 L5gMA X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097833070116600 - We need to have good error reporting in the callbacks in VMStateDescription struct. Specifically pre_save, post_save, pre_load and post_load callbacks. - It is not possible to change these functions everywhere in one patch, therefore, we introduce a duplicate set of callbacks with Error object passed to them. - So, in this commit, we implement 'errp' variants of these callbacks, introducing an explicit Error object parameter. - This is a functional step towards transitioning the entire codebase to the new error-parameterized functions. - Deliberately called in mutual exclusion from their counterparts, to prevent conflicts during the transition. - New impls should preferentally use 'errp' variants of these methods, and existing impls incrementally converted. The variants without 'errp' are intended to be removed once all usage is converted. Signed-off-by: Arun Menon --- include/migration/vmstate.h | 11 +++++++++++ migration/vmstate.c | 47 +++++++++++++++++++++++++++++++++++++++--= ---- 2 files changed, 52 insertions(+), 6 deletions(-) diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 056781b1c21e737583f081594d9f88b32adfd674..53fa72c1bbde399be02c88fc874= 5fdbb79bfd7c8 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -200,15 +200,26 @@ struct VMStateDescription { * exclusive. For this reason, also early_setup VMSDs are migrated in a * QEMU_VM_SECTION_FULL section, while save_setup() data is migrated in * a QEMU_VM_SECTION_START section. + * + * There are duplicate impls of the post/pre save/load hooks. + * New impls should preferentally use 'errp' variants of these + * methods and existing impls incrementally converted. + * The variants without 'errp' are intended to be removed + * once all usage is converted. */ + bool early_setup; int version_id; int minimum_version_id; MigrationPriority priority; int (*pre_load)(void *opaque); + int (*pre_load_errp)(void *opaque, Error **errp); int (*post_load)(void *opaque, int version_id); + int (*post_load_errp)(void *opaque, int version_id, Error **errp); int (*pre_save)(void *opaque); + int (*pre_save_errp)(void *opaque, Error **errp); int (*post_save)(void *opaque); + int (*post_save_errp)(void *opaque, Error **errp); bool (*needed)(void *opaque); bool (*dev_unplug_pending)(void *opaque); =20 diff --git a/migration/vmstate.c b/migration/vmstate.c index 288b57e1ed778cce21247b64d5e97dfef41ad586..d96908d12ccffaef421e5d399a4= 8e26cada2cb77 100644 --- a/migration/vmstate.c +++ b/migration/vmstate.c @@ -152,7 +152,16 @@ int vmstate_load_state(QEMUFile *f, const VMStateDescr= iption *vmsd, trace_vmstate_load_state_end(vmsd->name, "too old", -EINVAL); return -EINVAL; } - if (vmsd->pre_load) { + if (vmsd->pre_load_errp) { + ret =3D vmsd->pre_load_errp(opaque, errp); + if (ret) { + error_prepend(errp, "VM pre load failed for: '%s', " + "version_id: '%d', minimum version_id: '%d', " + "ret: %d ", vmsd->name, vmsd->version_id, + vmsd->minimum_version_id, ret); + return ret; + } + } else if (vmsd->pre_load) { ret =3D vmsd->pre_load(opaque); if (ret) { error_setg(errp, "VM pre load failed for: '%s', " @@ -236,10 +245,17 @@ int vmstate_load_state(QEMUFile *f, const VMStateDesc= ription *vmsd, qemu_file_set_error(f, ret); return ret; } - if (vmsd->post_load) { + if (vmsd->post_load_errp) { + ret =3D vmsd->post_load_errp(opaque, version_id, errp); + if (ret < 0) { + error_prepend(errp, "VM Post load failed for: %s, version_id: = %d, " + "minimum_version: %d, ret: %d ", vmsd->name, + vmsd->version_id, vmsd->minimum_version_id, ret); + } + } else if (vmsd->post_load) { ret =3D vmsd->post_load(opaque, version_id); if (ret < 0) { - error_setg(errp, "VM Post load failed for: %s, version_id: %d," + error_setg(errp, "VM Post load failed for: %s, version_id: %d,= " "minimum_version: %d, ret: %d", vmsd->name, vmsd->version_id, vmsd->minimum_version_id, ret); } @@ -410,11 +426,19 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDe= scription *vmsd, void *opaque, JSONWriter *vmdesc, int version_id,= Error **errp) { int ret =3D 0; + Error *local_err =3D NULL; const VMStateField *field =3D vmsd->fields; =20 trace_vmstate_save_state_top(vmsd->name); =20 - if (vmsd->pre_save) { + if (vmsd->pre_save_errp) { + ret =3D vmsd->pre_save_errp(opaque, errp); + trace_vmstate_save_state_pre_save_res(vmsd->name, ret); + if (ret) { + error_prepend(errp, "pre-save failed: %s ", vmsd->name); + return ret; + } + } else if (vmsd->pre_save) { ret =3D vmsd->pre_save(opaque); trace_vmstate_save_state_pre_save_res(vmsd->name, ret); if (ret) { @@ -524,7 +548,12 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDes= cription *vmsd, if (ret) { error_setg(errp, "Save of field %s/%s failed", vmsd->name, field->name); - if (vmsd->post_save) { + if (vmsd->post_save_errp) { + ret =3D vmsd->post_save_errp(opaque, &local_err); + if (ret < 0) { + error_propagate(errp, local_err); + } + } else if (vmsd->post_save) { vmsd->post_save(opaque); } return ret; @@ -552,7 +581,13 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDes= cription *vmsd, =20 ret =3D vmstate_subsection_save(f, vmsd, opaque, vmdesc, errp); =20 - if (vmsd->post_save) { + if (vmsd->post_save_errp) { + int ps_ret =3D vmsd->post_save_errp(opaque, &local_err); + if (!ret && ps_ret) { + ret =3D ps_ret; + error_propagate(errp, local_err); + } + } else if (vmsd->post_save) { int ps_ret =3D vmsd->post_save(opaque); if (!ret && ps_ret) { ret =3D ps_ret; --=20 2.50.0 From nobody Sat Nov 15 09:22:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1753097854; cv=none; d=zohomail.com; s=zohoarc; b=Ln49FyH4VgSK/ja3NaPNYUm45vOuJV/GGIecbtySw4IaNoNBZTH9PkKrS9PqqGZV3I4Rhb14oM8ipYJoE1EMI/XQYxngu9aBhlLwePrH7ul5LQlN5zCrh8ZVXAB2qO84FuMjB/miZWmy9A5sdgzgziMXDMbotrDGyNvIryE9ZK0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753097854; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=JKqN1L12LAwvLMjtKMNxSR7OTCvLy+JRJATb+NmV8Sk=; b=SHJ8OFhsOeF1lUKsGXzIUtg3WyvdqGJvzOR6G0tW3YrOx1v9ZabfiCYJaS2uUv1pXTdgortcWXxrlTzTrDR97A9Va3n4A2hCEvyYcYHxFDBSvYopboJmraWuOwWVXK004XuoHTktPmbA5m2fZ/FGclrmRt9KcCgBYjl8Lb05HHw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753097854659141.47937413229454; Mon, 21 Jul 2025 04:37:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1udopG-0007V0-5L; Mon, 21 Jul 2025 07:36:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udolX-0005FA-6w for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:33:08 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1udolQ-0001FW-9H for qemu-devel@nongnu.org; Mon, 21 Jul 2025 07:33:06 -0400 Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com [209.85.215.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-311-tcrA8jA-MnSAwDuedWPw6w-1; Mon, 21 Jul 2025 07:32:56 -0400 Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-b31ca4b6a8eso2870645a12.1 for ; Mon, 21 Jul 2025 04:32:56 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.101.21]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b5e3c89sm56150465ad.18.2025.07.21.04.32.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 04:32:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753097577; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JKqN1L12LAwvLMjtKMNxSR7OTCvLy+JRJATb+NmV8Sk=; b=SVtM6kgVdkiFQ7gwIFMMNmfpaSBX20DX4AYLr8dBNGhXjimaejosFCpD5L1G/Gg+gX+TDR ROVJQF/N/whtaqiXr3qltSPtTZxyuXdngiF7lzTGMmJgwMkzX/lW4rhdKscqRQz2ux0tHc aEqATgjU7e0iCsARgqQkv3ow40LC3yk= X-MC-Unique: tcrA8jA-MnSAwDuedWPw6w-1 X-Mimecast-MFC-AGG-ID: tcrA8jA-MnSAwDuedWPw6w_1753097576 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753097575; x=1753702375; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JKqN1L12LAwvLMjtKMNxSR7OTCvLy+JRJATb+NmV8Sk=; b=Nd/67YVVIdLopq+5RjSmXLmLBbOFOK7BTnVUtk7BAj3vorQPG1ThXvnLtEPB6TmuLo HsSXA8GJOGyBzvf26Ig2B8He1mlzDUEkJeuKHniBjJ8NTMrBPpLB0z7YGKrhn8OXSS0M T0wFconVErsKM/yD2Jh/1Zm2kQB/fgZwZ9RTu2ZNVEq0CK4V79AlDprW68oWB5NCnywe m65f8ISUvzPXffSirPQL85m7hgFzcttywgtJAODtdl9pLW58Eih1zZDZCuTuJat4nbyJ vCyxNfijpv7fxPHrmJ1A7bDD8CuoqYVGjbD/LNAcN4Ysrd3kx0DqYtn/dvaambU+i7Z7 1g0g== X-Gm-Message-State: AOJu0YzXHVcDA+7HgeEA3h7MkcN9lxnGWyyiQmE4+TRm0Y34gnay04Hq GS+FJ0fTjKgMPGPGhcbReyiG5WL9od4IpfXBFTpaKZF54VTLt2stC4ylefoXLIWvb91H+Y/Vmuo tyssfLOhx7Yke6LqJaRNb5tesAJfGrhVcjDBQMzZST+OWBXV/PIbfqbrQ X-Gm-Gg: ASbGncvD6EMz2yT5ojsm6y716SCwDOd8I+N0u/Cc/cYyBQXRuOAyD6DNlq1lOlFTiG4 KZD+wy6IfnJDRnIv8vx5Vg+1GBafHQOHrMrv9ShyrsrvBbPE50R0kW8TE/XElMq13ojn1X1sW5i B9vCVucAuzA6YjMqwdbkSkTXPWcwHbV+VjfEi3GJBN5yUqWrp1EsRyh+wGVlOcLS1t05OEykdK7 2+l9grx84HKr2pINA18O63U8Lka8wCYK5OmqtsmM0MT1bHQm0FTs1Pq1KSl8txt7Y+WyWILOK3d 9tb3p4R3SK8HOGeuKRdL/DtnL1qgzwWEjwFDlfnnJTCPe2yRbAV8 X-Received: by 2002:a17:903:84c:b0:23e:3c33:6be8 with SMTP id d9443c01a7336-23e3c336f4bmr118762505ad.8.1753097575467; Mon, 21 Jul 2025 04:32:55 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHbfcVzkuh97j6K4G+F+JYn3x8FxbBl/npQfCdEJ1D7+ERjT8M9jlTe8kVvxHVmtfNuOeF5Bg== X-Received: by 2002:a17:903:84c:b0:23e:3c33:6be8 with SMTP id d9443c01a7336-23e3c336f4bmr118762025ad.8.1753097574996; Mon, 21 Jul 2025 04:32:54 -0700 (PDT) From: Arun Menon Date: Mon, 21 Jul 2025 16:59:29 +0530 Subject: [PATCH v6 24/24] backends/tpm: Propagate vTPM error on migration failure MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-propagate_tpm_error-v6-24-fef740e15e17@redhat.com> References: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> In-Reply-To: <20250721-propagate_tpm_error-v6-0-fef740e15e17@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon , =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= , Stefan Berger X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6670; i=armenon@redhat.com; h=from:subject:message-id; bh=Rn6IArfRb4G/LsYJZqQjGjrf7FvxqQakb6I/9s6ac6U=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0adyuTjbclbljwp/mzUOyM3PCNKTvKVY1rPFVO19dfnf 7jmIBjXUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCI3bzL8z7adVpeadmF381Le xugo9km3559bf0kzR/aowJE3+f0eexj+Bx7uKHU937m/4tUWK2V/BfFdySItr17m3pF5X3uFSZC FEQA= X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armenon@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.926, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1753097855152116600 - When migration of a VM with encrypted vTPM fails on the destination host, (e.g., due to a mismatch in secret values), the error message displayed on the source host is generic and unhelpful. - For example, a typical error looks like this: "operation failed: job 'migration out' failed: Sibling indicated error 1. operation failed: job 'migration in' failed: load of migration failed: Input/output error" - Such generic errors are logged using error_report(), which prints to the console/monitor but does not make the detailed error accessible via the QMP query-migrate command. - This change, along with the set of changes of passing errp Error object to the VM state loading functions, help in addressing the issue. We use the post_load_errp hook of VMStateDescription to propagate errors by setting Error **errp objects in case of failure in the TPM backend. - It can then be retrieved using QMP command: {"execute" : "query-migrate"} Buglink: https://issues.redhat.com/browse/RHEL-82826 Reviewed-by: Stefan Berger Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Arun Menon --- backends/tpm/tpm_emulator.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c index 4a234ab2c0b19b2604bf0dd8cb5f4540c72a9438..9bf5927e8e1542cf2e4f2275783= d32853d5f1473 100644 --- a/backends/tpm/tpm_emulator.c +++ b/backends/tpm/tpm_emulator.c @@ -819,7 +819,8 @@ static int tpm_emulator_get_state_blobs(TPMEmulator *tp= m_emu) static int tpm_emulator_set_state_blob(TPMEmulator *tpm_emu, uint32_t type, TPMSizedBuffer *tsb, - uint32_t flags) + uint32_t flags, + Error **errp) { ssize_t n; ptm_setstate pss; @@ -838,17 +839,17 @@ static int tpm_emulator_set_state_blob(TPMEmulator *t= pm_emu, /* write the header only */ if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_STATEBLOB, &pss, offsetof(ptm_setstate, u.req.data), 0, 0) < 0= ) { - error_report("tpm-emulator: could not set state blob type %d : %s", - type, strerror(errno)); + error_setg(errp, "tpm-emulator: could not set state blob type %d := %s", + type, strerror(errno)); return -1; } =20 /* now the body */ n =3D qemu_chr_fe_write_all(&tpm_emu->ctrl_chr, tsb->buffer, tsb->size= ); if (n !=3D tsb->size) { - error_report("tpm-emulator: Writing the stateblob (type %d) " - "failed; could not write %u bytes, but only %zd", - type, tsb->size, n); + error_setg(errp, "tpm-emulator: Writing the stateblob (type %d) " + "failed; could not write %u bytes, but only %zd", + type, tsb->size, n); return -1; } =20 @@ -856,17 +857,17 @@ static int tpm_emulator_set_state_blob(TPMEmulator *t= pm_emu, n =3D qemu_chr_fe_read_all(&tpm_emu->ctrl_chr, (uint8_t *)&pss, sizeof(pss.u.resp)); if (n !=3D sizeof(pss.u.resp)) { - error_report("tpm-emulator: Reading response from writing stateblo= b " - "(type %d) failed; expected %zu bytes, got %zd", type, - sizeof(pss.u.resp), n); + error_setg(errp, "tpm-emulator: Reading response from writing " + "stateblob (type %d) failed; expected %zu bytes, " + "got %zd", type, sizeof(pss.u.resp), n); return -1; } =20 tpm_result =3D be32_to_cpu(pss.u.resp.tpm_result); if (tpm_result !=3D 0) { - error_report("tpm-emulator: Setting the stateblob (type %d) failed= " - "with a TPM error 0x%x %s", type, tpm_result, - tpm_emulator_strerror(tpm_result)); + error_setg(errp, "tpm-emulator: Setting the stateblob (type %d) " + "failed with a TPM error 0x%x %s", type, tpm_result, + tpm_emulator_strerror(tpm_result)); return -1; } =20 @@ -880,7 +881,7 @@ static int tpm_emulator_set_state_blob(TPMEmulator *tpm= _emu, * * Returns a negative errno code in case of error. */ -static int tpm_emulator_set_state_blobs(TPMBackend *tb) +static int tpm_emulator_set_state_blobs(TPMBackend *tb, Error **errp) { TPMEmulator *tpm_emu =3D TPM_EMULATOR(tb); TPMBlobBuffers *state_blobs =3D &tpm_emu->state_blobs; @@ -894,13 +895,13 @@ static int tpm_emulator_set_state_blobs(TPMBackend *t= b) =20 if (tpm_emulator_set_state_blob(tpm_emu, PTM_BLOB_TYPE_PERMANENT, &state_blobs->permanent, - state_blobs->permanent_flags) < 0 || + state_blobs->permanent_flags, errp) < = 0 || tpm_emulator_set_state_blob(tpm_emu, PTM_BLOB_TYPE_VOLATILE, &state_blobs->volatil, - state_blobs->volatil_flags) < 0 || + state_blobs->volatil_flags, errp) < 0 = || tpm_emulator_set_state_blob(tpm_emu, PTM_BLOB_TYPE_SAVESTATE, &state_blobs->savestate, - state_blobs->savestate_flags) < 0) { + state_blobs->savestate_flags, errp) < = 0) { return -EIO; } =20 @@ -948,12 +949,12 @@ static void tpm_emulator_vm_state_change(void *opaque= , bool running, * * Returns negative errno codes in case of error. */ -static int tpm_emulator_post_load(void *opaque, int version_id) +static int tpm_emulator_post_load(void *opaque, int version_id, Error **er= rp) { TPMBackend *tb =3D opaque; int ret; =20 - ret =3D tpm_emulator_set_state_blobs(tb); + ret =3D tpm_emulator_set_state_blobs(tb, errp); if (ret < 0) { return ret; } @@ -969,7 +970,7 @@ static const VMStateDescription vmstate_tpm_emulator = =3D { .name =3D "tpm-emulator", .version_id =3D 0, .pre_save =3D tpm_emulator_pre_save, - .post_load =3D tpm_emulator_post_load, + .post_load_errp =3D tpm_emulator_post_load, .fields =3D (const VMStateField[]) { VMSTATE_UINT32(state_blobs.permanent_flags, TPMEmulator), VMSTATE_UINT32(state_blobs.permanent.size, TPMEmulator), --=20 2.50.0