From nobody Sat Nov 15 07:42:59 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=1753446128; cv=none; d=zohomail.com; s=zohoarc; b=fP3oMRWtrLf6cfNZzfPQCfcO7khpgtHvzoJBsPie9GIbjNssdPNlljGjkEXq2xBxQDi6snNc8Y9ZNGsE1Pwc81bj+LsIZp1EKCIoy8ik6CpRLW7qWG+EaZlGHKkUZ77JLnrf8eytb90/1tDjEvrDwKyrfvxCmFdZbHxrRoZr+Lw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446128; 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=YClqxQljy3nk1vTGNWJSGDC+1mX40b0oiiphoWw1wA8=; b=hHI9VKIK8Znj/SAL5V0ApXqo+DT4IpllmmJGtCnLIoWtk0TndewAvT2S7tgpD7UR+yU/+QIUYR5bMCDtZ4gJBu7YUeUw8ZBDCK4s1dT8yLmQdvO9wMioPFaYR2UH3PQvBTm6/Him5jJIBOJ5v0MGCD0c/prf7C+6p47D5fim0yI= 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 1753446128523488.1213702813503; Fri, 25 Jul 2025 05:22:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHOc-0002OA-RN; Fri, 25 Jul 2025 08:19: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 1ufHOS-0001rd-UD for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:19:26 -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 1ufHOM-0008H2-W4 for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:19:20 -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-421-uIhVbllmMI6mq_OqeHo-Gw-1; Fri, 25 Jul 2025 08:19:12 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-315af0857f2so1928682a91.0 for ; Fri, 25 Jul 2025 05:19:12 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.19.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:19:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753445953; 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=YClqxQljy3nk1vTGNWJSGDC+1mX40b0oiiphoWw1wA8=; b=HIC5hL69viL5SenogoJKZsPlXtB76YHeZ4HkSWm3aULKBcQWwF47x8pJAPLtQbrqTjs7KZ ebS1vuzNVIuYxd1tERg4L0VayPoAZMAS7hl4d3nmcVF2qANgYPZo54p9GsYGhYuXgwHo/w k7jxEC3M49HQRSeZbYMtgAAps2oZUVA= X-MC-Unique: uIhVbllmMI6mq_OqeHo-Gw-1 X-Mimecast-MFC-AGG-ID: uIhVbllmMI6mq_OqeHo-Gw_1753445952 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753445951; x=1754050751; 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=YClqxQljy3nk1vTGNWJSGDC+1mX40b0oiiphoWw1wA8=; b=phJUkgxpmRj5rYnSx9sOwsJ8e9gCmUaGtgjZQa9NUGRhjCIMvHst7HDrpge2bGNlDl gAMQHCq8+nvrw7j0os0TLyZ4hth1KmHxwxlXULkQKjjg6D1UQ6yN0oZoG6c2WkNrGTaP 5F3e0t2fXjydFVLW0SqgJCcg6LEa1CKbe5Lj+nv76VRZv5sDVXc6XxoWU4nsiiwPPGUo KdC8CnNvVeAUEmW/FVhaVUoRnKeHmQZK0lbQq+/T1MMqJ25MD7zovzb08gU1RiFPUMv4 DJ2/GA9fRnaS2SQ9NRUpvf1NDD5VFfNUaEu8f4ZG7Xv9WgLVnnrvsfTRdnzYiW8/CBzB 6rnQ== X-Gm-Message-State: AOJu0YwXh71H4XnU1SKPmQTyy44w8fR0pAAERTwuGhd1pyznkuyAgMJW CzgIsaDOMzSPzCTqRTetplBhdTxGDyuR423spwMtYfv8ai9SnM6xRTvXA1J2kinzVB7APZ/iReW wv+unn2mHzxAulaf7VM8nj9aZNLS/LmQp676gCvuWTX+GmiNmmt1tQFXx X-Gm-Gg: ASbGnctyfvoVnvajlFYqeKLG7OHpgcNLVZGbLqGjlTUuOHc/UIJ0ELWzro15zQZgc24 v9JKXoqIrMRp8K9IAEwF7/kmQnTdXb4Y1bUD4Kx4rp0d0B+LDUB3drbxW9nCJA0RqWIiEu/33bS UMzZfGzgMrDeYsBnkH3rLXvd3pOB9bbaP+LcsGo2Xxgzs558SGtEtiFFH9PKCtB+huw7qOvuRNg X30OFhFo9hizzmO5EPn4r15oPZ47kztdiQdeA+2ol+GCNRhylXOak7Y9pmZY+CnGDHC3jjl3u4T Z6SrN+Bwe+YE+3n8KJCPn6xAa95jMbkdZMVddC9Te1hlbVK8pkxTNw== X-Received: by 2002:a17:90b:3c05:b0:311:df4b:4b82 with SMTP id 98e67ed59e1d1-31e7783b435mr2584284a91.4.1753445951477; Fri, 25 Jul 2025 05:19:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF/w2Tx+vCDA95ZOC59U52Wg15dLMZkq+en+dD6jEXzk8kW6UbOcMISBK9gclcAgib0gX/VGQ== X-Received: by 2002:a17:90b:3c05:b0:311:df4b:4b82 with SMTP id 98e67ed59e1d1-31e7783b435mr2584231a91.4.1753445950917; Fri, 25 Jul 2025 05:19:10 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:40 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-1-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=2794; i=armenon@redhat.com; h=from:subject:message-id; bh=JGAT1glDLxGdY6DFs4uaRV5zAoh2FZziVpuy5acuyg8=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmbYyL5eMnYHR4x/MhS9uf9pzKOqcx/IM/UfTlezY7 c/0Rk7oKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMBGlWkaGTYq319yaIXaHx0vm sbGMrJTWDbmN+4+w934WViyb9yv8OyNDw6zyswubfqUeuDhdfCqb78r0cxOrtDmXRwW9zukIUWL mAgA= 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, 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: 1753446129356116600 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 Reviewed-by: Marc-Andr=C3=A9 Lureau --- migration/vmstate.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/migration/vmstate.c b/migration/vmstate.c index 5feaa3244d259874f03048326b2497e7db32e47c..aeffeafaa4fa7582076a4f27479= 06ddf9aca891b 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,9 @@ 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 07:42:59 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=1753446064; cv=none; d=zohomail.com; s=zohoarc; b=LPCrIGBr19/nL/heiM/Y0w5jAGNrCkTT4i4guRdHiXt9olphy8CXzRcA0/yrUOh5vVcgTfDef93HH3SmsnmTJ3JmV/g8xJwe4fLEA4dB8WM75OVsqU8p/KFjNBzlOt6FI+UE1LtracMnhOCUoXbJ2G9/9ThK3zapd2RjiUgMeWY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446064; 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=IjoySd2LhsikHOiNOUwtGaLfBiQ/xD9MmCuHa3AGW4A=; b=UoObXPFdLJ9WS4fyR0nn3czDBOBioqvCH7W++x3mZqT3n8yv9SMb1OEHLQSPQ0KbD0//DkJDBFcY7d2r0EaMQuYykpZc5IU3KdtW3sPHf79w++PyDf92BoaA1NOlVZ/5lEBIrnhhaqxWfsgNbrK1aRQivpuKtcmuFOHb3qdbSXE= 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 1753446064695722.1398804757782; Fri, 25 Jul 2025 05:21:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHOd-0002VP-Q3; Fri, 25 Jul 2025 08:19: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 1ufHOb-0002CQ-9X for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:19:29 -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 1ufHOX-0008II-H0 for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:19:29 -0400 Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-483-TXnn_fOsPBWLIByz587RXw-1; Fri, 25 Jul 2025 08:19:21 -0400 Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-31315427249so2026156a91.1 for ; Fri, 25 Jul 2025 05:19:21 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.19.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:19:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753445963; 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=IjoySd2LhsikHOiNOUwtGaLfBiQ/xD9MmCuHa3AGW4A=; b=ahPsfVqMmFV1xsYHUgDxWjtYYXxHORPfncF5BlX5WPmfuOwKaWoI77GJ10rnI8c7plnfNK iAfRkrsyPzmEUUobeFuFCIkETdjHdgYEMxPSaOIw+6/Fy52Cv5kgWN73pDV+5dyTFeI+pn FWLtMYYqn7TrVx6xkyw+IvMmbg1m9H0= X-MC-Unique: TXnn_fOsPBWLIByz587RXw-1 X-Mimecast-MFC-AGG-ID: TXnn_fOsPBWLIByz587RXw_1753445961 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753445960; x=1754050760; 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=IjoySd2LhsikHOiNOUwtGaLfBiQ/xD9MmCuHa3AGW4A=; b=ZjwI9GCjxik+/6uaEl0goum5BNs080lI/AQyHIeLg/rW6UJ1BYRrJZ0hf2a/tLRm7Q dOeFjF5Unpi3TdbvaeZ4YRcVm9m3PYBNzy6fzc0bxb5n4JH8KAe2SHZHD1J3BYly4+AH s1/92DVlysKwW/YC7V08oQyhn+zWIzBGQGVHKaVQjFZ8hPLiXsnHmhUtQ/nP3KPu88jm hfyVPqSxL4eJFLlUIVOD86ls/CTLr25V1216TANjAm6OuCgN9YzvyOxNPI0cpR4BM46C YSL9oE1iO6/2EqFGXO/SlC0kd1AMi/2zoHODC59tsiou7QvKFYaULfgJA2/iV42AOxwU eJMQ== X-Gm-Message-State: AOJu0Yx2CTSmUidGWxgUaYMP8X9PhSQT7SRFyihtmkShT3/XaCLJUl9X vdBCvYxPHqHcaTuHVAQC4KfPXkhPgBcmGohfGb0lO6+Aqmx6omvbL1M/75B2Z4DwRxwJdGFyVFV JpVSRZZU5zDPGBOwdBPbFsPtqSuxZ24pbcgWCzZXuBtnFbCfjqtvWCXIb X-Gm-Gg: ASbGncsRy3mMXCptLzV7QdBE+nY/JBGHxbPq5X7xbGjk2pZS+2tYgKiqkws+xXlNK7k wadtn7Vt27yDynDzucvoc6Z4fHJ1qwhxtWWdLLLdCUTLkoJSfgTBMUT6XgBD0i0Vso6BB957fs1 419xIZh7kmwdf9yY5o0q4E6Oz3TEpeuXAWy2YKekNSd0FqOfm9Y7r3nKMAGEaxYJGfc1F9ptbms Vj/u70n9M/2abc/wdtlIV0qeYxt/mwLM78qJGhCU/ViPigTmFttzur2pqKSGem1Qma3TUJP8byC Q8mx7wrY9/uYvGZU4UKwG1R/+Te5XLPSgjvTaDjwC3xVyyXlJCboLQ== X-Received: by 2002:a17:90b:1350:b0:313:b1a:3939 with SMTP id 98e67ed59e1d1-31e77a64c5cmr2361611a91.15.1753445960366; Fri, 25 Jul 2025 05:19:20 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGb2SVv5zhcDKR3A8ePmWlQrqrYN7LH5ZHCkWBhxKrW9HTW4vhhkg3zwc21kpPZ9+WsfW6u8Q== X-Received: by 2002:a17:90b:1350:b0:313:b1a:3939 with SMTP id 98e67ed59e1d1-31e77a64c5cmr2361558a91.15.1753445959790; Fri, 25 Jul 2025 05:19:19 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:41 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-2-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=20383; i=armenon@redhat.com; h=from:subject:message-id; bh=cZaD3MICUx+jAtz1BCug//aFynf6GAsLaEOfOm+Ey38=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmXbrSskbd6Y3TFJhWsMVJfkwocpQKHShaojxhR/e+ dprMr53lLIwiHExyIopsjR8DZBtCiiMiLR9eR1mDisTyBAGLk4BmIgnK8Nf8WYG7jU84b929Tw8 MTmvsu2tyBmWkjOTGHLOnJy05wF/L8Nf8TUq7/h/dBScl9mV48o7/8urtFTWkwfUw4wbWveV7Jv IDwA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446067286116600 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 Reviewed-by: Marc-Andr=C3=A9 Lureau --- 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 | 49 ++++++++++++++++++++++++++++-------------= ---- tests/unit/test-vmstate.c | 18 ++++++++--------- ui/vdagent.c | 2 +- 15 files changed, 62 insertions(+), 47 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 e72d514a4cb91946f7c79332492bf5d709c308f2..498bbb96e97df50af5fc906fa00= d4436c1edc05f 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..9569c3f76bf8714def6406ae24f= 7fbc5afa4e793 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 aeffeafaa4fa7582076a4f2747906ddf9aca891b..bb5e9bf38d6ee7619ceb3e9da29= 209581c3c12eb 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,34 @@ 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,12 +620,12 @@ 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 07:42:59 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=1753446012; cv=none; d=zohomail.com; s=zohoarc; b=nwsFl08w50Ua20bmjJGjMYx7BLBRxhcpD6O9VJwu7Z9S2wMJy5Zi4/UxkEdOSDp1ghPYGl9m01Keo1dHyfHxlUk+fDql0jvt6NtMH5WHoqYStpNiTMoS6Cqd9dTFh/zVGvCzznExMcJIWL50QNjK/RwG9YeiABjD35V9KG66qk0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446012; 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=nSdOLBofbaMI4nm2Vl1Ir6bZz6SRg4kCgV4JN9Dx5bo=; b=acQ4yQ0qkOvYA8gYni/HjjdJHrPlmg8eok2WXcYp2gvH98bpUTAjgtcaYnYJQYAHYKn4lofaKvSPDudtIaf4nObC1Hvwbnm5iWi8183zF5aEYZXdKYIJxJRIdt4EuxZFnrYg5AFG1y3dYzYLcYWJqrWxquWDIp1ADIpnETSl9kM= 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 17534460123941022.1212868592195; Fri, 25 Jul 2025 05:20:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHOk-0002qk-BB; Fri, 25 Jul 2025 08:19:38 -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 1ufHOg-0002lf-Lo for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:19:34 -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 1ufHOe-0008Ly-QQ for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:19:34 -0400 Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-113-o4cDEcqHOfu5StwnyaApaA-1; Fri, 25 Jul 2025 08:19:30 -0400 Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-313c3915345so3264326a91.3 for ; Fri, 25 Jul 2025 05:19:30 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.19.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:19:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753445971; 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=nSdOLBofbaMI4nm2Vl1Ir6bZz6SRg4kCgV4JN9Dx5bo=; b=coQZSo/wv2NyWQQZXM9NkKlXfpeu2RK0wxg8m5oymgjRZG14nL2ZUgYM3Zjf4JbY8Oana+ 3cnRFhkgFuwkLrgbcmsIMGZFgdkIeKbW2N68xUC+Sw4pSlHlMUfOEQb4MXL1k13Nc3iNKs 7HwsR9WvxKvSprDgBifKLpQjMWGhSZ8= X-MC-Unique: o4cDEcqHOfu5StwnyaApaA-1 X-Mimecast-MFC-AGG-ID: o4cDEcqHOfu5StwnyaApaA_1753445969 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753445969; x=1754050769; 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=nSdOLBofbaMI4nm2Vl1Ir6bZz6SRg4kCgV4JN9Dx5bo=; b=vBZiQsvKdTUQbc8Wrn/h3buEQCuEYbGwGb58a5LZp1oX6L347gs+0b7+yJ4/g6WvRF 7lwfS6gjHuH+bQOTgVoNP/E5V6j3xYLDfkkfQBExY8g2HrUG4tYa1ipdhx9ErGbq5bKx RYlC3P3tJ32AhbCtB8wBtW3SwLE9oBk51sWJWWMBtxQMEJmjpA21V7MQrJfwu3PlBpm9 iKPePuNeNmRnKdkcFPgOqprwrmoojo+VdOxXNljm7bVlrumBBTV6iUG0cpkvhj3ehuDN FmHcTphGQQlLoBCw9G8DzRzxSVWtpMEPJEmZgdXaukGDKj3TdPu1QLF2wDeGkySrPhGN piPg== X-Gm-Message-State: AOJu0YwhRK0t8x1sPrC3SDr2LQBgFql6ky/+hJnK6839KwMxHXH5e36m iak2BT+LeUkUa2CN1MwzIL7yhrDXhWcEKNYWaYMjthmvIoBnHqfGmwWNJLW2P4o/FjBE81fTf6y BHWi5A/S01znEVzsD9IEH8A/QOC7Kgr/Ncl6l6nDxxS+7MS57v12oLaMX X-Gm-Gg: ASbGncv3bt4nVr9Ii8JUGE3CNALPDEQrZ5oodc8EN83/68zRHnJLT0zlg7Y7UTV+Qjn xY5RgqcUiKmRzs0vzsdMEjaCC4L/Dnk93eQJgp+9Pj9p3sXflsbFPaIzT44wCBYJ8h3v7DWbOUi TfpUkR0VnIAsmp0C9Wk7Vt1/YuffZHRuzQkD5t2d+Ef92HXUhu/wHqkjsNPbLos6927amCxcQxn FUjzckeo4Id7Z/Rpzt1NepTWlhE04R/12L3BV3jygigEgbDb2HCEyX59PnMh6OP9PlIsqEgAbSG db/oJv40wzfj21jT5Ws3PK07rN0jYXoenXmvH16MJ5IAiJxkOUFoOg== X-Received: by 2002:a17:90b:2dc6:b0:311:abba:53d2 with SMTP id 98e67ed59e1d1-31e778f7b83mr2854678a91.17.1753445969261; Fri, 25 Jul 2025 05:19:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFWWG8q6k/Edi3H5TiO96jTiMc9voUOIudslGWUe2Gy/J31lHGvSMlsU/jDJXAGjjaGf3bcJA== X-Received: by 2002:a17:90b:2dc6:b0:311:abba:53d2 with SMTP id 98e67ed59e1d1-31e778f7b83mr2854602a91.17.1753445968799; Fri, 25 Jul 2025 05:19:28 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:42 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-3-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=2826; i=armenon@redhat.com; h=from:subject:message-id; bh=xnCl1fpSvmju98xAm/G0jLUaLzXtEPwt2s1ve1LBQ4k=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmfYpRrGdaqVVBvIC804rHF51UcHZpnDqkuzKxsVLd yz46xvYUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCLZ7gz/0wW/8d1996BZjvFN /sKEZ5HOeXmPV8YYGx8/ly8S0X/6MyPDHp8i32crjLtnJ8z9Xi9/Lbd824qUFJ3MdYdf+krM21n ABAA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446014088116600 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 Reviewed-by: Marc-Andr=C3=A9 Lureau --- migration/savevm.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index ab947620f724874f325fb9fb59bef50b7c16fb51..842ff3dc6d5ccb05f7d33cef9f7= 319b141419501 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2814,35 +2814,44 @@ 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_VERSION); 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 +3128,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 07:42:59 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=1753446034; cv=none; d=zohomail.com; s=zohoarc; b=FxSQepqizqIRm0VljwuYmpCVUw9qSL9SDxWvwIBFiuxUOLFWKwpZQJxv4f0Ku30W9DJCULG7qRBiCWFsAtoKRiQtxXtMuqkCTgu1HQqe9K93sIUOd8U035Pl7wljwZzmI+Bt9fXnMA1ttrQFchD1Z03KaNfQr6aaVD0Sh56XZE4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446034; 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=h3Awn+NwWRVG7jYVn7MPY5UYQyt9ZrEMXBbDp2gmRGA=; b=OesXcQXv3IJJoN8Xvv335IPXGVRQ2OrWWRjuwa+QdfGRYGe+mXpvrgB9BuQujkCjj8P4UQ7pN35RRp58C7OhNNWygBfxdpCsmF6oEpOQfNEmPLXnDAgtGtX6Sr6gyqf0lH5QrbozaPp7YrIgc0UDccy2H89FbLXKxoOUQPtA6nI= 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 1753446034816447.58623976201363; Fri, 25 Jul 2025 05:20:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHPB-0003yK-NT; Fri, 25 Jul 2025 08:20: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 1ufHOs-0003GG-4a for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:19: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 1ufHOn-0008Oh-Pe for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:19:45 -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-111-A6N1C5zdNDmRSoI4g86DaQ-1; Fri, 25 Jul 2025 08:19:39 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-3132c1942a1so3295804a91.2 for ; Fri, 25 Jul 2025 05:19:39 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.19.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:19:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753445980; 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=h3Awn+NwWRVG7jYVn7MPY5UYQyt9ZrEMXBbDp2gmRGA=; b=jUgUf574Sxbnd6y22Uy2OJuj5UpAagkxrG+WKHNbfoKMj+KqXVJL+i0TPbBAXNwPUj9Y5S 4yE3Ok72m/1fsL4IdxQ8plTH2I0obS85SBCUOaJSotuDIuJtdF7Q8ivcYGS7rWiiXBJSYp DqfjXeogNS/alj6Q/IG5zPX1bScPhtY= X-MC-Unique: A6N1C5zdNDmRSoI4g86DaQ-1 X-Mimecast-MFC-AGG-ID: A6N1C5zdNDmRSoI4g86DaQ_1753445978 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753445978; x=1754050778; 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=h3Awn+NwWRVG7jYVn7MPY5UYQyt9ZrEMXBbDp2gmRGA=; b=lRZp5ZzVXXUzB9KAQQYTO+WWrJBobPi2Zt4+3USQiufMKAN6fQoxoJoN+JmjRllZkV AhxYQssqWJ0KN4N2q90Y1TGUzFlLOgWTn7i08yGZ/ihz46C27P3igPkJgTz5S/a+xgLx uWfkKSzfd/chLRQRc6PpMBgJyiROyT3Co4+fEIrhi4coSh/svfg85CYGChGUepFkbZ40 t0PvdcIEIZKTFwPu7rqpoAMNKffq7m/xVqcRd/yVUcriunoDlY8IbBAiptuK/J1SKZ6+ aKJYnLvfuUACXo7bFMhunAwgW7iKsm+42ZWEwidRvPA1lCWnPoMzBrauU6M/yZ7CgR4/ 9V2g== X-Gm-Message-State: AOJu0Ywdf9powlyXbfffK3Qp7D4d6vXt/p01hP7qlY0FAl1fkCTgozVS XawGvXdSCwN2Cn7JBk9FuZldA3Mf/uNZLBChtU4TOleMzHLr1vk8yQAduuR5XTlD1RWCQIGnH7/ 1Og/7ZvwuqhHmRHTqOqH9IfnJMBQ+AqKol3jxMUFQpqbbdYzUhlEdBsRM X-Gm-Gg: ASbGncv0N1wylGBtiGHcWEshtrMkjxPFdhaS4S7pRFYvCL6nh+tkGVDbPrV9elFfLWB PRhEby9UDIHqylw0o5R1UkSHCKQeZ07udlLdl7p5Mb7Hpxexa/kMkqzpobPnkCeA292zb76zoaN WHYOX34yzUzczw3dk/u/oEooWg3W2gJlbc1tEe6Pbn13IaltzpcJl1VdcpYmJ0A4OicqdDB1yzp s01kSwwqo1sMSI3PhUYvA6KEwegzKtYVTnP7oVKk2iObSFbwgd4HvVj7VXqovaGwpvMztRMg8hG oMllvwC1OT+spZbFEtQF9ESmCO3MJOaqKoHGkFlOb2+Ure7EudR4iw== X-Received: by 2002:a17:90b:5310:b0:311:e8cc:4248 with SMTP id 98e67ed59e1d1-31e77b1f2d9mr2872281a91.33.1753445978028; Fri, 25 Jul 2025 05:19:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFx0HOk0mQW3qbPb+3CM5rdrsy9rJTY6bNPtNw4qrhW9+tDmRL65EGE90yiSea7oYE3Mt6NuA== X-Received: by 2002:a17:90b:5310:b0:311:e8cc:4248 with SMTP id 98e67ed59e1d1-31e77b1f2d9mr2872207a91.33.1753445977502; Fri, 25 Jul 2025 05:19:37 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:43 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-4-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=2314; i=armenon@redhat.com; h=from:subject:message-id; bh=rSq8XlbxIP2TL+IIxg8guvnfFFsgOaQYboopFmhHT2o=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzmfb6OOaKCUfSeVqKJmefM55inyxZWK/e+qp3n/Tmq i25yjc7SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATEQvlZGh64F6xJ6Yk6FT/wlw ck96MTNSks9rOffXe4dOKp/dfsCMkZGh9eQZBeOZEwynnZXfmxsxd232xrvNRn/4fquxd3s8/XG SEQA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446036373116600 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 Reviewed-by: Marc-Andr=C3=A9 Lureau --- migration/savevm.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 842ff3dc6d5ccb05f7d33cef9f7319b141419501..736410be867a29efa24d749528c= 9bc203a3e8131 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 VM version_id: '%d', 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 07:42:59 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=1753446065; cv=none; d=zohomail.com; s=zohoarc; b=RkhqLuxrSWuE5Jrt3OBweejJY4T/TM6+7TwIjZ2vKASsAaTN59zPVqzOpmmX5PPbpEt+dD7AJbAJ8CJ5y74hj2/q/B08IKY6/acdeV/MsY3xlNurDD0gQEreyIuvBolc+9e+0oljB1KCC+LEelgfK4fVoovYJFUXExZDUTrKyxs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446065; 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=LsEuW73zVohfNc8BqDHfawADf/ZZJt+lrLuu5ZeHKYM=; b=FBLxuZKDZf9v/tYZyeMaSLk2cwjlXg/tK8J3JoZWilSKO4JQzBkwaEKCoy0hhqdBYGKVKAUpRc+wypUHj2UtvdzsAgKDDU2sq7w/t0fX9vRbxTd3UwhN5V+EdFzYmd8CAbVhY+VOmywA9S/9vKxQitGe11OMB9Hig6cDdnPdL7A= 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 1753446065916227.2191230730142; Fri, 25 Jul 2025 05:21:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHPD-000422-4T; Fri, 25 Jul 2025 08:20:07 -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 1ufHP0-0003gK-5K for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:19:59 -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 1ufHOy-0008QJ-4o for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:19:53 -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-515-wfRjYfpPMdOgHGnrzQUdtw-1; Fri, 25 Jul 2025 08:19:47 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-23632fd6248so21521435ad.3 for ; Fri, 25 Jul 2025 05:19:47 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.19.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:19:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753445989; 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=LsEuW73zVohfNc8BqDHfawADf/ZZJt+lrLuu5ZeHKYM=; b=iR9u23bzHU49wI3ihssle7nXK0EEj+8eDLP4vzhKYC7Tnd56wXeq9Grj7eS/Z9vf7/VM6m L8UrcPNYpD5sKYOwWh1PT3QclAozasxCePUPZ0LJ2V3MM0pLhKqBWk1XzZKtgrPL7RUZ8j XEk4s3wiFmlGqZQE78rGn+zaw9BxMTY= X-MC-Unique: wfRjYfpPMdOgHGnrzQUdtw-1 X-Mimecast-MFC-AGG-ID: wfRjYfpPMdOgHGnrzQUdtw_1753445987 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753445987; x=1754050787; 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=LsEuW73zVohfNc8BqDHfawADf/ZZJt+lrLuu5ZeHKYM=; b=Rw1Vt+/bo9Zc1TpGsUl/VmKBMNR3lFK8eTiREQ/822yUxcSz+Xn2ZyEeWXqe5mCwqr kB/Z2dnSpaGdAMh72yEVTOo9nezDrCyLWodj0uxHNN7mHcwCsDXTHU2j7bWMY6LscfWg lhPCdV+/8IDbpW+oAMSS472BOhrfwyeG5v1Q8+z2ZbotAW58tDvLkKGQx7qpz13EAvDs DI56tuxRISYc+VSfZltbjLTaoLyhIjNSJJIce3NZ28rksmag6L803Kbelp1ZbRIh+Qut m9qePPCIxW7cl2pAc91bektlN+EjZE1wgk5wyVRXDOeA72M9suIQ8vNg9RkpFVv/8jLa a7/A== X-Gm-Message-State: AOJu0YyoIyFUAWuj+35TbS66GfEtai8ARD9380JA3ipKWvCsWtjosTbI 8x5tEXdSfzRbeNwoap8spv/kIH0VPIclSdCTSgmWH3uEamsLesBgU7bcbaWn3WmA/FtB0tiILYF /vxBniTeh+xRLhckNE0jk0gvaUD0IzMw3cd0Ra/7mCsEft5QVvcdLpi81 X-Gm-Gg: ASbGncs1YDgw6IyEKiP0Sh9MaL/ix9GEsXY3t/luGqbP2ElkVp8EBGdH84cN6IXTam6 bYF+KGejruFmtlDWSrQBG2z1z2Nc+SUAzZhmAF47cWgbsu62xKfBA0NdaThIfEtE06ZFZ90+lFM U5RSPscj/57Kz2jNtHSQab56OLmAD/tDHMRYYcdW4vJd7I+lF3Sic6hsNM57gGSoOClPH1vNKqx 87Pst/NNuL5wqh9Lkv6k1DJlZzNQ8y2CaYvh7032i3HfDF8S0Btr9/HW4+crAJOTUDlIlp+RXhf XGGIsEXDOeppazW/fTlkVP8pEu34GmohpJO+pIRKRWxO49I3SWMTzg== X-Received: by 2002:a17:903:240d:b0:235:91a:2c with SMTP id d9443c01a7336-23fb30f2bd1mr25260595ad.42.1753445986494; Fri, 25 Jul 2025 05:19:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGHUSpjSLLT/8fDDI0w/yuUn0ZGCttdjzpKgHDv1khcXLxPkkTHZa2SLdMFew7lYMIvbEK86A== X-Received: by 2002:a17:903:240d:b0:235:91a:2c with SMTP id d9443c01a7336-23fb30f2bd1mr25259775ad.42.1753445985921; Fri, 25 Jul 2025 05:19:45 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:44 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-5-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=4682; i=armenon@redhat.com; h=from:subject:message-id; bh=Sy2lJgo11rDc7boispc7WTy/Vt3g+o+Uc3avHFYJy38=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmXa/9JecVRd5FnBFqO69dc9rS5WmuJ+8VEWLc66ic OCJSYc6SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATOSiD8M/S4EpalKv2Of8tYu8 t99h+xUjCTmOJR6BclukZ7yMKDRgYPgf8ibynZN33wnXfpXLmjcjLtzh9HF/8X/1q9pjHsVBV6p 4AQ== 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446067068116600 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 736410be867a29efa24d749528c9bc203a3e8131..29d2947eed79432f7bd92247435= 49aad87d177b9 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 @@ -3063,7 +3066,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 07:42:59 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=1753446170; cv=none; d=zohomail.com; s=zohoarc; b=ciE6qw/U6Pcfpmu7ZCAgVUhun17bsTs8etMX1M45pKCMuuVmdRdAtBaQDRvcu6Igkj3GxZDwOaYCXyzmfCXUF6G7QkKFO8umKeQSOAeoYhq7tNw8csdU0RilaQqJ6h4/lVNj+TvpKhvdVqWklkj0Ztn3wIf6ZoB6GTH7j/7xaJw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446170; 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=JoeK4yTKfwZgURj4im/s748g50ka2gxF6YjSfo8g5a0=; b=QVxLDcK89jLjz8phBOcQGUIcK4mjMsd+2okx6HpGLZik+Pl0DI09RpxgKl8SVYgdClIYWyZOpnrgUDDE3Hlxwil/3lUk1O1DR2sVRd8q7HV2QuAaD7zUggWDXonMomEgqmWCSFnQmwKttOMc5re/+e7BEQsR124UI6KHjpcII7o= 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 1753446170811960.0946150131847; Fri, 25 Jul 2025 05:22:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHPn-0004rq-7g; Fri, 25 Jul 2025 08:20:43 -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 1ufHP8-0003st-Bk for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:04 -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 1ufHP4-0008S4-1f for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:01 -0400 Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-572-rJQbpMQ1N8eYxdLaOMxfkQ-1; Fri, 25 Jul 2025 08:19:56 -0400 Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-740774348f6so2086901b3a.1 for ; Fri, 25 Jul 2025 05:19:56 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.19.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:19:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753445997; 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=JoeK4yTKfwZgURj4im/s748g50ka2gxF6YjSfo8g5a0=; b=Kd8UbuuMQcNZ0w3WDaIn+gjiCHuIZEF8Ckm4Na4Hj7yS+MJXulWfRfQ0MVO3z2kbZTPm38 g/6Gd3NeQEJ1CGeK8ABqGgxvcGGMs50vsT5xu+j+go7b4tX6MWOXBshDryY2W0dI459GMO XYPxLfSzmB2cOFNHPPkt/R/E6SixZns= X-MC-Unique: rJQbpMQ1N8eYxdLaOMxfkQ-1 X-Mimecast-MFC-AGG-ID: rJQbpMQ1N8eYxdLaOMxfkQ_1753445995 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753445995; x=1754050795; 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=JoeK4yTKfwZgURj4im/s748g50ka2gxF6YjSfo8g5a0=; b=jtFjUAxqmuZGn8j5NzgWkn83eBWL5LFm997/ywkAmTIAAmdcxvmgp6B5fckgfHGvWs zbY+H0fG3Mw55RdJ9M45iRnt+ojXve3t0i7nRdfXHm39dC2h1BiYWScacm2dL+InFqck OJXFyNy2jjBwzdT9yYHF6/HOK85UrHbOUMiIPK5BUFtXfXRX2WIB3bMyEDT83VGKvA47 DsrgkIoVy1kDWk9/FMMkUXtlujeLibve/kVwZPDwCASzoIqMQhE9wpCJzvBQ5w1R1t7D 8J8wC1yRaUBU6WKn1mZnZcQI8ZuzqgFVQCiN6jjenGZvfArLh9G6YT9P52Htf2XqjxXM rLGw== X-Gm-Message-State: AOJu0Yx3TP70FbfySJpTos9LNxpq0xD6uBcATpoUoEa7DsU1mX1Ma5pb Daw3oY0ylB9hnj0ZbwKkbPOlu1hM+XkU4YSxrBPd4CGNASSVWH2cr06Tl0g6xAsbAA8VCs6BrhJ bmjMpD8pIQMSM0gZaA3VPgsjpxnUANbA0AjlCYzAu31geeEbH2mQ7xxG/ X-Gm-Gg: ASbGncvfcXyJa00sUo1ngxMjU9aOj5kD4RoZP3RnOjlsnyeOJj/RFE5Uw6qumNlIGEu ScH7DImypAPBqHUjxHn21R5wegF8D6okaQGMQcxqV8npfw6WLv/PKyYNKQVYoGUZ/SzAV/KJD+v au3FlYj8F+qE952nlvirFZvfVwesxTNz7uwtYdv3HiHgUAS8CFLXwIs2ZJh9XuLq9eeWGawf/QB eUYPxyy2fXZ1ufmQocpy/UYSkA7PfYlamR9dAwZ2cKf/5P3KLeZvdyMCaPkmNJdw5cfTtw5ypLE d+V9prag8nRqQTEKG3nfhwccop5G40rpL4yKy0oINDw6hkEGT9t6fg== X-Received: by 2002:a05:6a20:1584:b0:239:29ea:9c97 with SMTP id adf61e73a8af0-23d701519cemr2892965637.24.1753445994765; Fri, 25 Jul 2025 05:19:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHLvFFkChJnvFiX8RG6QSSkkFv8OVxtlhmYlXP3i8TPjFHpBJEeE4Sna6dAwPVGfNvnenU7vQ== X-Received: by 2002:a05:6a20:1584:b0:239:29ea:9c97 with SMTP id adf61e73a8af0-23d701519cemr2892898637.24.1753445994345; Fri, 25 Jul 2025 05:19:54 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:45 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-6-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=2734; i=armenon@redhat.com; h=from:subject:message-id; bh=XyTiPZ0KSlv1Ah3T40Lnu3i41ckmHTTXG7oUapVUJSQ=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmfYv+51lZ/VY+oKScvu59osc1D621jXeVL54sbju7 AWmDw53lLIwiHExyIopsjR8DZBtCiiMiLR9eR1mDisTyBAGLk4BmIj3S4b/hZu6HFw520vOt3im 2y9UMhWap9duPt9l/6lD748YiT23Yfinox13/d8JW7WjUULvj3B+XDXZj0t4ltNM0yuGXcpPlix nAAA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446171730116600 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 29d2947eed79432f7bd9224743549aad87d177b9..21899e6beee3d2661c9a6943790= 39e82cefbee4f 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 @@ -3073,7 +3074,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 07:42:59 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=1753446090; cv=none; d=zohomail.com; s=zohoarc; b=c01saR2iGdLURjyEv7VClJ3TWQ3BwVS6e3izz6MauDWkU6xC12Bjh4pGRAZ82vKoBmJ+2w/levIeXjjNgEMT9PQz7+Dpto8bXlVcIAa5SyPVj+mb7yJvaafkGPkIeLOyhlyqYVfaWtKDslR0pAKWsDOnnqjSS3Egq4P11DShAIw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446090; 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=XiLLA2pFC2xYpmP1BYxPIcSqMmLO+2uz/366CCMk2IE=; b=VzWfyKTjQ1PoNUshtNlnMNAm5l0e4n6GVlAfOx5smrAuKToDF4ZcStvWSwaTzcqneSsav31DlSsyHMl62WwIURU0fr08CFDa73eWms21zrsXkxW5QYckE/2jE5CD+159GZ9I+vI01WFBDlI3tt+I0/s+DTUCSR2EaAH9auxj8sg= 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 1753446090626715.2032989451457; Fri, 25 Jul 2025 05:21:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHPu-0005cx-BV; Fri, 25 Jul 2025 08:20:50 -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 1ufHPa-0004Wp-T8 for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20: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 1ufHPW-0000GQ-QK for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:30 -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-601-u0E6bnffNSm_KO_JU2F3dg-1; Fri, 25 Jul 2025 08:20:08 -0400 Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-23dc7d3e708so15589105ad.3 for ; Fri, 25 Jul 2025 05:20:08 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.19.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446009; 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=XiLLA2pFC2xYpmP1BYxPIcSqMmLO+2uz/366CCMk2IE=; b=eHln5NzC1Rf9Ya8fsmRWI1ENuY0Ytre5Wl/I4/6dThUQ/Zr8EEzdi2dlDHfe8/2MwM3Vzd ySqkXWhA4CModUN0z7Y7pxl2DNwjqbmxQCG/LIVhqUM6XmNop5bRq+xBdma5XnKLPKQMdL Wy8aYCd+6IawhQ1VhN6fyJ4PizdiyGY= X-MC-Unique: u0E6bnffNSm_KO_JU2F3dg-1 X-Mimecast-MFC-AGG-ID: u0E6bnffNSm_KO_JU2F3dg_1753446007 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446004; x=1754050804; 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=XiLLA2pFC2xYpmP1BYxPIcSqMmLO+2uz/366CCMk2IE=; b=JqzmHkem1BZLtgHi/HXCPgAaJlJvHRQgUWkz36F3RnP86bfVebOFWAgh/umKassL3O bK2MzJrcOgUi1fXLc1slwKGlVs1+1MF90ox03gjGgbPRBSwt7S33qmfQEYt8Keg3ZTk7 4xgRLl4PlSts/JLuh8R+bGMg8YzLc/9mrmkE7nc+BDpudIBpl3yTbeMpyz8vejxPVT6P L9HRobRkRnxUKa+YgrXJBtyq5KqyMTmkaaNAgY/5hVGGL2Dce52Upzpv8gxuqSeQzJs5 yBvvQlYhOXV7hb9sy1UMCGX98gcKqNGixepZhWSCh+45VmCkioCJHg2pPSHy3YjQvYyg 6W+Q== X-Gm-Message-State: AOJu0Yz1UnP0my3SOUhAZU6keQSltXqa5HNYYz6R7f1Rdhzmn5h48mLe ipASCoX5Z0mfOTLgmLPZZi6LXFfhHdCIGUR4pQx844G7gRWLqvG6YHqr4gNlV6ZdmF97jqdqOwC BoU5xwBVuhOK64awL5kXiD+d55HmKgZ9aZgQCgbvLtAFXS/R7zSmPi0lx X-Gm-Gg: ASbGncsJ1TSIcNPo7bmCgqdNCfwsd4kGNSZYOS8oe0NGl0NKAUd5+FqWDmPq1OzdWoc 1gMQevORXOasaNWO/xG5jeCnqoXTcM5IpgCpS0aVWZRGeGK9RKtEJLVKU3bWGPFuaq3aLhIQ8pM RmLOnPtEIXQzB/PMdNeCQuBVO31qLjWvPI1p4EWU18/gIrmfcdf6fkzG407bgmPNm83KpxsJJWG x8fmiIa4dBqjIMMDjzN8VXVDgDJMYTCb3GI/MIZzg60o77RYniZXsLqho9JaWLaGD0TjmGxuEEg Hb8vNkkx/v1Dijf6piqfWWSnmSSI7nssOW/gkpX4IP4U9bXKBR9lKg== X-Received: by 2002:a17:902:f68f:b0:23f:afc3:83d4 with SMTP id d9443c01a7336-23fb3086eb3mr32111735ad.21.1753446004044; Fri, 25 Jul 2025 05:20:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGqc7cjXCeV8TCluoDv09iGbhYxdFCk2DRwcWzhy/E+wj2wnADN5GrWRbtM1krCJpYsXVBHHg== X-Received: by 2002:a17:902:f68f:b0:23f:afc3:83d4 with SMTP id d9443c01a7336-23fb3086eb3mr32110985ad.21.1753446003445; Fri, 25 Jul 2025 05:20:03 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:46 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-7-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=3781; i=armenon@redhat.com; h=from:subject:message-id; bh=sZRorGDHHh8ajhNs75FyCxCFdP9sBLu7x6z/L8sXuDo=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmXbRHj2DD8bRjsftWh+wr3l7fmaa4dEehkPvkqqff Y1lO+nYUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCIXZRgZnqY57rh9c2Gk4LZK kTy1D9ExfzaqRDS/f5awcMqZFbMPdDMytE2UkWFROif5QfuvyF/xezO2r9yh0f73zZbmV/Lim1b d5wMA 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446091178116600 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. Reviewed-by: Daniel P. Berrang=C3=A9 Signed-off-by: Arun Menon Reviewed-by: Marc-Andr=C3=A9 Lureau --- 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 21899e6beee3d2661c9a694379039e82cefbee4f..d8f5f1966fda831899596173f20= fbef25d78829d 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 07:42:59 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=1753446350; cv=none; d=zohomail.com; s=zohoarc; b=DJCvadqFDxgIYC9oao7VErqNBNW1+JsXPHDLtTH5TIpCbuZK/ZK7Pz7jI8gxBp8a50dZCG5EOYZfyzuaHTSzaWNT3btueG7zcyOO9DKclt44WEv01PhobxXcUw4mOpcCdM3Fgv2ujcxHUrbQOlbO2sexAp4yMPnesCQ4ttsI4XE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446350; 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=9/bRxXSXdvpmnYEcHoZw7NYIBt9Dlm830fISQSz5x0Q=; b=S672TdZageqebJ+SqLAY5xoRKeAIpT3cNikTPIp1B0HXQizdz4cXRRLep9dov8ydxhKobG4Q4ts7rjsGly3UH3jP8q7G+94fr9a/TqRlZUHNBrGjA83Hm1hFV0v78F14LKt8RDYDODc7I+/r27fJPSwPz6TE19vGP5N1pGoovDM= 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 1753446350199413.8561011566503; Fri, 25 Jul 2025 05:25:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHPq-0005K8-8M; Fri, 25 Jul 2025 08:20: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 1ufHPZ-0004WW-IL for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:36 -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 1ufHPU-0000HA-UV for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:29 -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-500-XwsOIT-sOKODBKlu0CfDuQ-1; Fri, 25 Jul 2025 08:20:14 -0400 Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b38ec062983so1443720a12.3 for ; Fri, 25 Jul 2025 05:20:13 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.20.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:20:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446015; 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=9/bRxXSXdvpmnYEcHoZw7NYIBt9Dlm830fISQSz5x0Q=; b=GhEL6I/aY1AFqKIZG5045Omq6xdd0muepifPa8GJw6SWvb8aNGZhbbsMZ5/IkfSHW96jvi MIe8sM3JznHDvNroNE5TCCm1n0JrCS3z7lsj9fEvjEn57GNxmZOgm8h/Q/j9zNAQIrxfdr EfTdCaNuMD3j0wvkVmk8M5w3EuwtghE= X-MC-Unique: XwsOIT-sOKODBKlu0CfDuQ-1 X-Mimecast-MFC-AGG-ID: XwsOIT-sOKODBKlu0CfDuQ_1753446013 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446013; x=1754050813; 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=9/bRxXSXdvpmnYEcHoZw7NYIBt9Dlm830fISQSz5x0Q=; b=PjmeYJKNRXlI0iswIHABjhlpe0PUCuh6iK0hNcoKFJjDzoGrB5BkjWZXVdR34X+cgH LwNWQuPkmmtsWvFw16fyXozIGCHhVLUx2QuYjIv0W/uE2RxeFFPkMRydqlwJs2UV1mHN 7MF1tVYOKYnWnD8/EGUTGnYJV6g4+ChxmeogK5it1vII2LXn8uGqagPOq4GDGUZyRE4g +1UIMJymVLSDj+ZLEvnjMwh8BP7ztpgvElFrdNZUGWq5AfndJFC7rtw/31rW5p4TJnV5 pKbP+hEZI3Zm9PNtit+4UYYCWONLVTNhlj2Sm0kIMGlASnx4KyfIfdFRT4VPAMqps9AN 81fw== X-Gm-Message-State: AOJu0YzdwNG7piBCYFyEwVGX1iVKgzznLSR/hvruqE7UEUA8HdeT2vZf Ri5xIGHXiabSFYopDzY40zPfFvkmkKFqxZMQ6DXEfGJgj+bzVkDEFcVrKGXyvx5JmmFLiK+w0RW tpiMT9S/1LwFhfzjK4Ov1i51ohV+XRivQOVPSFEUyvhm3OSIB+fUr9Jua X-Gm-Gg: ASbGnctDHcigrdZevNX41rvlRhyupcZDo/G7gL8+jMKcBZv2AJ198QxJSr+yOf6CGsh MBtWVcwvAUAIrGqECgqpwTn7fsmEZnVElrxXzIr1asj+Phr/evpUsopx1thVnfgK17GL2liyuFt 5ASbw9mhwynTjNFB+8RKRdLPVBofMgg00OiP7fl/xXG4bZqSDgf+bfmvzMGpnm4uva8kHjq5pVq bC/yKKl6fQ8VNlStYRXqxlL+2ajzJfJ+k0NTD53dpc7qfTcoU1bC9HH7Is2QEyaokUZrqgpU6KW aas/GX7GMsowOoVls2FjqetRN9ZKZ5asBScl3fuWSRxJXblN1anIYQ== X-Received: by 2002:a17:90a:d40e:b0:313:31ca:a74 with SMTP id 98e67ed59e1d1-31e778f7826mr2700255a91.16.1753446012800; Fri, 25 Jul 2025 05:20:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IErgGQqX+8qSN8HP2D9wG1sZ0iEjoIeE/wEcZnbmLQRRxkBBDP11OJXj8kE/5MWVlKdfDCIMQ== X-Received: by 2002:a17:90a:d40e:b0:313:31ca:a74 with SMTP id 98e67ed59e1d1-31e778f7826mr2700177a91.16.1753446012311; Fri, 25 Jul 2025 05:20:12 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:47 +0530 Subject: [PATCH v7 08/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: <20250725-propagate_tpm_error-v7-8-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=1759; i=armenon@redhat.com; h=from:subject:message-id; bh=oAgONcyO1hsCxg2sA52HwUdxYnvOBShzygXt8RSP+TI=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmXbwNJEYVqazj+9nLUiM2Hu6r4Z33mtrMbGzq+rVj u6QFNDuKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMJE9jAz/M5nT3tdfdX/NpJ3h 3CBxn2vH5Cd5TivnNW2YkiIq9XDrJYb/EU2BjgKLjyWZrPZoEvlk0G4WrvdBOepjvcMJda83H21 YAQ== 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446351745116600 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 | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index d8f5f1966fda831899596173f20fbef25d78829d..ad96da3651b89023e4b70ffeeca= b46d176bae6f5 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2334,12 +2334,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 /* @@ -2391,8 +2391,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 /** @@ -2627,7 +2625,8 @@ static int loadvm_process_command(QEMUFile *f) return loadvm_postcopy_ram_handle_discard(mis, len); =20 case MIG_CMD_POSTCOPY_RESUME: - return loadvm_postcopy_handle_resume(mis); + loadvm_postcopy_handle_resume(mis); + return 0; =20 case MIG_CMD_RECV_BITMAP: return loadvm_handle_recv_bitmap(mis, len); --=20 2.50.0 From nobody Sat Nov 15 07:42:59 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=1753446497; cv=none; d=zohomail.com; s=zohoarc; b=K7lber6IVR/gXCZTgf1J7kMBmnd0zJwrVZgdPyH8PtmnAyX2lQwHau8i1pVjjblGXaEEMF+Xb46ardzf9KmK2hkWdM/X8hxB3TBdtsJhLYeBPGTQ6NDI6EVhxW3gRMfISQQYObZlplgOQydSSq74WzYB/1T88qFkwG76LcKKS5U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446497; 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=sBqn++2MW5CgMsUoX7jUMy5QHT44+8nhu2yUYnBnsck=; b=P4UgIQguUPbue7gmxjEi6aFKSoNcyWCJNVGKcYds/teQCQOrSokxkRJXBV3GEpaelfCSXWp/Kljpmi/Y7jUu50UuAINoe6AEvPU+Q2eDsF1tUVz8t3YhSNTTsP7KWD6KY5ftbGtJLCotjA4rqc5CyV/AE/SPAp0KPAh8j9MBmMg= 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 175344649751513.957527202577126; Fri, 25 Jul 2025 05:28:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHPr-0005QK-Hq; Fri, 25 Jul 2025 08:20: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 1ufHPa-0004Wm-Ng for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20: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 1ufHPW-0000Ij-QC for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:30 -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-83-9iKy4ARQOaGppFtXfkh13Q-1; Fri, 25 Jul 2025 08:20:22 -0400 Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-b350d850677so1494994a12.2 for ; Fri, 25 Jul 2025 05:20:22 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.20.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:20:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446024; 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=sBqn++2MW5CgMsUoX7jUMy5QHT44+8nhu2yUYnBnsck=; b=Aih2zvtrdd20Uym464+lcOotagvjprOUeyjJz9uo/7NhLYclOjapC5+6w90kaC5dCp9IbM HSQpjQ0O1DgTpiVctKrgZK7VmWrDAHBBZaPnhjRml1TwzWj28dYNfs50YJOrDKCBFivLFn 3bbVo44oliPU2TeKSYYdKfZFozixioQ= X-MC-Unique: 9iKy4ARQOaGppFtXfkh13Q-1 X-Mimecast-MFC-AGG-ID: 9iKy4ARQOaGppFtXfkh13Q_1753446022 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446022; x=1754050822; 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=sBqn++2MW5CgMsUoX7jUMy5QHT44+8nhu2yUYnBnsck=; b=FGC7PMl7rSxnncardesiI1P0ssHThZNJXI8lwC32p9vOXVmOALIfsd9Rx6hBeOhq5L X+Px3q3m4zKcchj7QUJhs4+wmFx6WoUJ9dQS+O7+83hTCx+Fto9ay2ms+C/RIC08zaxq ARS41uBqYg3wnLd+0QMN8ATM5Z/qCUtAURZsXDovDkvPQibGf6awzT6AQw06hBYYPsgn q16JV22cKkAiO97x0LRToP3l0PdK4C3/SRUTXJAgPoWrnCbkTjGoxcwOGEDMXhFUG1q2 /sZa8rcerJ931PXdf413343AyT3TmtDjWrCAnwP4GA21zbkRK/HK6iJW1Bx/4hmLzGN6 oQjQ== X-Gm-Message-State: AOJu0Yx1rC0wndVF9pxiAze50+KuHzq6TTx3T6oaolOt6sHSzKl5f2KA eN5NHbEv0TZgozzi5kwCPEJ6SI9McfCQT0fFYl8MuWkfWCx0knQDKPuCVLTfVGp+ojLa8PUKE0z ent0JEdvRtW9iVI8kXx46f8Qcuy2s1Zm/tJM8Rolz6doVITCj8dygTpMu X-Gm-Gg: ASbGnct902QzUHD3/68h0Nz4coAUjzgys/KBrnO6hejvRnnMI0SglQd7oNPHTVJ0osn peJyeUIQwnSLPXdipAsyAFyjdGGND9bvoFxqRCb2uv2DI6OdliCIK0YvHSghlAMzScfT9UNDmvz zz0nwWznmQ3Hn8G/p0Rzo+0/8Tqsxb1D7P5ZQ+VNsZwIJ51VKb13YIY0Ob7qGFJll8EmTVBM+kK njYpfqRZQG4Yqq+auNpv/Qh5WEZXVhLrNOoVplJov+ceGDftDyzlfhgGyGzTjDLutBAJRSLxxWF FkyMmIcBBzyO2WXLDbl2ajRXG+dALqAvaoegGA9hFHncgjTfo59ZKg== X-Received: by 2002:a17:90b:1c85:b0:311:e8cc:425e with SMTP id 98e67ed59e1d1-31e77a244b2mr2164691a91.31.1753446021436; Fri, 25 Jul 2025 05:20:21 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEPZWG7KflaoWj8U9+Ck4vGNwXw8y9l0suX81jZ2TC7mNGMF6qGGTFZ14Vph+Hz8XgEefUYEg== X-Received: by 2002:a17:90b:1c85:b0:311:e8cc:425e with SMTP id 98e67ed59e1d1-31e77a244b2mr2164636a91.31.1753446020962; Fri, 25 Jul 2025 05:20:20 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:48 +0530 Subject: [PATCH v7 09/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: <20250725-propagate_tpm_error-v7-9-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=5986; i=armenon@redhat.com; h=from:subject:message-id; bh=FprjTTX7nqgDlqnlT/KZ4D6i55ecWLyKSTmKqntEOgs=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzmc7fZx7laS9zDFTYnki3eqqv9E7zqThuqV+xwn9ai eiVc+IdpSwMYlwMsmKKLA1fA2SbAgojIm1fXoeZw8oEMoSBi1MAJvLXjpGhzSDkyx0OBe0zn1uU 3UPcnvEma/xPOix1tUN+rUKk+55/DP/r1thc6loUIyvy+G11k8prBaapgk90lrd7Pvacr8P+9D4 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446499181116600 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 Reviewed-by: Marc-Andr=C3=A9 Lureau --- migration/savevm.c | 73 +++++++++++++++++++++++++++++++++++++++-----------= ---- 1 file changed, 53 insertions(+), 20 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index ad96da3651b89023e4b70ffeecab46d176bae6f5..d40b25d74be46b209be8f28d10b= 7538a5ff2e3dd 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2544,12 +2544,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); @@ -2560,16 +2561,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 @@ -2588,11 +2589,11 @@ 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; } } @@ -2602,40 +2603,72 @@ 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 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 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 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 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 ret; =20 case MIG_CMD_POSTCOPY_RESUME: loadvm_postcopy_handle_resume(mis); return 0; =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 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 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 ret; } =20 return 0; @@ -3075,7 +3108,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 07:42:59 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=1753446649; cv=none; d=zohomail.com; s=zohoarc; b=Jjz/HEQieDVR9rhib/BIxNR67ZXMtO3I4m5Cu10sr3Ci0uj15nsC2YiMEGTz+O8CUVjW2WNITwewjE0jtTod5g+GWRpSFt9k6NACifspb3mq84Q5nl5ex4FVsfzskoNyi2fjn3w/Ka/JYVpQsfl86mhsMaD9DmP/ncuK8SCwuBQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446649; 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=6y91SjWTLJ1eBloC1C/ESEGfP7aG6XyfswjvdDTmYeQ=; b=f5EUzqE6szIt8DoE3bkazYO6F6/hlIKjETU+UY8EdvtZzNQtH/8IY6dS4sc3KulArxMp4/H5ICVyv1+Y1MhwZ/efJfaJeHLdgtdwyRlh+amMBKLBykypRnCd5WjU73vkGNWKgLZaGjo/Cax6aGyTKoVY36q9TtbCPHbBRaKWARQ= 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 1753446649856336.9448163476874; Fri, 25 Jul 2025 05:30:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHPv-0005eW-60; Fri, 25 Jul 2025 08:20:51 -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 1ufHPl-0004uQ-Hg for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20: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 1ufHPd-0000LJ-LG for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:37 -0400 Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-145-IVcM4DpFMfaNfQIO_23PgA-1; Fri, 25 Jul 2025 08:20:31 -0400 Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-31202bbaafaso2148305a91.1 for ; Fri, 25 Jul 2025 05:20:31 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.20.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:20:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446032; 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=6y91SjWTLJ1eBloC1C/ESEGfP7aG6XyfswjvdDTmYeQ=; b=b4Z7R0uViF27EfylwGmLjgxXPSSGX1IngfZhxbZZtjGHn9L2ZP0950317fiZaWw/vzifw/ b9CQdKqmUw/E51dIs+yx2VxG2CGIKlrJFHDs1QG8ktOEguXf8YNxz5OKFNqP9VC/GXDnoW nNnzZN8Jx36iciLeobXwEEDfCacJPEc= X-MC-Unique: IVcM4DpFMfaNfQIO_23PgA-1 X-Mimecast-MFC-AGG-ID: IVcM4DpFMfaNfQIO_23PgA_1753446030 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446030; x=1754050830; 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=6y91SjWTLJ1eBloC1C/ESEGfP7aG6XyfswjvdDTmYeQ=; b=WKw9kJewxC6ql36FRJm1VZIECG5EgQCmRBS5ldHnzZ9y8Y9HExlsNk8KV1rkl0E9Oz 9SC/K4UxPBjEKT3OKT3pdvBFD65EzqvIndLNXd3wZzeiSv96SoFSfJgrwcWmJJbaIuya M9I++OpWa4rI539/6QfbIjhfBdQqh8wtvaUmyWd8hcaRiMS9DRGMhEj+YWULeanHyTAB Gw2ahQ0WlCH/9s6/5T1lTVVqXSimNTUDwv7w9uIzJ4KkkIDSoZurMS9o+4mWzW7yf3Zn XSr7uYrBLXxomJfO8nJCRxcqnNqbJLQLZWYa8yHlGRj42rii+Zo7VliXky7oE7g0rohu yC2Q== X-Gm-Message-State: AOJu0Yw5+TVXZIGfMgTnO6uaCsI6nylr5MyitiK2ZrPEHAqPspMuGCq5 A1Vlx4gnBukG+ghV/+1BetUpL43l7GwonE89AoA30SMMM7foA3mIRRQHpQ1roTE52CPhRZC61kD f2s10WLPCQNquODXsyKxP04+EuKL1UG7kx5a1HZ6uNGgrYDglkMSUzq/Q X-Gm-Gg: ASbGncvc35PYPbk9+OA0EcARpfKLH0VicDnSVHhB+w5NWnSB5aTGcb1dS34Dif00UkS wvp1Nm2+lQdGIX9Ne/3EyGbbPcmioeP5WkRsW8QaGsp+ASN3bA+pRf+8iUM8mWVBTcmiSBCbjTF CyZzWphG5nrj2pBc5NzZs16dagbPij67ks0WgUsYWeCgEHHyT+OK+aQfjOlt3wXosjSoDQWi8Bq HxqJsCfxjR4a/KLLLP0rgoAlCOoM8unzXCEjBLADJK7T0QFzkrc81n2KlyIxuASRt8a631O6Nvy Wdd2rqcDNoUKoy27SfIp6hFWfzPuRhc/Q2rhhV22NLR5OGJtgFGZmA== X-Received: by 2002:a17:90b:3807:b0:312:1c83:58e7 with SMTP id 98e67ed59e1d1-31e77868e3dmr2122021a91.1.1753446030232; Fri, 25 Jul 2025 05:20:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH6M+udlIFc9cOCAoM/t8VSkuebkcj8sjXxszcbxZOo+uSgQ6bcdAqloJPU/JTkJS/TQx3urw== X-Received: by 2002:a17:90b:3807:b0:312:1c83:58e7 with SMTP id 98e67ed59e1d1-31e77868e3dmr2121969a91.1.1753446029810; Fri, 25 Jul 2025 05:20:29 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:49 +0530 Subject: [PATCH v7 10/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: <20250725-propagate_tpm_error-v7-10-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=2724; i=armenon@redhat.com; h=from:subject:message-id; bh=QIX+/c0txxgJSFReUXiAq0+vlqbsKiNx85778EjiCCw=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmU7YdAeWU4KPN23ea2Cxsa3wcq1ht/eUjUHHrNU8/ jo9ir7WUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCI26Qz/DBibojf0733u6LX2 SUjOZJb9ni7RlcEX7x5dHvf38QJFJ0aGveubXt9r6Jmy1PCcwN7G5o9vpaL4JPYoLM0RsdwX/OQ 8AwA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446651290116600 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 | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index d40b25d74be46b209be8f28d10b7538a5ff2e3dd..63cf488d9f411c0fb8d5f1bc8a7= 19aa575bbabdc 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2403,7 +2403,7 @@ static void loadvm_postcopy_handle_resume(MigrationIn= comingState *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; @@ -2413,7 +2413,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 @@ -2424,8 +2424,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; @@ -2455,6 +2455,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)); @@ -2611,11 +2614,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 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 07:42:59 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=1753446090; cv=none; d=zohomail.com; s=zohoarc; b=VxWeT7XoS426GHfiJs3rCXu2CV2bRhTP449UrTbCUUPX1sMiapcvFeWIqvUfo/NVBytl/FAFszFrhwZUxLAIFg8I7OFbRbNuwmruWaC+H+JHOG+zOZSLq8L9KExEDcuCEyfdscobUqRz+UBhVWGeLJwmGgPDsDWl8Or+4OzSaM8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446090; 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=zNAgORb7hQlsYDUYHzd7vbIdy55OMDiBcF3GYRQ8Gek=; b=HaWQEJn3R/KtktNRt9OyLOiJViAnDReQUFyTo0sAJed1x6UuyzJhCID+5uMItZLLH/04iuantgSky8i7jgNnMXMHFTYH61NcmkYQXVnfaxmPcEWPUsbiB3fsyCagLyGaXgtYwznXMZeX4UNxSc3N+8a/l71Ggm/IUHcKIrks42E= 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 1753446090710988.8349854596261; Fri, 25 Jul 2025 05:21:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHPw-0005kJ-Qd; Fri, 25 Jul 2025 08:20:52 -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 1ufHPt-0005bu-Kt for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:49 -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 1ufHPm-0000NN-Tj for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:49 -0400 Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-650-UKjqgdLbPYiVJcL6QAMi7g-1; Fri, 25 Jul 2025 08:20:40 -0400 Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-311e98ee3fcso3658581a91.0 for ; Fri, 25 Jul 2025 05:20:40 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.20.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:20:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446041; 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=zNAgORb7hQlsYDUYHzd7vbIdy55OMDiBcF3GYRQ8Gek=; b=iF+Dg7XNriboob3YBfQBVIwBc6l2sCiIDkq+nCky1K03cjgcOGczasE+Jy8a/5eePl/9e0 CqCesUAF1cTaNTBk3yL2iqFF0crmomMijrUqIWnCuHu0n3kptPcwLxGQiUkOcY+PiPYzOt g3w5JOGn8p9p78BrfWVW2TPRSAcwDOk= X-MC-Unique: UKjqgdLbPYiVJcL6QAMi7g-1 X-Mimecast-MFC-AGG-ID: UKjqgdLbPYiVJcL6QAMi7g_1753446039 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446039; x=1754050839; 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=zNAgORb7hQlsYDUYHzd7vbIdy55OMDiBcF3GYRQ8Gek=; b=l7xehr7gk92SaU2SbvFiGt9Gic7XyU77zxjCPfT3yEJVZYd59Rc1XRNEQ9DjF9VX6d HGtozQcsz2SEy60ANatehKf4FOyJZeg3g7dZbijiN5TyUTARuv/C5XEyK9eKJ6xnBIwX wPGb4CTgRkEaiKLMp1nv5rH5tPguo7rj6Xv+TAPGmAJoWbiUvfUrCGXmZMDz3o0euXPW x0Ne+2onuRxfluhfTG0Vb71onb9TN44FiFpwf5udSDOqB4yW7n3bRyKSKGDhDt/WqVtv VWxuDbRkDNOxFkrHdGiaNV/Lwfi7dF6qtdIiOQ5Kzk8hk6ZMUjinn2QcIdcR//XxiTbm /btA== X-Gm-Message-State: AOJu0Ywtck4JIgrIM9rEZdFfrwAnzQeBcvF42frXIxnA7EDYgpRHGy37 fTYbffYD78D9yxQ9O0TnztZd6HDtFihHdognMPLgvm99I4NC0bSCQTCQICLHsqPF6kSaLuahPJM kvumubDiS0i05MPlGFD7VjL4w2gfRCUXjDdCLLAbkaevG/lw/Z6zd0rmg X-Gm-Gg: ASbGncu0pL+dX8lktLW0GfmjaXpiL+9BKuC0Zf+nUlKv3VT7XTyi+0SS+uSSv7g+wxK xedxOdKfndYq7/MoMEdjoJkqGLsg8qmESGgzk9lLEodzInuMjwE9Ut4T2sOuXQl4+OsFKAGzpBL V0kgDX3raoYFpqKNLbOrL/9AOnV6LZvbPEnfXGGAz6IEu6g+JAevK2d6iKzlH34wmeqxpzb8/fl YbXVg2DGAFEaCywbuWqwvDu4SkCDWbTEDeMEQdPmYv+aC4pd2wYBTLz0HuoAiz0GivDH3DDVtD0 IRk4HdicwuMrCmL6myGkCh4w6+HWj2KHydbe9VjF4EYAC3dV1P+8QA== X-Received: by 2002:a17:90b:1e07:b0:314:2cd2:595d with SMTP id 98e67ed59e1d1-31e765dc413mr2897170a91.8.1753446039218; Fri, 25 Jul 2025 05:20:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHNwPpY89pviHlo8ZZKjzlNB1b6XhHRzzS7sBEGMyEOhDsdT38Xv+zeTyWszLRkvCHBnLXTbA== X-Received: by 2002:a17:90b:1e07:b0:314:2cd2:595d with SMTP id 98e67ed59e1d1-31e765dc413mr2897093a91.8.1753446038700; Fri, 25 Jul 2025 05:20:38 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:50 +0530 Subject: [PATCH v7 11/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: <20250725-propagate_tpm_error-v7-11-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=4697; i=armenon@redhat.com; h=from:subject:message-id; bh=Xbb6xB2UTYoqNXP7efnq/4hgfmGfqmyIvfICP+ID4G4=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzmc407kL1/oPKv1eetuVwWMTm5s5bddMjdJ931N+WB cyLrcw7SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATMTKnZFhoUOUSqh42mvN1RuC BdY3NPa7qXe+t1quvWH/R3GLm54RDH/FGBd/m6nwwfxeIxeTzdW02M2OEvl1B1h2/zvaWnFfcxI 7AA== 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446093212116600 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 Reviewed-by: Marc-Andr=C3=A9 Lureau --- migration/postcopy-ram.c | 9 ++++++--- migration/postcopy-ram.h | 2 +- migration/ram.c | 4 ++-- migration/ram.h | 2 +- migration/savevm.c | 2 +- 5 files changed, 11 insertions(+), 8 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..6a0dcc04f436524a37672c41c38= f201f06773374 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -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 63cf488d9f411c0fb8d5f1bc8a719aa575bbabdc..60a055f3e1f248b09e5e5d721f1= 4d2eeafd0a7ad 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 07:42:59 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=1753446091; cv=none; d=zohomail.com; s=zohoarc; b=K9mH+P/NzHQPngKsM9HeNXbmCRpx4Gys7gZwsvsYqFnov24wUrR2mM6pgepKYc7/QcBqnZ+U+PVPsz/lERssjExHcVonlqLSSs+5zEgHyESgBYQIrVmuk6fqfaljWS/kCyMBcVrXAvY+W9dyApynEb6CbE7n3QtIW0apC3vl2po= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446091; 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=eYCXjqKbzQhBCx+qwIREYr6YTNEf1TybMl8PW/ML5xs=; b=Z2wjXWFWRx+5z+6vrZlp0SlZHCg5uHL0ZsS2Sv7z11wpT4c6QaVvB57Vb9vwqhoOcXmfcRHqzOup1l+s1N9sP7y6crxDKtJYPSUl049Ce06Jknb2tibZuLPIEZN83GF2w61SGcstpHK7GDyvs2b6yQtyrcwGmBioW2wgrEnJoQY= 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 1753446091362613.4871290118017; Fri, 25 Jul 2025 05:21:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHQ0-00061D-Qd; Fri, 25 Jul 2025 08:20:56 -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 1ufHPz-0005tn-7w for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:55 -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 1ufHPw-0000PK-O4 for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:20:54 -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-677-CEgZ28NaNZCj0Bf2HNXotQ-1; Fri, 25 Jul 2025 08:20:49 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-3138c50d2a0so3193230a91.2 for ; Fri, 25 Jul 2025 05:20:49 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.20.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:20:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446050; 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=eYCXjqKbzQhBCx+qwIREYr6YTNEf1TybMl8PW/ML5xs=; b=WcRo+bP+3HQSw7Xh00eTmwVDMWVmxhXrtEeV0HNpgL22GVt6fa2qrQUFpn091JiUzleSPU zKy4M3SHAA/rB7/ECdcgSefueis79ub5TNq2+g+HiKey9vR027V6OmHNetj09Y01TXKjOw jYKB47tX8B9LrlNhwWhHDLbrdb967+4= X-MC-Unique: CEgZ28NaNZCj0Bf2HNXotQ-1 X-Mimecast-MFC-AGG-ID: CEgZ28NaNZCj0Bf2HNXotQ_1753446048 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446048; x=1754050848; 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=eYCXjqKbzQhBCx+qwIREYr6YTNEf1TybMl8PW/ML5xs=; b=NNuKcAATVcpBXS1UBaCGkEoj+qNl8UkUoUS7KvG534yrlAPAf0FUWl087t1FKS/ZYZ zmCUok3Tjvao+Lul1nAZIbE9RXvUw43frJqV36QQgh0oCVYVucm6hMdc0Z9x3UQ6//z+ o5uBc68xDf5hoeivqv/6J1GR3CKI0POzMXFMxy0FVifJZRDoiQD0TXYDg6oT09HKrt9Y 7HTp5gHnsHy6B9vPkcGlO4kP0ts9NXX2GDsgmCuB9PKnTLmB6Ex0KOQAlfcpEMADSTww IzuDDZ4aaCJkXLKrkyupL9o4mv4dv9e2KMKwfMAXDrOtoemq96jrVxEeVQinEM7/yb3V uzvQ== X-Gm-Message-State: AOJu0YxdEOvuwkcjqei7Qx2zw3EgnITkSHFx79MvxK3WJJCJyPz28Fry 4J1kgMISc07DEibQ6SxOs4YK9t9THEyu+MUhetzY73pLGQ3RlFxFceucq4F6gZjHPuUjoOESqcs x9u3QMLipV/bRWLA4r71zYrXr6bK4TOmOw51KDi3Io3D+8h0SOVoLeyr/ X-Gm-Gg: ASbGnct1dX52J94Rb5PeKLyGo3Tw6Xm5TG7tjjW+09uhJRsE/g0RwPZ1B0OPXmcY6Dt 6Oqq3DwgbE0teAZykkoi/wlcQX/Et+IEmPPD7gc7YYEOgLLW+YtENJqj4euHUBimG/0ui78DMYs dUpyv2i0G3ZYjh/asaMN3cjVt6gUMG/v22kX+ecwJ+qcwVlwwR5mBfUqJE73uqABL4CUqBWknLY 2hm6Of0gFOcxv+BEP0Nj4CyCC4GgOUJnP+1jgCSySXBcRckVNc09h6qoScALGfl0PvI1LqCOogN vj1Be1g3kUpfCX7jIbOP5i7uXeuyEw0NEilFKFJwAe+b9PWzJWD8RA== X-Received: by 2002:a17:90b:580f:b0:311:e8cc:4253 with SMTP id 98e67ed59e1d1-31e777311ecmr2713378a91.2.1753446048111; Fri, 25 Jul 2025 05:20:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFyP016xVRhhTMLaObJR1NuVzvtgvqot27JGPJaeCTtUFxkKKoRJIcWKy1YdU9hqE9jFBPTlw== X-Received: by 2002:a17:90b:580f:b0:311:e8cc:4253 with SMTP id 98e67ed59e1d1-31e777311ecmr2713323a91.2.1753446047600; Fri, 25 Jul 2025 05:20:47 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:51 +0530 Subject: [PATCH v7 12/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: <20250725-propagate_tpm_error-v7-12-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=4729; i=armenon@redhat.com; h=from:subject:message-id; bh=84WGABXCs2l6+smiYTyqOV5o0vuU+d8VFTg+EEJdDHw=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzmc5Wg/Ck96/XulvGLIhLdOWVFOGMyz/8qFSt7Xqx1 /oDpww7SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATOSsGsM/PZ9F6lxeKvacp8/Z 7PjyomplqfQyJm2hgFsPxV2ZI1asZ/gfNztPzG3C+pcH7mQsmqi3+XnFCf4XPKfNdFynW/0t2Xm NFwA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446093129116600 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 Reviewed-by: Marc-Andr=C3=A9 Lureau --- migration/savevm.c | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 60a055f3e1f248b09e5e5d721f14d2eeafd0a7ad..eb843f4869f7b49a17fe0fb1b0e= 36db993e4024e 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,10 @@ static int loadvm_postcopy_handle_advise(MigrationIn= comingState *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 +1980,18 @@ 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_size); 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 @@ -2617,11 +2619,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 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 07:42:59 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=1753446115; cv=none; d=zohomail.com; s=zohoarc; b=jlBMqC34Bw7iTSNUfrmL737hNynoqJE9EBA0CFK7KS5TWuEbd7XdjLVL4jFJZY5brkW8KP01zjCI6qUMxSHPtzpwGq5UGqpLhlHzLsw316L9K3Ok4cfF95v8rKYD/kCp91Latd2iauEhrU38CiaDVtRZTqzT/N8H/V99dA9Va90= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446115; 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=lbnbr1fSdLHVLUP7ZrX5RcGm0ryxFZ24z547nw5skP4=; b=WUC5k0ifEgVyTx2QE0N+svEvFh4qfyRXxazy8E2EKaxBgsDa+3uPiWM51qZxDs0Yhy9RxLxpC1EWtQhL+39UDRKMuF/mXTPGzFv0I1vMcQhI63cor1cHJvDrHUlfN9nmsYYOtGynSlltHrQMwjatLxG+disc6RxoXJ+DROcZCL8= 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 1753446115458668.5454699339633; Fri, 25 Jul 2025 05:21:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHQG-00071M-O0; Fri, 25 Jul 2025 08:21: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 1ufHQB-0006oi-Es for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:08 -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 1ufHQ5-0000Qy-Lf for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:07 -0400 Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-252-le1eESJQMrisn2Z1EXpINA-1; Fri, 25 Jul 2025 08:20:58 -0400 Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-3132c1942a1so3296928a91.2 for ; Fri, 25 Jul 2025 05:20:58 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.20.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:20:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446060; 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=lbnbr1fSdLHVLUP7ZrX5RcGm0ryxFZ24z547nw5skP4=; b=AX4CQSuP6N/SM/Z/3VVlzJk5OuOdeyqskOxCSZh15U/FcbiXmbyE8ttWOatFszWIccSwDt xAe5q/OZB/5PFrl5OeRiquqX1k/YFRDcnV1Kh/dgliiiZRPK6AkZQfIRnxe9Gfd1Iy9mXe 1PJBFoniJHHxt3XBexWVPjLEDMPd5m4= X-MC-Unique: le1eESJQMrisn2Z1EXpINA-1 X-Mimecast-MFC-AGG-ID: le1eESJQMrisn2Z1EXpINA_1753446057 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446057; x=1754050857; 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=lbnbr1fSdLHVLUP7ZrX5RcGm0ryxFZ24z547nw5skP4=; b=QKFAWe+Ni31TPq0vNZmjkA1MJUs5/vNylMbQ527M7J0Y2QCg5EKeO/qjeNmUcTiKAO JqGO33GLx9JbPRGICNoP8pQG6x2JWsgw3A7tiEcgCYbSGRpCxkE5u21zge43AdMy/O5l FCgB19S9PY02KsvaIHfQVObr8sO0jjvvaQDbxzf3H3iagBNERcYdFpS4GjOjgxkz8Qta o4aaSzdba8eWUYLSubWqH3sue8y7WDh83A9WQHKrU6ylZFyed0tPEBZ/zrAHvbr7YUHM QOo6EUj1IFa2khljPlEa8EFTB+ZdoGueDc3/1dd6CMxKPdyAGCXGCTltpovFC5S4hHyh cWhQ== X-Gm-Message-State: AOJu0YyVznJ2PZNuR9RyVq4fAegcvXNxBN3muyOeXexgTHrjdf0OVplg wNOCBKjHP5BekGPTob4cLwtiri1L1lZKrVahE+SK3gd0mg8RXHxqBo0eNQ2TbN3GP1ghycFh6rx 15mnIUrgNKjmCfHq6UJW1H4h9Obc/Ahw0qp2e/Qt7A/g+q7j4ni5feHXs X-Gm-Gg: ASbGncukl6hjXy8Y8aNuJ5yuD/afp5pszRu1cXe9rrE07TtWhtOGu6k8d0mMup9SefS Vn1C02qNOnbuDNGxHzKLIOA2EYhX9shfZECRpEHiuegUq2BfyGfgXBS9es5+QACOosTTnYbkoBz sDtph2R5B9d40eoQDgEp6LBWtGNVuFIu8XeecE/TlGIBPNzt2aWr9EmWomc+NqSGzFLZ7bU9q91 uu7kLmrZOWmU97Z4iB8HczhWMR6bP1rYh/YC/jjNeeHSqHbdoxpu8IZadhQXft2bd8r6Ih9obCf dnNPgUe0zAEJjHaK+cON36slBdtZHl0clmbPYbBQ3f4MJh4EeN9Z1A== X-Received: by 2002:a17:90b:394b:b0:314:2840:8b21 with SMTP id 98e67ed59e1d1-31e77b1ae45mr2071670a91.32.1753446056970; Fri, 25 Jul 2025 05:20:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG+EpEBShA0m7yNGlmMslnphQAzCITwfuJnYhCiff2C6Od0bRohiDFcLHdjISegPAFggtKhEA== X-Received: by 2002:a17:90b:394b:b0:314:2840:8b21 with SMTP id 98e67ed59e1d1-31e77b1ae45mr2071636a91.32.1753446056498; Fri, 25 Jul 2025 05:20:56 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:52 +0530 Subject: [PATCH v7 13/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: <20250725-propagate_tpm_error-v7-13-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=2705; i=armenon@redhat.com; h=from:subject:message-id; bh=OJPEMQIflIZDjgD+FQd7HKYZ5HzgnH9dBK/vtFhB4L8=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzmc7DQMkzcwXuaCddC6hh1V9gYN9lEnMhcNm8G5ON3 37OnyzcUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCIb7zP8M/W9zXQopkUmU6pq 6w+3DWv1f7B2S1WzMH1cknRjqeGJGEaGOVwsatcsFDr+vm2T67q7Ymr1hHruj5N5F+9Zt0AssGI 7LwA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446117327116600 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 | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index eb843f4869f7b49a17fe0fb1b0e36db993e4024e..5a7564f60d8a465f136d1fab50e= 887630e276871 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2181,15 +2181,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) { @@ -2212,14 +2213,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 @@ -2622,11 +2623,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 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 07:42:59 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=1753446517; cv=none; d=zohomail.com; s=zohoarc; b=m/C92H4zZZphRrzVAx4SNCfeyVn7rYmod2/2xYAf2sAq3MFu2adu83g3mKdEqrThZqdR9CoGgaZz/mUhIleLWmDQKR39tFQInPA0FFcPg89YFx/Ivruud+pAsjTvfcpT3nOj7FJFYgYX+MP+KRhFJ2Rfu3H9ZjTcFJ+rogqnmxQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446517; 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=JUYo5KA31AQ2/iT2h5kgIZBH6xPXy9KVPDj3Zp7HpXE=; b=aZ3URZNRrT7YwdCXje1/2wprBm3JfiaD2YL5rFcqM6zwICLNSZ+3erPF5mLioVMlwg3k2dQ2/p4SYgdT7TBYKLGDi87MQ/qqFF2bahHg1szgqX9+PwCMOdYUgioZnmfptSF3HFS4DUwLIP0Z1pBF3FexGzB0/DWZT5FgS34IuAY= 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 1753446517483855.5166385945151; Fri, 25 Jul 2025 05:28:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHQP-0007yF-SI; Fri, 25 Jul 2025 08:21: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 1ufHQM-0007gn-1H for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:18 -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 1ufHQD-0000SF-Hc for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:17 -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-518--825TP0uMfSepM0eEE_BXQ-1; Fri, 25 Jul 2025 08:21:07 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2369dd58602so21529925ad.1 for ; Fri, 25 Jul 2025 05:21:07 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.20.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:21:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446068; 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=JUYo5KA31AQ2/iT2h5kgIZBH6xPXy9KVPDj3Zp7HpXE=; b=gNNFnVE+2mgSXgpHI96vDyviahMXmkjeiGNPLErAECdMrdNdRvvVD3kA2pgvrY0yMa33/b razHYkhXpmb3XsDLkn2mUHa/bnxESP4R56Kp5p0aP7Q//fGp9yP1HoJWU6VjtqfeAuS3zO ApZ7K8R92GZlQo095423j0feqUHbLkY= X-MC-Unique: -825TP0uMfSepM0eEE_BXQ-1 X-Mimecast-MFC-AGG-ID: -825TP0uMfSepM0eEE_BXQ_1753446066 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446066; x=1754050866; 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=JUYo5KA31AQ2/iT2h5kgIZBH6xPXy9KVPDj3Zp7HpXE=; b=rtOuSyHyfFa4DpQCPEceA/OAH57XrgdHRlqV1CAgOKZ8Z+WHbN9jdN6RYzCPR80tjs rFdZnDzye988Y09a5Wx/CIYgbzMEg4I6pULCyeyGhWZS/VNnu11hAepL5eEFTnwfLjBX JhHPkhHwXBUVcBD9VRevUmfxq0wjvnKuv0Yu289DV87ytg9fjhN9Wtv5oVzC9ZAEfDzA a6jMmK12O0NQCsVzXBakTw6we/u0RV9Gn/u8v39QEBTHdqW95m3JPI3K5drlHTInaLVo q0QLKqzvkRgJCWOO9aYXgAdPjcwRLUAqOOLTmwEy+gufUXsSJLmvs3JkTq564LuwuoSf 4dGA== X-Gm-Message-State: AOJu0YyIvK3XF0PkHLOuTioJiGQfTssBQ6myrWmw1Vna+rmoBIJK+mxl ws22Aw3fETgrzNlkjvYhFDa2NxMtQ1ou2zBW6ayurlMqLALK0nSeTaAEmtlNaxolBxdHoamnU6N JV0Yl7K3WNaYD6qkz9erQcHqftHXCxjMJ8PMCZE9B1ySkYkrRPUsY/Kmp X-Gm-Gg: ASbGncvl0NgsHVbFuOJyBUraTIR6CMT2uDBJhE13+XEGU7Z30FetxtE7RmH22/b8BUJ FnaxBZJgKntVjtM35kPdMZ+fSxdoW8NnhBqUBF7R920K61hz/L0CYtk9OwnT4Llsp4RR8y4JD5b FCehjc9mjkipxHiSDk31Q2xwoRdnlhtfLVPmbgncWiPBLI0DNoTneFAk9A2Q5mGuJBsOg4aj9w9 TDQSKi2LKPSek3FEAC0iWAULKb7nVeWxqvXwOvxDIvU6gqN32SzzB2enMfHyj4OsE1JsSL7Pn+d UfU/wOBDpkdOmbp6CU34eLvgI5yUC1haFMY6gkiFY5cIBdOZJ8U+eg== X-Received: by 2002:a17:90b:5848:b0:312:e731:5a6b with SMTP id 98e67ed59e1d1-31e77a20050mr2377827a91.32.1753446066160; Fri, 25 Jul 2025 05:21:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEmCpZNIqCovxPsRGPJMWr3xuh/4bRsni3fdeInDUNa+/gLapPMo2B7zoPVoVu+2vyr7CiXQw== X-Received: by 2002:a17:90b:5848:b0:312:e731:5a6b with SMTP id 98e67ed59e1d1-31e77a20050mr2377784a91.32.1753446065646; Fri, 25 Jul 2025 05:21:05 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:53 +0530 Subject: [PATCH v7 14/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: <20250725-propagate_tpm_error-v7-14-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=1842; i=armenon@redhat.com; h=from:subject:message-id; bh=PQikxdWyHXMnSaHHhBn1/YBexiFFXhThLBN//edFtV0=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzmc4S+Z+mD3dGxnwLLFbM6WGvrme4y33Pp3RT2IPEJ uXwGS4dpSwMYlwMsmKKLA1fA2SbAgojIm1fXoeZw8oEMoSBi1MAJnIom+EPZ691eL5Xy4w5r3nX 57cnZirzvLwss9Zb7cU2LhX7OXuuMvxTjG6LdLz3tLS/4ONqS+fUrqjdnXtKtMunJKe85Pi36Dc DAA== 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446519389116600 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 | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 5a7564f60d8a465f136d1fab50e887630e276871..3a1d218901472ff2d3de8a9a26b= 80fa8453c27de 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2273,13 +2273,13 @@ 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 @@ -2626,11 +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 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 07:42:59 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=1753446190; cv=none; d=zohomail.com; s=zohoarc; b=V9QiTI1z3pZ4q+b4LZNuLORikQvHDQz6E0VUpwHY6PhDnzDWrs92NlT9J8LiWrLHaiVthG/rwkkBDyvwNtgjTLU241x64M5kh2LbioP1KGQeuf8rGg9CvUtWWUsFTrtWlloaiIPjGFIeOTkbSjKfcJ4CSw0GpyuHf0XXmqdGK24= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446190; 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=E1L2xitBzHugvS2d1TalLr5EffVYW9N0qTIFQEVsgtw=; b=hiOLUpxYacMq6Ev3tAnOsBPVHzARNddtZzu8Lab8EW1x/22/XHCBMkWxhxsdN+vloyzvl+kE+5ZEJcHvtqS2+s5u0G6kPGxPVZyZ3LghtvPWy+FuDBpM2wyfjTWPTycQi35zHq4i7P0g8Q5fw/6kBri9v6r+EtqoWy4SzU6D1wA= 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 175344619043520.84971352474838; Fri, 25 Jul 2025 05:23:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHQj-0000Lv-Me; Fri, 25 Jul 2025 08:21:43 -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 1ufHQQ-000895-K3 for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:24 -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 1ufHQO-0000Ty-8i for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:22 -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-301-sERwjNULNMeW-fC2ZXGaZw-1; Fri, 25 Jul 2025 08:21:16 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-31366819969so1919269a91.0 for ; Fri, 25 Jul 2025 05:21:16 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.21.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:21:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446077; 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=E1L2xitBzHugvS2d1TalLr5EffVYW9N0qTIFQEVsgtw=; b=LZg61whCkmDE6bPYandNDtDAbpNds4OrFKgFAFIL3P6EqFpxRHqO06SaXnX2oNWrTEwwDE nV+huX3hU5z79hnjqM2B9yuxnqAZ7Oul6d5cPMkzkIs95bKaQST3iUTpvpTOVEu9tzy7LV VmfsnXq4p2co94FLJTE1pklrwxIWOsc= X-MC-Unique: sERwjNULNMeW-fC2ZXGaZw-1 X-Mimecast-MFC-AGG-ID: sERwjNULNMeW-fC2ZXGaZw_1753446075 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446075; x=1754050875; 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=E1L2xitBzHugvS2d1TalLr5EffVYW9N0qTIFQEVsgtw=; b=Pn6wWGHFpsvlLLY6O3O3SOLw4PKQ97lnwac6pr82lCHCxxe+gLucvP00qRrbIz3t0k pXmOZ9BArATjprv4+CMeCY6Rp1suz/befBTFJYQ00e+EH25K2UlRVT4xw+PyZ7i8PhKm 5//fULVUI0PQJpmjKelYxyWjusdRzKzPPvtJVQ4dBFKq5VHWDG3iIao8vyEVvJt21TBY zmK5byW8JJeaMfbSzi0dIZMuYXeAj+aUcAMO+sPectq21m065TghQbWsPBek1FBRzVpe UM/xV5CIZc+Q9HR10bX1DWWzq7he4fkPcDVSm01qSuVF4tT3p//ZUa+Ucd/3cAMghCxS Kg7Q== X-Gm-Message-State: AOJu0YzA1sgp5+ChmIEt598WeT49iBvSnWT+JYa7M7eftTeGTdCWoxbC 3jixzNZ8LTTi8+s9iAx0lIlk/nN6oYs7KzfgjavHT7b/AFfsdBUtCPXZYFRjnYDYp3yZmg7hTkX H14ZfpYqNKxx3Ua6jipsklpOJvtdb2Rll+NECChE2hwZ8bNi898L89KWo X-Gm-Gg: ASbGncv1U8JeZm9Yu7P70EFPMzYBNYOXThTRD/esKar4Vi80Dl3HoqUgf4gmub+5+pQ DTq10FZcbe7o4r+EbdqlCuDFhThUvhPqvFtzklt+XauTl0AI6YsSr/kKXN9jt3uxFdpdCwo9P7m WtqGQj+d8zA6Mq6GLjqMXkWQJfTgIlksK6p5XY39HxwrxxcqYQVaoHBI8ZfBitB6eaPvJH4E2lv 7zSPhbKBbP+Gvhck1luNhWFyjXZ3XxsSMaKMDyafiMSOfb8WJ+71hhpAOjZYdj69ATPpqRfmEBF tndxRfyUr2tBtWK1vCgTPdBPXYJKfcJzqCjedeks6PmusQP+QRIKig== X-Received: by 2002:a17:90b:58cb:b0:31e:3bbc:e9e6 with SMTP id 98e67ed59e1d1-31e77af21f8mr2634882a91.19.1753446074986; Fri, 25 Jul 2025 05:21:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF4j1CnWqLudV4HCNXfdvb1sITQOkjExdF9CPFycW6joMyLjv2onSiT4WMLqaBO1/5PYsDn3w== X-Received: by 2002:a17:90b:58cb:b0:31e:3bbc:e9e6 with SMTP id 98e67ed59e1d1-31e77af21f8mr2634840a91.19.1753446074547; Fri, 25 Jul 2025 05:21:14 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:54 +0530 Subject: [PATCH v7 15/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: <20250725-propagate_tpm_error-v7-15-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=4220; i=armenon@redhat.com; h=from:subject:message-id; bh=C+vdubXRnrbkI7Qsy3gZjlVALa25hRwp5cPyH/OtSlg=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmU5q4NMZ7x372Fjvf5r+11MzTZ1btKDmwG6FpD0Fp 7yE97/oKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMBF3Dob/FY/lp7jeEHsZv/F9 FUvLw1tuqhErDN9m73z/J+y0hsn3HYwMj0Pme69ZK/To0cGys9I9lj9ENRl/PP18+lLt9xPuH/6 9ZAAA 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446192115116600 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, 13 insertions(+), 13 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 3a1d218901472ff2d3de8a9a26b80fa8453c27de..7ecaea90d245627c19722a234b7= 8bc1383368bfd 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2004,7 +2004,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]; @@ -2017,6 +2017,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; @@ -2026,8 +2027,9 @@ 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 @@ -2036,29 +2038,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); @@ -2070,6 +2073,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,11 +2633,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 ret; + return loadvm_postcopy_ram_handle_discard(mis, len, errp); =20 case MIG_CMD_POSTCOPY_RESUME: loadvm_postcopy_handle_resume(mis); --=20 2.50.0 From nobody Sat Nov 15 07:42:59 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=1753446351; cv=none; d=zohomail.com; s=zohoarc; b=NqFB+HtTG7iDLFDpuGsXChadrrHqo01zai4Au2j7hATav5nLS8zCpe2hKGMvAArADzj056UPx7yC31GiEF381lwcAfbYITJJngH1VlsQdetEmZ13iHR57GOTo5kW9Khvevn9NpYqmjHhS6m2Vl6wi/8alawYnj/F8ll+yHtOXkQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446351; 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=czeOJNePKU1ZKF4JXNbqGvrsqHLnGcs6vKF9Tfla9zQ=; b=NFbt+K4XbeK9c8Av0siCDBN4dS6mwEADYtxeOSg9egxoQr75tU1SQ/+PEQNZs+PrqjUZs9VIotldUuflAbuJNKaRdwlWtBBhrOukxAn9nZmZeK/+LJoY9UkiSfnRFYGuiWItSDR4GVeWSo/+4aaT+zEhmi05Fnnatay5oBso9Q4= 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 1753446351199569.5227810356383; Fri, 25 Jul 2025 05:25:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHRM-00024I-EH; Fri, 25 Jul 2025 08:22:22 -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 1ufHQY-0008On-5W for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:34 -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 1ufHQV-0000VC-4k for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:29 -0400 Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-267-bGJQjEu1OgS7h0TM396EDw-1; Fri, 25 Jul 2025 08:21:25 -0400 Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-315af0857f2so1929900a91.0 for ; Fri, 25 Jul 2025 05:21:24 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.21.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:21:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446086; 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=czeOJNePKU1ZKF4JXNbqGvrsqHLnGcs6vKF9Tfla9zQ=; b=S6HgesWpuoxD5ZXjgM5TzC0FLnHXmCWx1ymuvBdkfn0N+qEB0g2B7tXNls2iDA8nTb94bQ aocu+mYoMe7nVMn0xBmQtCEfP7L6oMtbCALo1vtesFtndZtgA5gYuhsXX7vGoetZDKvdIf KYcbmBf1Uwm1rMXfLjaXyRRHrUOdbq0= X-MC-Unique: bGJQjEu1OgS7h0TM396EDw-1 X-Mimecast-MFC-AGG-ID: bGJQjEu1OgS7h0TM396EDw_1753446084 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446084; x=1754050884; 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=czeOJNePKU1ZKF4JXNbqGvrsqHLnGcs6vKF9Tfla9zQ=; b=PlEqfuSSTSl9ZE6kyx1maYNU7C9XEDVpUkDyPsP0pcVLYo1Me4GpBfLnVQ8dV7FPRA pUAU+GlIv1txw2NvIYhM+gLkX6xxS5l+zQdmTRey9Dhe3Z3EVk9yI1JWuRnB+gg/zCr1 p7bnWlmOHB2ly63aaB9vx6goIbGpepSBlxc9C0Y26C1Uu0vq/Aeh76MCX57UmCnqRS9h N+hHGLL0+yxA6NC/w0KdFgbssBPJKkTbFSVT7RvuM/qkGqKkTalzEt9AAy0WtmkRmJ9I DN3+zO+p09N+q7uqkgA0AGmqyc+pM3SOEx7MQZ2G+Vol8Ks537l0ufT8MIiJL16Ho8ZQ 6COA== X-Gm-Message-State: AOJu0YwOxGrhK9fLvbahNAcM9Nrz4hnni+t9Evy2fwIHmQKu938q9XeF q5s9jdQYRGJ2D1gWEUynATqomfJEo+PKpP9nj+DXLfpGIqtPr2ITROijWT/9PcrO22461U551HU AD4iOjwa9URn/fVtQWVkEmK4QSD6Ms7fBdsZEaMaHem3KijqgITlQu4U5 X-Gm-Gg: ASbGncseZqPGOOnVBrqR2/NdhxpSTmSYSOuDykT+CQHWwBVQuiTK1DLQEEBTYkTeGV1 IngyfFGuekxzokb/hx1VuvE+V4Yf0mmMqxNeISfEpV+oCrYvt/AIh8101ejkSLOHDGQiMOKP5an 84KVEm40qlqudu8i626b8nLDkDjolurQW+KUCA3eb88I3CDZv8jyyrDHn+8BG8YNzsVWV64vRbi l/yEKtUMJ/3d9BwA9jNqd+nEgU7q+RndMdwZImX5JuZoqBbfsVvYOAliJ18rkzlLxwrn6sFn0DM Tet/bYvuiIfvdboAC2mV+LA/H+F71927qe694ymJCHDkkIsqu/ZlTw== X-Received: by 2002:a17:90b:4f83:b0:313:d343:4e09 with SMTP id 98e67ed59e1d1-31e7783b3cbmr2296783a91.3.1753446083902; Fri, 25 Jul 2025 05:21:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFcIqjNgGdwlSkTHrI4HxcMj7b07Gylavd7XQf0uWgPP27wLJeI4AOQUT8X4j7liqfoy0ai4w== X-Received: by 2002:a17:90b:4f83:b0:313:d343:4e09 with SMTP id 98e67ed59e1d1-31e7783b3cbmr2296751a91.3.1753446083434; Fri, 25 Jul 2025 05:21:23 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:55 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-16-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=2614; i=armenon@redhat.com; h=from:subject:message-id; bh=WaU61dfVIcr4ptUcXa4gMHPxNl+bO78GCw5cfQgK1Hk=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzmc5dqSth6vJz72vbb1HmFtDKrnHZvumpXnLlp/gcv Tsti8M7SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATCR0PyPDDtmrCetYFk67l2CT rFcU3bP09UauLWdU17PcOqLlrn6AheF/ftV+nePnFr+xnT1pBxvb3Ouq7DssvM4LWkqoplQGaLz mAgA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446351799116600 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 | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 7ecaea90d245627c19722a234b78bc1383368bfd..68e62163f70e1c2abcff74b3a2f= 7a5d2ed546b22 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2479,32 +2479,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 @@ -2640,11 +2643,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 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 07:42:59 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=1753446428; cv=none; d=zohomail.com; s=zohoarc; b=Bs+EjSHUH83YaHhUxPejMCP8ARXOx3PuRMl3KucboPE6qGCadVENaArvh74gsjZCGO1ccgmLYVbdQlZVozTiUMs0BclfuR1RZFC2roX9gUnEPI3zbu+eYTZH/nChrh9eP4IJKwFUfW15E+i6eG0qfbdrK8KKDdYUr208HjSn1HM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446428; 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=FspvbSMxmYgmZTg1d8IvRS37ohDRe4YLLWTuHbyvRK0=; b=eVvfnnSVQSee3e6T7tzdCAZAAcVmSsA2QkPBdnRvP/Ylsy534XNCigRQS2D3gdNkW+BblgKRnn9YJSsg+dC7IAU0+dKMgSJy/WWEDrUGKGQMDKCeMPhdHbDepGlscTgcOGXinWEi5PK/xOg+TtlPN/DE3TGNxCGx9vZbqTW0844= 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 1753446428182812.2509768080023; Fri, 25 Jul 2025 05:27:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHTY-0004Vw-8A; Fri, 25 Jul 2025 08:24:38 -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 1ufHQl-0000ab-6o for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21: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 1ufHQh-0000Xg-5q for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:42 -0400 Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-653-R-01dVFzOtiaT7hShnhMfg-1; Fri, 25 Jul 2025 08:21:37 -0400 Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-311ef4fb5fdso2448333a91.1 for ; Fri, 25 Jul 2025 05:21:36 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.21.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:21:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446098; 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=FspvbSMxmYgmZTg1d8IvRS37ohDRe4YLLWTuHbyvRK0=; b=Ab6I5oGRTu4hBYcTeaENwo1dFH3zN7sd+/NmZtK9UXCqgal+f39x3zTtY5RTre9iR/DTGV aVpvRefywThLM68BeT5K6fPQe+UKmqDW5xuCtzgmnna7n/KvCUQELYTynk7PIz8dnA8/eT v4a4fv/qXS8YrnJ/8FpgTjDKR518LxE= X-MC-Unique: R-01dVFzOtiaT7hShnhMfg-1 X-Mimecast-MFC-AGG-ID: R-01dVFzOtiaT7hShnhMfg_1753446096 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446093; x=1754050893; 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=FspvbSMxmYgmZTg1d8IvRS37ohDRe4YLLWTuHbyvRK0=; b=sMdmITVO310CXzDKysPkory4n4hlAYxVV27sN1QTOh4KokwQM5eElgH9kGm8jemV0m /Yr2tSF+3mG0I1tMLh6faxlOmEqE8JWg6lr5pDnv1/pMZ6xYYkBUXyRf2plIKgrVCfLT 9wFdXtdhlnIKLq7+43mhurPGQecHwHEE9Q59wdxRH8c5HDKIg3c65Qv5UQyTYbix729G NL1RMRO/N9L5BnfcQi8Dmm0r9SRCRKGxaRD3A2nx/pmv41y/rjGj3eZeGX+3BDSd+jqh v67Bsuv1UijSjpGSEmxoFfJZbsI2WlKfSOvtO8blEEtvwQKjd/rsck1LyPtwrL6Zuebi zJbw== X-Gm-Message-State: AOJu0YwXCY3pGf5NiLZqsAIOfBIZjYxoVcbTTNHQHPGafUXdqRhhFmrA SW3yicuiyoSvorendJv9d4lX/lP2VnytAnwAPk7eJH0/rt6Yiv5bHULIOJVnowA7rry/PfFwE2T ZuDk0BjEuzTCfqPYDxsqmx5Uegb+1fiOF3A7VUsANJQr8h2Rq4CeBhWqo X-Gm-Gg: ASbGnctcG5zyx/cmoU5AQX371Kfruqd94shKiaJZubyfQHe077mNBAZXLrSJMnvBY9K 22/X+J7xtrsvqg9orAB2VnO91YcUgYHLPsZL3V/IOOUOiy8WA5ay/0e+Ef+ZKfCFJH2L1MOU0a3 59+1pxz1Mw8+KE7XDrwKCfLECuW0Hi2FopVGVju/gbw0lLvUpXEorj8cTyaeuu7AuRKtVp6QD8A B0Sgap+7kV/3lXp6odqqDTj1MYkfvt+f8esxHIgFoSk7YSd+33py1VpwOafMPqdiyZ1k3xoZwtr N5SpaFGjzvrROyvkksNZbyAp9YY8y91+4IbTO0soW5oxXosg6mtGXg== X-Received: by 2002:a17:90b:4e87:b0:312:639:a06a with SMTP id 98e67ed59e1d1-31e77a326e6mr2516027a91.31.1753446092439; Fri, 25 Jul 2025 05:21:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFNpbhJm3pxWPz8u72AoT0FNPQ/+ecSutB39p41ZcTIjJtSUYtkV/IGp2Y/OxvZIP0RRT8Qyw== X-Received: by 2002:a17:90b:4e87:b0:312:639:a06a with SMTP id 98e67ed59e1d1-31e77a326e6mr2515973a91.31.1753446092047; Fri, 25 Jul 2025 05:21:32 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:56 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-17-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=5905; i=armenon@redhat.com; h=from:subject:message-id; bh=j0rTumCTd6RPgknWnxv9rI7OR2oTatn+7tqFjPpKtSY=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmY5IwqywTN/HvXyaFdr9q2c/lkk7LRzZ+CDh4v1Dl 6T4lfd2lLIwiHExyIopsjR8DZBtCiiMiLR9eR1mDisTyBAGLk4BmEiECyPDPO7yWTJNxrcUP1wJ q0gIfSFeoymkOa0z00498fBeuU0XGRl+H1lcrMvSvqAjePbczTfnLUl89GK97befN1/wToi3O27 GAwA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446430692116600 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 | 25 +++++++++++++------------ 5 files changed, 25 insertions(+), 24 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 6a0dcc04f436524a37672c41c38f201f06773374..995431c9e320f443c385c29d664= d62e18c1afd90 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, "Can't alloc memory for COLO cache of " + "block %s, size 0x" RAM_ADDR_FMT, + 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 68e62163f70e1c2abcff74b3a2f7a5d2ed546b22..e14e2156a4befec44eaaa992c86= 21a03e499ea76 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2518,15 +2518,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; } @@ -2646,11 +2651,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 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 07:42:59 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=1753446299; cv=none; d=zohomail.com; s=zohoarc; b=aqtl7Hl8iHf+W1dhj43yHsI2fl1QB3TEAgfmIOrNfPr5IPxhfUBS4Savgs1tory7dwuDZPy3Ky7PJAP3nU5IMn1LS2LDMU5HuHlz5hMa2WrvjVsLsF9wLqyw7fUrcX703E+UV1NH1zMoJ/99dgdEB5N6Xall/xhxvgjtG5I/xtg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446299; 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=FCpDb94X0hjrktrzX/OdLdryyHZXUa/eMr0qkKPb7Q0=; b=VphZPqjgTOc4J+llYorM1kYAYXHO7oGqbH5vR1WkEyjhnCFKJ/hs9ttebGbbhK7E7bLtf7f0ViATmjxe6ZGoyLuB7yBpJJCYuMH82GjRSRywtimoOBQIugpCI8zocc1Bwik6zZy6zs1Btkz1ISFc6FB4hd3/6H1fEkZ6HHTUaKY= 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 1753446299826923.2826986242383; Fri, 25 Jul 2025 05:24:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHRU-0002dz-OK; Fri, 25 Jul 2025 08:22:33 -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 1ufHQq-0000wc-Vz for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:51 -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 1ufHQn-0000Ym-FF for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:48 -0400 Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-528-iCaj2miVMPO-IFL1_Ymozg-1; Fri, 25 Jul 2025 08:21:42 -0400 Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-31215090074so3286827a91.0 for ; Fri, 25 Jul 2025 05:21:42 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.21.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:21:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446103; 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=FCpDb94X0hjrktrzX/OdLdryyHZXUa/eMr0qkKPb7Q0=; b=YGMdIzKnmKMsyXY7Oig95LfJFGDn3XQiqhn83f+7rHzkWa3qNUlZUtfdhktiKJm0Fynuw/ C/brpZEPYg2XNP0f4dYyduMutsGjFGr0fytco0To24aEfcEd71ECa8a3FI+1pW/MXxWwyr yxLMiSoa7k3/S3iHs+MjyLNiVRY+XtU= X-MC-Unique: iCaj2miVMPO-IFL1_Ymozg-1 X-Mimecast-MFC-AGG-ID: iCaj2miVMPO-IFL1_Ymozg_1753446101 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446101; x=1754050901; 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=FCpDb94X0hjrktrzX/OdLdryyHZXUa/eMr0qkKPb7Q0=; b=BmcTJNTrk3jzRiEslWxSdcvtRjP64bXMW70y1orqhdyVk5fRIUONgqVvaUu/L3hRx7 Fw3dcN5N7RT8l+4XsGThEvwmttc00qQTC5oWRnhZCDDa9q3v5/v95mrtzR0qv1ZqdSgQ tpLzjbTVISjQkXh8OHGxZKakFav+MwspOHoC2vhxN+q6JcJ5fvhLTUi0xdDeD2efPN89 VjufDC2/NkfwkAUuohbUOI898MKMOiyGn2VgnCFmN2RF+MucbxOR/GgNaNIu5e/thIfh ynp08mxxlIB7PwbXxFKXXTeSVLcZd11O87q2MnfaG/qmoSBDm6FryOqxEg4AsF8+Pmq6 WhHw== X-Gm-Message-State: AOJu0YzpSaTIgBfRkszP1X3rAuyUs/cEf2Y6x5D6T8UsgrVXNWyD3dOO 4jDvOesUdfD5qh0dXCF5YfNt7gaPKbH2+rLnZjkcZPzSiO9/yRy1Dy0BZBgBG1ntCaUJKw2CfEf X4K196esD/qo4YVeYTbemczhL/KveT/6brrqo4MrRXjndGOFR4CX25hSm X-Gm-Gg: ASbGnct+OAS9mhp06HG1bbquUXgNPDd12VNGHYMIyNiThzArtcyL4n76wKjpNMHDwLl qOucEx4690UPDOpJuiadm4k8zRqULXl6rhzB+VrLMvv4LUENPEnIGENadvTVMIOpnGJaHyEFvNq qcW1oNxA5rb2QhexKcZ1cWpPEoEWWsGUDPkPnLyGtaDLP0yq22bRHjBGTwXIGobeDoUyEBVv6tp /cyz90ssOmNFAGpoy53ByeFIynxRLzfa5jF+/NDy3kU0W8EtaEp0kZdZodjTnVryyN+qbFIrK2v Wns2w7/GfO+ZpL/CIRoYMjZtlbIKj7d522tEvKm1o9NJkqhL/v2z5A== X-Received: by 2002:a17:90b:5310:b0:311:c939:c859 with SMTP id 98e67ed59e1d1-31e77b19ea9mr2376989a91.30.1753446101251; Fri, 25 Jul 2025 05:21:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGVBZxunhwG8DjmtFxiFwEyrDKld5gF2ATjN6sy91pKByrfbRfzqqyxjVG3331mauqTaJ1H8g== X-Received: by 2002:a17:90b:5310:b0:311:c939:c859 with SMTP id 98e67ed59e1d1-31e77b19ea9mr2376960a91.30.1753446100845; Fri, 25 Jul 2025 05:21:40 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:57 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-18-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=1701; i=armenon@redhat.com; h=from:subject:message-id; bh=87S4RBhe9tSJE86BXXC7GsmFR9CfourwSQYRXhBf0Xc=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzmc4jvdCTf3ibDnnu2PZep3Nlx67Ndt2B6VcbN86uj RRfvdelo5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwEQeKzIybPhc+VVizbKTelwG ftNeuMw2MFsew/NL3uBi95TufcemdTP8s2TuXubyY8e6z9Gtlz5eTzmZlnW+SrStp0St+tHrNnl WbgA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446301241116600 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 | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index e14e2156a4befec44eaaa992c8621a03e499ea76..6ac121a956f30ee2b1295a1e822= 395a99a3f6d36 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2536,7 +2536,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 @@ -2549,6 +2549,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; } } @@ -2654,11 +2655,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 ret; + return loadvm_postcopy_handle_switchover_start(errp); } =20 return 0; --=20 2.50.0 From nobody Sat Nov 15 07:42:59 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=1753446508; cv=none; d=zohomail.com; s=zohoarc; b=gf4YSq70EKWkuiJAb26z0JqFXMHNsQ20UQR35D+WE0l+YrMNuQX3wXizyslFBTnJAYJUTuCjQnvGWHMnEJ5552afHQqrzS6/q1JU4Lsk8OXHQINb9qbqU2eN55eBi3xx0oEYKaqkItnwDaM651MRvBhrnJC+m44GkQQRW/ML7iw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446508; 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=tS2o6wRU/YpOroGnJUduyOqkQ8T3sCtzwpbmqTuuu9c=; b=jIU0zMOCSufj6Is+alMQDBCuwfNSbF/KRM7JL0LySLC/hRsG7qS6HET1uTgIb3EAzQEJ2jct+96RvDMdEh6qgYm6fGmUoVQtPcEoe0Iz2ycOJ78nn5lHBBiP11Eu1cr6puBNsruOqjG9umxW4xGp04qZsinGNQgisS5OKEX8BDg= 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 1753446507868908.0336450973009; Fri, 25 Jul 2025 05:28:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHT0-0003yX-20; Fri, 25 Jul 2025 08:24: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 1ufHR0-0001Xi-Le for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:58 -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 1ufHQx-0000bT-Gu for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:21:57 -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-301-Llgk_ILhPm28zWBE2KCfHg-1; Fri, 25 Jul 2025 08:21:51 -0400 Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b3f657b4badso1619785a12.0 for ; Fri, 25 Jul 2025 05:21:51 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.21.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:21:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446112; 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=tS2o6wRU/YpOroGnJUduyOqkQ8T3sCtzwpbmqTuuu9c=; b=cbt9kWYFLTzB7dj5lu9oxNRzUHr9REv26TA0qKCo2N41XUvnV7eUDZL4CLSLqwJC5tgb7b HdI0w9DzOphNTpxBSrLdX3M6SCOwW8wIkr8VLsrn1Fnkfo4zAxcHADlvsud4f2dXcVORR/ TfQ6AnoX1L86z3eCOlyeT8rgfLigO9A= X-MC-Unique: Llgk_ILhPm28zWBE2KCfHg-1 X-Mimecast-MFC-AGG-ID: Llgk_ILhPm28zWBE2KCfHg_1753446110 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446110; x=1754050910; 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=tS2o6wRU/YpOroGnJUduyOqkQ8T3sCtzwpbmqTuuu9c=; b=PYkPquy9qGpduRL7uK4VUHX8tSCf47ndfdMIfu7v4hTDIQ6CAk53NkKU2WXXbdgf2Z nLim6jNSlZpk/vwIfy+7ajsA55EI4VfBbhRavfzc3WMIHjbYJ3DsKczw/aW53JwaDy4V aq0wOU1hDKyC7YFCtoR5Zwt2UmwX2g6TMJvWPJ0bI9pFdnRu6bgB5POWCO0BcXmNUnpC YD93ufPbRmrkFJQ9e0YN++/OJXHmJWWiTey1BLVRuPqqNzfI8719Jtw3o2xAHkJc3zn1 jtoDKQynQ/lRI74PnA7O4nbK1TRAw1OGMpAb2gYzrBRkFr3gn8l+LOSi2vIr6Owwkrl7 F0UA== X-Gm-Message-State: AOJu0Yyl7/1jHUpMOhV3wapYOY5dIY+V4P5Sux6ZacCQJhMbwuccZWnt MuaGJabbnxg+uGDS6Z3jOMeLO9itQFe1IGyYocD33zGraZz8pQUU5J+oMa+hhV1RR/hj89oV+Pz 7/2NZoiu0aJRmwOahtEgqJE5PCFDG2VPFkOmf9e4SflnxMx17gFLP60lk X-Gm-Gg: ASbGncsw8uATGCBHVV8zO81vupLZqYdf6484wijAyfHN4AzZYNGJ6pDr0SO60bRSVOj 1/6hRZ36sY+XQAnROWKQzHrR5B92SsMCFA+vr8C8wTD3QLDbLZyCB+spCHVFLoU3Q28lCI/aij/ Z/vz1DMjDpus6EsBPritdfpRzdx68e8putJyAsdZGhLGtgQgeCB5UATxCzoGBd9DbIiCflfAJ28 CDcXHP5Di1q8m25cF/FzDQLzcJg+asPM/uZjw5H/hzKPgHo2fQZ8Uo067kgVVLO9xKjALyrWFuF bNzZFWGC9/79cxnkMBCi+TCDFEtZY1uZ5PrdOPBG/+StawoPjPyhCg== X-Received: by 2002:a17:90b:56cb:b0:311:d05c:936 with SMTP id 98e67ed59e1d1-31e778f2e74mr2963318a91.17.1753446110240; Fri, 25 Jul 2025 05:21:50 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFUslRurBEAIOrBzXssUUupnWy/NLSJB8z6iV5QBLjCmWmC5abaRrOxCKqGCv+VRI2EZld0lA== X-Received: by 2002:a17:90b:56cb:b0:311:d05c:936 with SMTP id 98e67ed59e1d1-31e778f2e74mr2963275a91.17.1753446109806; Fri, 25 Jul 2025 05:21:49 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:58 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-19-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=5811; i=armenon@redhat.com; h=from:subject:message-id; bh=nDa9qSnueFdP89mMMlo8MG1sliktLeLMMgBGrKg0dB4=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzme70b+IM1hUul3t8c2yYSi71iZt/lBY5VMdS/23Sa sUjZWs6SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATGT1Xob/OU43Dq5c4KZbVzPD an37XCO9OXwrb8bWqvDoZc9ui5/sz8gw02eOIMcfJjG29Xrv/oTkL7u86fLXS+wtp1SmBJj5vLn ADwA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446509511116600 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..5507dc25da24e0c6b030ac5563d= 663d70d013671 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 6ac121a956f30ee2b1295a1e822395a99a3f6d36..b125f31c1bd5c0d49e07247cb9c= e46dfcea5b075 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2111,7 +2111,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 @@ -2461,9 +2461,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); @@ -3064,7 +3064,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; @@ -3073,8 +3074,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 @@ -3082,20 +3085,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; @@ -3105,7 +3108,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; } @@ -3169,7 +3172,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); @@ -3243,7 +3246,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 07:42:59 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=1753446424; cv=none; d=zohomail.com; s=zohoarc; b=Nfd3qypaWl9WdmCRDqO240CNgMX2sHT8qDg1fvnG5LJEASlcUbEfeDZEKBO9ORZZLCM/yGXXzGmSyBIb/nNxTJxTvYmijdGXcILyiKMxC2Ucb0Tx53H0XS6skofF3xOkpBcmzKYHOS9YSKsSwTT06I7tgUWNFkrdgkKi9FiH7fE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446424; 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=IsHleITly2fSWzpbr9+ffWu/xAKzajrAIiX6w2f6lg8=; b=T4HP8XD/OTqutTpKQgSfJQfSN5/v8RpbnL1Dj16Fj5AYVpoFyzY5Pg9GUTPPw6b48Sn1soKmcODMOeoUeP2MqDHOw709lNK3MNBanXxrxyArl9UZuWH8Lo6eXJTtgFoAKIjMfW3FFpTtGafDs0CmZzxgykUXigDSRpwzB5ZlPyc= 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 1753446424094896.7586381009683; Fri, 25 Jul 2025 05:27:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHSu-0003se-IU; Fri, 25 Jul 2025 08:24: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 1ufHR8-0001uG-HD for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:22:09 -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 1ufHR6-0000dO-67 for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:22:06 -0400 Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-300-f4WLdUPbNpe5uHn7kI9cew-1; Fri, 25 Jul 2025 08:22:00 -0400 Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-315af08594fso2008320a91.2 for ; Fri, 25 Jul 2025 05:22:00 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.21.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:21:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446121; 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=IsHleITly2fSWzpbr9+ffWu/xAKzajrAIiX6w2f6lg8=; b=hNFnMkGeDAmC+7pPjzNUFVXq8dXVDBY8y39tddo36PgvOiyRUB0VPXcuq9n0DSxlJHtFdV 62mV0pUvEy15JiVsJo5ejFHlVUY5aWADElh22WjBNcYfqpmdfgy7brJdCHaE2VoZ4w4k9l PvgtKXQDtmKhdbsD2S1qGkvrisskit8= X-MC-Unique: f4WLdUPbNpe5uHn7kI9cew-1 X-Mimecast-MFC-AGG-ID: f4WLdUPbNpe5uHn7kI9cew_1753446119 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446119; x=1754050919; 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=IsHleITly2fSWzpbr9+ffWu/xAKzajrAIiX6w2f6lg8=; b=MesLiMmvPr3Smrsx2hN+ZOnKclf9SWAAtedI+INarqTrOchlDKvfI2dKBbcDLg9WVF dPvMgqwZ2pzC9BSGQ3Eoo+ArAMZT2BeDrW5XIyC/167uLG/9BTGdeUKsY3m+MIyiECk6 +1CXlGDdPzEOItMunrTo4GFIWYedmAdtTqAxST7gH5MnQ6v77QWip6W96LxzHkZj7Cit AXB3ZNArZG9FcdKIpRGxWFs95Yy6XZhxEWD3lmaKsdYTMjq6klqoVFzrvalEy+arZvtx +d3OfdVvLqH1A6kHDbMpf9+pGywPN6WMnUd1v3LXcVHpW80uoPz6dF5IxiOdLFAs2dn8 tudA== X-Gm-Message-State: AOJu0YyxRKSpskkWG46oxDXUPx7wvsEbeySeqKwIu3mPi47cAwXsnMKF dozXJLCw4mnR1AdoIk3wfutUdOeEygpsYAMT5Lq4Xn2VAWgFthf1Atu0p3pj/aownPaICeJdwOQ MPqRRoPvdqnGOdtZD8hkmw3o8UVrJEbBpOMMsp9D8WafGVGJhf16jlJcb X-Gm-Gg: ASbGncubUHm+5YTnoNMdVKq68DsLcXEWSl8AAjK8wkWIpX65nB8GwJQSB1b8wpomqxz JaO+slnNUoD+U67udTQqmXERQEGoE7j/b+pPCXwKlVBKCoRNFPcHFZV5djnExhSetanz3iFy9yT 19Keh8fW+gpAO53sYU/FKthrqdDIPRwqPUKZPkkaAwF9EMhL0nAUPExdzVrD6rJATGuV2EvzJgR yIe0gy4iyJCA4Ru8H4JawpXtjG6gkEI+/m+MwRjKNqdu2/vQz0p95ZNySVsVsg82FEDrWhU7+e3 h4DCDV+r/hWT8VsCvXb/NgEm996yTsktGcMGIAMdVM8WAXjMTuRmZg== X-Received: by 2002:a17:90b:55c3:b0:31e:60ac:bf65 with SMTP id 98e67ed59e1d1-31e77a2040bmr2433024a91.27.1753446119114; Fri, 25 Jul 2025 05:21:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF1sZLFBkf5hjl+sBEhVuWkX0D1mPsauSu8OwzapiIFs7hFnZFCiN988s6nUw3XCg+2yF6yXg== X-Received: by 2002:a17:90b:55c3:b0:31e:60ac:bf65 with SMTP id 98e67ed59e1d1-31e77a2040bmr2432960a91.27.1753446118637; Fri, 25 Jul 2025 05:21:58 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:48:59 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-20-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=4938; i=armenon@redhat.com; h=from:subject:message-id; bh=jSGjZon+paavEMzrt0euF2ut2QMTmAsFbC5TCssmvYM=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0ZzmW5pxma2by17A1ZJFG2+p7fL1PLSxdCn7B1fGta7f r5w4+LBjlIWBjEuBlkxRZaGrwGyTQGFEZG2L6/DzGFlAhnCwMUpABP5UMHwT4Oj4+uXfWsr7XMu tXJp3jtrVMt/VyNmho3WEjnT5xelZzL891Q9WNy85aifyj/lkEdHD4k6aM3MT9Y7xvdH0Yn97ZH XnAA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446426778116600 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 | 27 +++++++++++++++------------ migration/savevm.h | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index d748a02712dc4ebc2de6b0488fb199c92c4d4079..0a5a8d5948b2b0a3f85163795e8= 4f71903870d25 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 b125f31c1bd5c0d49e07247cb9ce46dfcea5b075..acdd32159bb303907af64b79701= 68112fcce2514 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3142,27 +3142,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 @@ -3172,7 +3169,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); @@ -3190,8 +3187,14 @@ 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 VM state: " + "Migration stream has error"); } else { ret =3D qemu_file_get_error(f); + if (ret < 0) { + error_setg(errp, "Error while loading vmstate : %d", ret); + } } } /* @@ -3477,10 +3480,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(); } @@ -3551,13 +3554,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 07:42:59 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=1753446432; cv=none; d=zohomail.com; s=zohoarc; b=Vh+4YNifrcAgdUkQD8ezm+7AVhxnfW0gHzZF4Yy4Y5kTTYiT5JGj2vT6AnvJXhg/7forZlJPOVVoPLn6ewpYmf4JEkjp217z6e1bgvg0u25+RBnHl106klr1ilxstmdDmlr6enp8GaGVDwQTRkGYKI/sHCItKe1Pr0PPqV76Wow= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446432; 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=Wa0g303nr2kLIRTVVkMvTl0mPrmuwUjfpO4DgJqaVk4=; b=hNmFI+MyGqkUevVJb+CKati7u2vzSYfrc3PKeSejD/beYUL40ZLw96N3K8hY/zCw9pd4SwCGGLiunOo+As891YxgtxLLsT+xiaEPNPJvFlFZBNsW+gJt+SgrnQ8hysrLZnTSqVPNzb3V3m78+61AUVPIRg5BoIkESoidgs0f3Cc= 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 1753446432107315.68574616006845; Fri, 25 Jul 2025 05:27:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHTq-0005Sl-2U; Fri, 25 Jul 2025 08:25: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 1ufHRH-00028g-Pj for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:22:19 -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 1ufHRF-0000eo-4R for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:22:14 -0400 Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-359-0mrWFRHpNDqDIJ7NubSorg-1; Fri, 25 Jul 2025 08:22:09 -0400 Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-31e3fdf1906so2016420a91.0 for ; Fri, 25 Jul 2025 05:22:09 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.21.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:22:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446130; 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=Wa0g303nr2kLIRTVVkMvTl0mPrmuwUjfpO4DgJqaVk4=; b=TgWTzUvPVVP97ZU5Nz+HVcTYhUVm0B62HlTXlnFClBrIiuKdrxbL4DeITI7sI4qn3vPGtr MUrbCWhza15L+efW7jJfpC+R/tVODk5hb/JTIAyGJhDT9qLXq6384xkudxQhtvQQBFZB4v q442GkJpe7NlIFdEutv6GokLxd4VnNU= X-MC-Unique: 0mrWFRHpNDqDIJ7NubSorg-1 X-Mimecast-MFC-AGG-ID: 0mrWFRHpNDqDIJ7NubSorg_1753446128 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446128; x=1754050928; 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=Wa0g303nr2kLIRTVVkMvTl0mPrmuwUjfpO4DgJqaVk4=; b=eh/F/j7k0YZiZ52nErZmuGAW6+/lcM8mdDegrF/jUBeluhODyvXKhrSQfU9sFLt0AP s2E854PSCIsTK4lJyQUIqX22IpFfj8FRtEJyHjG41AQ4gkOnCZr/Mus+lHr3k6MnaiSN bxXTrEAO/HhsiyZh0U69HXyMof1N3Ao02jPeQqmR/5LPittimETZ2ElUO1FU6TsM5iXt VRE5qbcLmRYxa0n3n07198ngFTBBHASB/sYKpU24SgO04QRL+4Ojihi0NlDGDFEFZbqJ 71ghL4jDruR3sZPYWvsO1d3vdzrl72FsvG+L98d5X02BTa/JZj1X3ODmB305C89Zm82e ZoBg== X-Gm-Message-State: AOJu0YxYJnHjQVAsBSkz7soKdq7ZdjSpebH3AXHzBKJbYBb6zxcIWByq lX+nZrr9GSOSLzuXw12r6T1em0tWQankzu8vRt9JGbz6CGl0VfCghkkqmgnu/3TZ5nr7NQIEtFy 2lEo9vRoaVRD6/HflASPHhTA1fExQzxtQA6L6R4FWLKNmgCSOepc4qSX/ X-Gm-Gg: ASbGncvCX1su3kjOiXb0dfsEs6Zd9OUpSvcx2kEV33cY+QmwdONNqMtTYU+pKUynm9j 1w10uzm6sXAscP5pFmaISkbmAD+TPQxbmkxFu9PqMD5IOeFgh37omKJlV7dhze6Szj4hMUbAtDq +B8RN9Ozo/0/CCwfsPnxiZnJJcACg0m4vcTt1W9v3baSnmypBbGa4qGaWgF+hsOB7OwymUcIT/C +Dw4KfxfmlHhIYqhpauPLe0pQaezeoT6dVG2hxuKVsBAqCzlzJ8vSIXiJoBNpWQpyqvz6EMmu7M wsTYD5ylsA03s37yIVsBc4B5IrHWCl/CtCbKWWqHoGxzK4dpnTcCqQ== X-Received: by 2002:a17:90b:3946:b0:313:283e:e87c with SMTP id 98e67ed59e1d1-31e77841b33mr2513794a91.3.1753446128030; Fri, 25 Jul 2025 05:22:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHQw1AZ3b7nIs8vWteb/hEPwjabDOuSmaGFIysndTYKEuJpoNpr8blyNMG4fSb5qesm/XjNtQ== X-Received: by 2002:a17:90b:3946:b0:313:283e:e87c with SMTP id 98e67ed59e1d1-31e77841b33mr2513730a91.3.1753446127434; Fri, 25 Jul 2025 05:22:07 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:49:00 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-21-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=2661; i=armenon@redhat.com; h=from:subject:message-id; bh=MS0ku2z4FlNI7J2z6kkZ113Hs326QuZRIGEPk3M5DJk=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzma4tK5dwaicbf/OCHM0lL38wBf5NrbjPJWP8z6bLn n/2e7OOUhYGMS4GWTFFloavAbJNAYURkbYvr8PMYWUCGcLAxSkAE0layPC/eMkr0+e1E5+q6Rbx iS27Y6ievavrmVFqggZrxKla+UPLGP6HXPUTt7Fte5G1IvC/1vei7gWJzz/fPGT6cVcwh6ZqeyA nAA== 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446432819116600 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 5507dc25da24e0c6b030ac5563d663d70d013671..ec4ddc61d8ff7c4aebcd60a0d44= 286b0196adc34 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 acdd32159bb303907af64b7970168112fcce2514..810bba9799246c8d57514be0927= bb474edee8e9b 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3243,15 +3243,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 07:42:59 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=1753446499; cv=none; d=zohomail.com; s=zohoarc; b=VsxnjbO2zfDW255FLB1EW+iCY5iOOVnSp0GHjgHrXHVfo54s7OTx5iUaxDkwtO1s9B50uH2n3aj7St3V/BfifiZtXe33GpztsnNZ5hkAWY35Sp2oj6cj0Z4nnNWEciPFvcPzImUSRtrGWI3jw5ravivE32lDqeOr6VdRmdg8WV0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446499; 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=bYqjpe6cfSoElxQy+WVXsgQT4SsxY66JlTODOphrzwk=; b=Gi7bPx8JUfbx9R7hnDiPtCgbbhN8Dkyi4ia7lTqpzuLakYtY7n+xVuu+JzdrXcERRIFekQYezTlrEpgJ2kRij1UfYpdOBVA44DjGDU2bQpljzyaGiO1FHdImSFRNiBF60blw3nHVN/QPW2JOvbkBQaT3yyiLzwHVFvTMoSFnVwg= 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 1753446499441983.3329972509341; Fri, 25 Jul 2025 05:28:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHVG-00075m-M1; Fri, 25 Jul 2025 08:26:23 -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 1ufHRW-0002u5-Na for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:22:36 -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 1ufHRM-0000gc-8w for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:22:30 -0400 Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-256-cu9BmWkeMk6wHRxbTUCVaQ-1; Fri, 25 Jul 2025 08:22:18 -0400 Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-315af0857f2so1930276a91.0 for ; Fri, 25 Jul 2025 05:22:17 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.22.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:22:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446139; 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=bYqjpe6cfSoElxQy+WVXsgQT4SsxY66JlTODOphrzwk=; b=eLQ2pFp8slDqTz1ZcM7rh3eMattjM2rXCraiuCn4NgOW0H2PQCcAi4Zu/5DrVKKmXLal10 IohqWHQyjcryUxHjBbiG8V6mRRbwC40FTp6NBBFxNHMpWMf321SZxusH5Rn52Lj/tf9f1A sjB4fKjE/5fUMHJFgIjL5G0snTepswo= X-MC-Unique: cu9BmWkeMk6wHRxbTUCVaQ-1 X-Mimecast-MFC-AGG-ID: cu9BmWkeMk6wHRxbTUCVaQ_1753446137 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446137; x=1754050937; 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=bYqjpe6cfSoElxQy+WVXsgQT4SsxY66JlTODOphrzwk=; b=iDJCEN6TtkV9zF64mBANiH5NtQlZFNwESKFkqn3+ZKXTNxAtT2IhSBvFvHrJ9hfRj3 /in+uclpXQKsO/OpaPXfTwaiezgoCQal/gokhisguIB9XsdA5J00ikK/S4ZooaZ5ohUA mlkyBZtbYSNyBeeXu43UKxf9Wb8OgTXiR4FXLCDUUOYZwjY8YxzPBv4tbkkgX0woLQAv ZIUtlHPfJ+meYgdUnfIe6tclHa6DJOpVqEBqfIW8rC5mGZkYe3ElUKvFfdzZZSuMNs8/ dnsLD6f1T9DZkBaxMLOmypYc1ePUOAET15a9WHyJkAa2rzd9Qo7i1e5CMq2AXEBSfK/E Xo4w== X-Gm-Message-State: AOJu0Ywfe2wCJKxZR2OsxGNJy+3EtAkTKQ7al4gXtbabQskWnyg5Dbj0 syzmCNZbMW2zZZX7o8Ew1LE/i6Enj6B2Wpc/gPv6iwJKkzD8RMUjCH82KvjU9EvnNIkhpQOLJXR 2ifQm7G+OB3+x7y7BZ7F6Xks17lSf5aT+r6DE8L6ZHZB1GEhYve19oy7q X-Gm-Gg: ASbGnct7zWnciojnPtO2XhuMBaQiOG5ycvdrK8ZoSwqxFUIhu1Sfy9pgeizqyYP2d+1 I/63X7cnn53HfeUw+VVoOdiYLtkW2SEHOXmG+2J7FxP/wZwuy/kzAF69mOMWkRDzSrdxiDe1K+j 9F3ozpzxhJdfS9gSxjrM4VtWU9w/YyyE5KU4DF4SV4LGYN39oYEbKc2EJ9yjEC/2NuzEzpI4wyQ UnlkI63kjTGUVIRg7UYCdCfaF+AoASmLjmLIEKHtcfny3PdhbFJzMNAL9Zzz5NTiq4uAfZ/rAQe M4iHxzArgkBcfrjRKC8KJRmBPLYlAH6YieeJBCsVjdJ3FHOCqd55wQ== X-Received: by 2002:a17:90b:5104:b0:312:26d9:d5b4 with SMTP id 98e67ed59e1d1-31e778f4107mr3018327a91.17.1753446136793; Fri, 25 Jul 2025 05:22:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEfep27hBZddfxp1sm0ABZ7gY5vgkb+BQF5QfgcPD8G08SfkcXbMEHSPDLYlfp8E5EemCcvnw== X-Received: by 2002:a17:90b:5104:b0:312:26d9:d5b4 with SMTP id 98e67ed59e1d1-31e778f4107mr3018253a91.17.1753446136309; Fri, 25 Jul 2025 05:22:16 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:49:01 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-22-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=2963; i=armenon@redhat.com; h=from:subject:message-id; bh=E/DH1i88c4/KiNDhda4LU9lNjAUHsEOCIMyiwH9Svm4=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzme7S2/I/b/bG+rS2GYodKFxy2cX6xtweFZv061qPv UuXXv3SUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCIKGYwM9+otj91Y1q2vEioo 47k5+syLDcuWyE+pbJmRfFHk//49OYwM/3zVjyYYcWSu13Da+bSFy1hLbOWFuX/nmXXeL52gvDi NCwA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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, 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: 1753446501155116600 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 Reviewed-by: Marc-Andr=C3=A9 Lureau --- 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 0a5a8d5948b2b0a3f85163795e84f71903870d25..4a76d7ed730589bae87115368b0= bf4819f8b161e 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 810bba9799246c8d57514be0927bb474edee8e9b..202bb9f494c9185434a50967c43= 9ce84e0b3acee 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2095,6 +2095,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 @@ -2111,7 +2112,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 @@ -2137,7 +2138,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 07:42:59 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=1753446623; cv=none; d=zohomail.com; s=zohoarc; b=Wpf7AStjhYhbOFUa/YX4ryy4OC4Susjr4K4L8b0YdRTCvNcZGvoicV+hq0LWvFIfN/1vSpM2ob7WoJm94zTniYBio/PYeT2mFETvn3ckGDR+umqghct/mKhTU+R/QaCM+ompm+MoMt1ZNJ2ELl2JrDNc69/XbSK5PNxed3rp6j4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446623; 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=7J0TJo5TqElFUpVXoKroLa2yyNDufm2dJkisge/7g5A=; b=lTS5EJuLavt0R9wGsnb384XdDLsCC2qyS5k7O2Vgcq7OdLXtV1LmX382VFp5pFV05nzpT4bmvsxrdBYZ4b27UY3+a3ULsMNJl288DV7RHoypeOZIatdf+3je1ABIhY34wNuSPg2C+nCewyBzHofqGve7gxxfdeXukM1ogDV3O9o= 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 1753446623570351.7454937394225; Fri, 25 Jul 2025 05:30:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHVK-000791-Cr; Fri, 25 Jul 2025 08:26:26 -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 1ufHRX-0002uo-Ds for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:22: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 1ufHRU-0000iO-Uu for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:22:31 -0400 Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-79-GoOwQ0hcMG2ZK4YArjxZxA-1; Fri, 25 Jul 2025 08:22:26 -0400 Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-3121cffd7e8so1877022a91.0 for ; Fri, 25 Jul 2025 05:22:26 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.22.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:22:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446147; 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=7J0TJo5TqElFUpVXoKroLa2yyNDufm2dJkisge/7g5A=; b=BrrVB8goChrsZywJzlW0NCWlrdFqCbjUX02dXbCWQjav0f0lWeSiVRpcaLymgwIlkJ7XnA 4ZcBfkzCiI+8ZWlhra2B3TjZNm57be0FqI18WGNXHiTyj16IbSSTPQFOV9vEHcCrjhzBP/ zoiiMDIpLVS+9+FPoh3QUDxvbl9LK7Y= X-MC-Unique: GoOwQ0hcMG2ZK4YArjxZxA-1 X-Mimecast-MFC-AGG-ID: GoOwQ0hcMG2ZK4YArjxZxA_1753446146 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446145; x=1754050945; 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=7J0TJo5TqElFUpVXoKroLa2yyNDufm2dJkisge/7g5A=; b=WXU9cHGsdtiShzPW0tZcvM8vzwcHhWCnjGbGDt5fFV2ZSuS4BvJ2iMz6M7xowA6z68 heRXlnoH54ROqnvUlJl7dRuopWUFuL5x8ATwJKWrd8oXcSwuNnPZKRetzdnjsWsDA3RG u60WzLjYy/S3qFq64MsK3zaEIvUu8tsEnWnEBu9Lg8sPtrB0ILPdBwnLETUXTX4IRV+d ew7c9WoWrk+DXUhW1OGvEF8Hxf5H/JZmaId1n5ZcrH3BVPwfx5p0w+YzMQfnbbIYMvcH NPyynDyNgejJnwr0elBh3Xiy0MJp4x9/QWcShwYVsLAmNLAECjNrl7RmZbYYZ+ZpZ5ys Kizw== X-Gm-Message-State: AOJu0Yw2gNcmNtwK8nsi92SeaIMuf2jERWBXeD04UClsTW1OdTvK9c7a XexBzUUFt+1pKNn7gdTI8HXnSHKugMluqdlZuJk/G4kfju8vrvcGy1/5IhwGoUuDBfpNxqAAQyl ZM2wb4j+fYU1S/pY0IIawf8thBe4+fj00djBca+UhK9QOqY0WMzoT5QOy X-Gm-Gg: ASbGncvdgi4/GqQWjYbOFfOnVLTTq+d4OrIePkzObAdY4S9quCYlFM18Izym/+yFeIb m1uSr0EzZrxOFKmfvJkKSuv/yIQKIgKBDudxvd5nWbzBhQRjugMAkUo+dmZ9d4tckX8o81i45kd vaiM+l7YCu/inr216VGgdEDcj96O3aq3sAWkBnKY2kdtr2V/dPnefikx4TnrL6gxsVR7IhKNybK fkqmbGsi/Ovyr8FWgpDe219nAz7zWIxmMr3sqUlqcaezJP5KV/TaG1YBTgf/blSBqK6fytJcHzG lLRvfc4CuVeHmiTRvhpsLKKTBqv6Xx/0zaHfnyekOVtIsBxfqAtULA== X-Received: by 2002:a17:90b:4f49:b0:31c:15b4:8e22 with SMTP id 98e67ed59e1d1-31e7786e68emr2184928a91.7.1753446145398; Fri, 25 Jul 2025 05:22:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG1w8pnsiZhxT1T/M4W1TfUQk5n1dKG1IlXCcoNEXr5ZRiL+KxCfPo9Nu6NuDM20+OY5OaW1w== X-Received: by 2002:a17:90b:4f49:b0:31c:15b4:8e22 with SMTP id 98e67ed59e1d1-31e7786e68emr2184897a91.7.1753446144937; Fri, 25 Jul 2025 05:22:24 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:49:02 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-23-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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=7038; i=armenon@redhat.com; h=from:subject:message-id; bh=ism3yTV1svQzQq/1PEanhpRwocCsWlODf7ag0T6GxfA=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Zzma52e6TPzTYLPfdLa+bz39sgYOa57Yjsbb0jKn27m 67MyBPqKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMJHSR4wM/zlVtl1eMfuvjfSl uvJ1XAEvrxr0/WHf//pX3af/qfq3chkZvjwNDbxzv+XXk2mxq+f1hTy7ES6md+ra1K5W8azCT1x XWQA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446625086116600 - 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 | 62 +++++++++++++++++++++++++++++++++++++++--= ---- 2 files changed, 65 insertions(+), 8 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 bb5e9bf38d6ee7619ceb3e9da29209581c3c12eb..e427ef49b2b1991b0a3cdb14d64= 1c197e00014b0 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,7 +245,14 @@ int vmstate_load_state(QEMUFile *f, const VMStateDescr= iption *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, @@ -412,11 +428,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,10 +548,22 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDe= scription *vmsd, } =20 if (ret) { - error_setg(errp, "Save of field %s/%s failed", - vmsd->name, field->name); - if (vmsd->post_save) { - vmsd->post_save(opaque); + if (*errp =3D=3D NULL) { + error_setg(errp, "Save of field %s/%s failed", + vmsd->name, field->name); + } + if (vmsd->post_save_errp) { + int ps_ret =3D vmsd->post_save_errp(opaque, &local= _err); + if (ps_ret < 0) { + error_free_or_abort(errp); + error_propagate(errp, local_err); + ret =3D ps_ret; + } + } else if (vmsd->post_save) { + int ps_ret =3D vmsd->post_save(opaque); + if (ps_ret < 0) { + ret =3D ps_ret; + } } return ret; } @@ -554,7 +590,17 @@ 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 (ret && ps_ret) { + error_free_or_abort(errp); + error_propagate(errp, local_err); + ret =3D ps_ret; + } + } 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 07:42:59 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=1753446601; cv=none; d=zohomail.com; s=zohoarc; b=lBCL87SpSvnQCUJHAvKFhKy+kNsHacxa6BLVREAbpopPHMzCiGkMXOOyy/RwQXiRglz4jW8XeFVeSt8eobrgkJdVRWyJ4kZ0JPzwHYMJrRc3OijIZcfk5rReW7hITjwRBMRSi2mHixEaYBWjxRyFZLqvM4CGc7wU9eO0CUzXELs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753446601; 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=n/vtqPEn0lw1PkHB8F8riqwLwX5dtDeUQ2Z+K8UNwjkoSnLb0YYq3nwcqC/S/qpTlrjE3Aycnh6NSFjtvDPwNAjg6JWDowE+6YgRb5R9t7f9OPRMHmUe9SBPGNfTmQfA5KSEG3+K5GQteDXZLL0itEY/BT7muVMc9cjtU9QQ1yQ= 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 1753446601495728.8354982510258; Fri, 25 Jul 2025 05:30:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ufHUu-0006nB-9v; Fri, 25 Jul 2025 08:26:10 -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 1ufHRi-00037Q-9h for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:22:54 -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 1ufHRe-0000kA-FQ for qemu-devel@nongnu.org; Fri, 25 Jul 2025 08:22: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-86-yGxnQMRhOaiZYi_dlWSIFg-1; Fri, 25 Jul 2025 08:22:35 -0400 Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b00e4358a34so1489315a12.0 for ; Fri, 25 Jul 2025 05:22:35 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.103.239]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31e662df8dcsm3419352a91.25.2025.07.25.05.22.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jul 2025 05:22:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753446156; 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=fmYNMvJJudbbsaiWOtqdyru0qOGW5fEKFrwLItEzMpk+IsfgA0ozIa5Qkc/zfQqb46pmin EB4BrQJc2Axt/ecy+rdFbUJEK1fCeYMyQyx7GFF9OOof7m0aL9M4HiM8CUx0BcZMRxoWyW 2WVTLvblUV7LR/BDMofe2u81QbvRhZQ= X-MC-Unique: yGxnQMRhOaiZYi_dlWSIFg-1 X-Mimecast-MFC-AGG-ID: yGxnQMRhOaiZYi_dlWSIFg_1753446155 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753446154; x=1754050954; 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=SOLq9ejoYU4VVxTp3w+Avvh+3sXv9Xe5x3E47Geb/H98k0+pZO0odWL9f47sAXs9Qd BWs07tjNeHXBoHtUXoyuiUgTspsQYzbNn7XCuOaZZWRwqxsvyAxl/6gKsNR9ahDMdcJa BtEe4wATKjJNPmrLVh67ZJTdgSD7ZeN+uPcHTRBd62eN7iAtAKWjzUG2iSKOHG8kovh4 CTljKLkyyW6T24VUIrHkONZt8WszrlrNnvalZTS3nVWsbCJgrcxCEhOpZ0MmurBqmVB9 YIsZ54AE5rzCqFs1R7yD2BUEcJamNu7ePUHo/tW+oyQMQid/JbFmh8xM4EGdhCfRSbNc PtTg== X-Gm-Message-State: AOJu0YxmtZEogPf+KI5/goTUSmgpqiw931rIeLmw7pfEgoQVv45yoRxf FI2aQaraQqLil6M8wr9dn81uQeT3U1p7l389b54fsq15ZIYHGU602qw3Dime54iY6J6T+Qylb7V B3jFGgqA5dXkJqUYUn98aZnWyUAufzPlNxpDR+175HkZRMAqYtivDXEGE X-Gm-Gg: ASbGncvtlSqo7l55V/qIuKIGGEzQQxrZgY05IWTnBz1L7Tfob+uLODS/4/QhbYv6/hc RSpZrSX5P8/iHE1Pfr1Aw3uJB4HlO4vYMVjMJ16i6E+7/u9daL3H/VAywvQXHFCVPZ0Jt3CCwaf unv8mzY25SsbBcGbRkP28fO2cDA2nnh0DfpNWCA5Km0HxEEZLjuqY1uvkl01IvcYFQlK5fLV12C jYdXK2g/UIpLU88OnPlwjAJ4+duxDKvUdZTDd1m1O2vay+YFFewo1aab1zbmWtTsPzAAJ58pSLA +duKDUy5IXBbFExGEFBtKsr6Ak6itDyLC4/V/gFxtAxi8YB5kk2yog== X-Received: by 2002:a17:90b:4d8f:b0:312:959:dc42 with SMTP id 98e67ed59e1d1-31e77866ee1mr2795058a91.11.1753446154399; Fri, 25 Jul 2025 05:22:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFS4XvrmNgrDqE6BnL7tzdHzkURsNvEY4Tk5WL2F8O6RyI0fUpGg+H4A4bV7J/tYKYUgaB8Kw== X-Received: by 2002:a17:90b:4d8f:b0:312:959:dc42 with SMTP id 98e67ed59e1d1-31e77866ee1mr2794974a91.11.1753446153732; Fri, 25 Jul 2025 05:22:33 -0700 (PDT) From: Arun Menon Date: Fri, 25 Jul 2025 17:49:03 +0530 Subject: [PATCH v7 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: <20250725-propagate_tpm_error-v7-24-d52704443975@redhat.com> References: <20250725-propagate_tpm_error-v7-0-d52704443975@redhat.com> In-Reply-To: <20250725-propagate_tpm_error-v7-0-d52704443975@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/xtFoSQ0Zzme6ELU4Xr58/+Nv10OmS2r9112+FethlPFsv/e2rs vfsDEa1jlIWBjEuBlkxRZaGrwGyTQGFEZG2L6/DzGFlAhnCwMUpABNZ1srw37PGdK/kjhNHa+a6 LT1Zc4nv+Ic9mrWJhmLba5vEuDd7LWD4p532/KdAfl/XaY0tFs7G5lummy55nrm1TVR9yTY2noP F7AA= 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: -22 X-Spam_score: -2.3 X-Spam_bar: -- X-Spam_report: (-2.3 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.175, 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: 1753446602566116600 - 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