From nobody Sat Nov 15 09:23: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=1752712814; cv=none; d=zohomail.com; s=zohoarc; b=NmkE61/Fg4TP+GzIV57mbWRtVL9OkI1zpvpa0AY0RvQQm4uI0/0jZZ3mgiuTU2dgQM/Ak/pbQ04iJH2s68FaQx6VAipG2/1A4CUbrvQru0+56z+iO39LO4GSU8iFdvucTvG/Y/uLV1cT2PkdnShuS6WrkDiqAmoAg2uqgmu0drE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752712814; 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=EXyUbQoBNcXsENFuDMuS7Qrxn0mugpdK4PrcpSGb/kQ=; b=SkjPJfEDavwX2pLbcYZ/Hmjstpue4WnFWsviBj2/Lk2+U7pifYDltrJLHIeEeQTzlivT9yQE3+14ObDL/6823vKQToWkecYP0L2L07Afo0BuUFXNc5y3EdW2+/RuWlkTAXAFTAK/5g0ePVPf8nVzHpeBHWbics25Pc3BpFzI9is= 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 1752712814774559.7510045387677; Wed, 16 Jul 2025 17:40:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCeh-0002fZ-6f; Wed, 16 Jul 2025 20:39: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 1ucCeg-0002ea-6x for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:39:22 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucCee-0004Y6-K1 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:39:21 -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-142-6NiZWt9QPqax3FGo2x_tGg-1; Wed, 16 Jul 2025 20:39:17 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-31218e2d5b0so532903a91.2 for ; Wed, 16 Jul 2025 17:39:17 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.39.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:39:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712759; 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=EXyUbQoBNcXsENFuDMuS7Qrxn0mugpdK4PrcpSGb/kQ=; b=b7bYDcO61dpAVD0WKPlyjIPrHBJvH5AmZ3tQGG6COHxEts/i8snoPYhoxTxxVl+sjniR08 ZAYDRZLZgiaKLTXZtrO9ZfQlUealTYwUSjBgITuQjaFMsnA8xPp3jCeHzCOkIiCFKvaYo8 o4Zaa74iDyqDdy0j6eeKrG8xuuQNZZ4= X-MC-Unique: 6NiZWt9QPqax3FGo2x_tGg-1 X-Mimecast-MFC-AGG-ID: 6NiZWt9QPqax3FGo2x_tGg_1752712757 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712757; x=1753317557; 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=EXyUbQoBNcXsENFuDMuS7Qrxn0mugpdK4PrcpSGb/kQ=; b=jPDFf6Gws4yKQNHBLZrqGNheCDeQEczfC5x5D2Fsjmf43XgWQI/2yiM/3i7b4IK4h+ 3CmzUeFTt5yijU3ix0WGR6tyZKtJac9LD5exnkGmnj6uO5kyA/GBJFAtvKesrpKKJ6Bu 3q+7YOOMQDb9nQV4YwXJrYSLdjCdfMciX+6Ea3z6O9Y3TVyU5o2DcUl7UwywpntEN4Dr LLHsbjmTDHGgc9FLymWVcQEqYrdUI73ursdp0PVNjv65AHUWSjD1ELF6RFzVnQc/E/RW ClnN9xXfAVliDVxF5TuCQCoc6Q6gzXMsxEArqZQ/3+Ar/kSy+sC+etdfEHgG1ieOzFVp kc7Q== X-Gm-Message-State: AOJu0YzbsxCHtKW0mLOLPLTGQ/SXtSgrFM0S5dZvjZH0azKJhivp/sBN GPX3fSsfG1fZSQeluV131YCspyIW0ffcUsG2oZ59sSUCiLS9VMzPAOiDVcLZfEoy8EnUvGYbHEH mvtDxU6Zu4oJSKNwRWaQX+5xCkqjHfHp7W0Zy+rWwJv68MNhNQQsHJw75 X-Gm-Gg: ASbGnctKSbiA8i92B2pKRB4p32oNf6g2EPkGzZs4Pg7mgxVupCUiGQnM/2UCbX9HF2m qQ61RUndKWi+5zRhFWCzffa6W756svBV4XIJwniGGoEyUXudrxjI9awsNonwaJWm5P0s5znajkU 9C1EjpMCH3FztJtXMrbMUQgi00Ni+acNlPqy0gcT96hkY/qYzDABjBfmiXmOmO6vg8NFVN4J+uF Rxo1waNl9JrzVnxxy/x7eWKErzxDx83hSvtEf0RIPye73pTdNxMUbwYAMuCBnJNCuqDhaRXq9VL wUwRI8R9Dtg/P8wmxhs6u/8Ac1v4cxHA8y1/yTTEvr/pHpk6IJn+ X-Received: by 2002:a17:90b:270b:b0:311:ab20:159a with SMTP id 98e67ed59e1d1-31c9f47ce74mr6134344a91.29.1752712756791; Wed, 16 Jul 2025 17:39:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEs1+QxcPm9FrDoViLUUkeVA2kr0YIY05BgzumFtAUTs0fvqi76SJfqXkfgYQ9q9Rr+/iUVEQ== X-Received: by 2002:a17:90b:270b:b0:311:ab20:159a with SMTP id 98e67ed59e1d1-31c9f47ce74mr6134295a91.29.1752712756296; Wed, 16 Jul 2025 17:39:16 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:24 +0530 Subject: [PATCH v5 01/23] 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: <20250717-propagate_tpm_error-v5-1-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=2651; i=armenon@redhat.com; h=from:subject:message-id; bh=PPQSg2D/z7rxR30HP+zMBBa7rifIbjqJASAnbuzYPXw=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm9z3qPS7F348EplyST0mxveOvv28JH0jK/UXqdv+X LotfvBURykLgxgXg6yYIkvD1wDZpoDCiEjbl9dh5rAygQxh4OIUgImcKWBk+Phy0vOm7drf+0ot NoiEbZ2yovi0xoXAW3nPOP7uSIo8t5Lhr5T9606xTbcb25+a8EeenGGSImN2d/stJ7N3jdZFIXs XcgEA 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752712818146116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. It is ensured that vmstate_subsection_load() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/vmstate.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/migration/vmstate.c b/migration/vmstate.c index 5feaa3244d259874f03048326b2497e7db32e47c..526668a020562f303d2ddf030b1= c8466659b67be 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,7 @@ 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 does not exist"); return -ENOENT; } qemu_file_skip(f, 1); /* subsection */ @@ -608,6 +609,7 @@ 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 failed : %d", ret); return ret; } } --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752712916; cv=none; d=zohomail.com; s=zohoarc; b=Od3P6fwnIpQIdsNeW4O5n94bve6nDXIs1QSGtsnWNWk/rT20YOLtZEkFRZNc7Qw1PV4eXd3PQf5e8YTze5CukzZtim6yHaJbzdhnEEWTZtSyS/Oam8D8L6oK3xM/Y8UGBey1JLzsmXuCRHy+f+uFLIctaGmvMveLQ9lWJGLzzwg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752712916; 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=pHTsEjKEY6SswmaNC/Dk1BWtuyS7JrJhr2/uGOVUr4A=; b=HFj5gmjFpj/fTLWyJLMnElQWXD1dLkBTmtaO0MnHJmIMGYuWewqSH/0vuyAX9pVfhdlEdc4mLk5+9j2WxaauqbM0fS8nt9Ett5TpdG7/db+nYqUeTIr8rbjfQEYv4NEJ1bfEGZ4mn0QDdZW+ZTpHJ5qDouS9kxEq2OsxAWh52GA= 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 1752712916722970.5369197567422; Wed, 16 Jul 2025 17:41:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCes-00035D-BR; Wed, 16 Jul 2025 20:39:34 -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 1ucCeq-0002yU-Nk for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:39:32 -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 1ucCeo-0004Zf-46 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:39:32 -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-361-1I01u0XOO16TE3sfUhtsRg-1; Wed, 16 Jul 2025 20:39:27 -0400 Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-311e98ee3fcso1564435a91.0 for ; Wed, 16 Jul 2025 17:39:27 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.39.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:39:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712769; 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=pHTsEjKEY6SswmaNC/Dk1BWtuyS7JrJhr2/uGOVUr4A=; b=jViHbDDE45NT7bFXJMKJD8PL3oO9sxBbYJ7wIZohMJz6U6ffeIGOaT3TQK/nZLiyxDssiY b46rZU6Q68nMTZ3ezMHfjVYP+OsjqodU6JHoLigm7ok2Y2gzwEKSE1lF6AEVaZH1pD4w8H /iUBf5G+jtPoTGwraTZDklBnPlZGFnE= X-MC-Unique: 1I01u0XOO16TE3sfUhtsRg-1 X-Mimecast-MFC-AGG-ID: 1I01u0XOO16TE3sfUhtsRg_1752712767 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712767; x=1753317567; 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=pHTsEjKEY6SswmaNC/Dk1BWtuyS7JrJhr2/uGOVUr4A=; b=UCjlmkGm1JvbiluJmOJDpUugLwMW44MrtiG28nOX6d9NwDQkO9Ofa3zN/gB2qv/alq G8q1BA2AvEI2tBvens4C8QqIuI1nxgBuw5qPTDDd7q4vGbdD8ITW2AOkQGGwdDFQqAdA aW5j+aexEZEQ/EUcZsGTLLE+haalI+8De3DK5S66/J1kvB8sbcE48hcxx3dTzL6akLT5 phQofMa6tPKNNKmUvGhrEHMm3pJI/41i7Ofnd4+Iz8/wuhGQUgmrjdZI8No3V5Puw35N E6GAQKXG/mZ78ojcQLCWyBJ3pqEJeO3MObmcx3aj5XLQxOhkC8GD+VXVwUrio1/5hEJI 6GrQ== X-Gm-Message-State: AOJu0YzB8OEgy5/nbpa94AO2dlKv89MzpGc3nGkBSdXXxPeHZV4Kkkh3 czsh/NTuHUI4EHqH7te8KuUVsSDhmV4Ah5YdL3ijGl6MrVP6ypbx5RMkSkmoBLc0/CxSXlmaViw VuHZOajwS0gXAo4TWXVtWRyUG+hCwZpi+vyNLUE3C+PEXZVQOUnkVk5Xl X-Gm-Gg: ASbGnctspYiL7h++QiyvPFicBsJIXoypCkL7EAZ5X8U10ZQJqyYJnyjj2Q3O3mcbCm5 6pA0khYOH8hczoA3GUA4zuPi8YCbAw3S6DlHttHUCSOwDLtAUcQd/v+6L72kezNYKsmc8/SY0zl BZtxjVgmIUqtTngLI/upoKCIhvkLm7FcPAKckpNktf3aqOjR5giGsJlpJhCvlTh0m2KN/z1PfaF cYDm+jPe4B6IX5oDbC2psp5Zzv6TbDRm6kI8v96tIZyHD2Onxsjngop0fm0xuJBHniLEW3ybtqU NoL+WpGst5EXmSkcB8RH3NZxmpEeXJp/Dln4y97HWvKxRqFQsSoo X-Received: by 2002:a17:90b:1fc3:b0:30a:3e8e:ea30 with SMTP id 98e67ed59e1d1-31cae9fff9fmr1840288a91.11.1752712766269; Wed, 16 Jul 2025 17:39:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFBnHoq680Bc5gHds3fwQxiV9ayFaVkCf8t1afsqXNIqd6JYQ/JU/EURxqLdiyZ21GEFc9BUw== X-Received: by 2002:a17:90b:1fc3:b0:30a:3e8e:ea30 with SMTP id 98e67ed59e1d1-31cae9fff9fmr1840215a91.11.1752712764828; Wed, 16 Jul 2025 17:39:24 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:25 +0530 Subject: [PATCH v5 02/23] 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: <20250717-propagate_tpm_error-v5-2-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=19978; i=armenon@redhat.com; h=from:subject:message-id; bh=q2EchS+5GlmJTUCCLfhOR7ilAVZANmRp1cM7blDUKPQ=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm9yGg62qH6/o7RUvmSYWlRRsXmtbtn7+9z1OAWu9H c0vnlTqKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMBGrIob/sXHnPrlf5zVxfvff 2O60qLP4yvdPjIOivzdwXr3/+Pv5o4wM19cU2li+5f7MHRg4UzLzwc7Np3bZXllg2NjqcfNtd0E DDwA= 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, DKIMWL_WL_HIGH=-0.001, 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: 1752712918696116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. It is ensured that vmstate_load_state() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- hw/display/virtio-gpu.c | 2 +- hw/pci/pci.c | 2 +- hw/s390x/virtio-ccw.c | 2 +- hw/scsi/spapr_vscsi.c | 2 +- hw/vfio/pci.c | 2 +- hw/virtio/virtio-mmio.c | 2 +- hw/virtio/virtio-pci.c | 2 +- hw/virtio/virtio.c | 4 ++-- include/migration/vmstate.h | 2 +- migration/cpr.c | 4 ++-- migration/savevm.c | 6 ++++-- migration/vmstate-types.c | 10 +++++----- migration/vmstate.c | 43 +++++++++++++++++++++++++++--------------= -- tests/unit/test-vmstate.c | 18 +++++++++--------- ui/vdagent.c | 2 +- 15 files changed, 58 insertions(+), 45 deletions(-) diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index 0a1a625b0ea6cf26cb0d799171a57ed3d3ab2442..5d2ca8d8b864350133a674802d7= 316abd379591c 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -1343,7 +1343,7 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque,= size_t size, } =20 /* load & apply scanout state */ - vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, 1); + vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, 1, NULL); =20 return 0; } diff --git a/hw/pci/pci.c b/hw/pci/pci.c index c70b5ceebaf1f2b10768bd030526cbb518da2b8d..2ab5d30bb3c319ac1c7bfc9a2ac= f6a2b38082066 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -934,7 +934,7 @@ void pci_device_save(PCIDevice *s, QEMUFile *f) int pci_device_load(PCIDevice *s, QEMUFile *f) { int ret; - ret =3D vmstate_load_state(f, &vmstate_pci_device, s, s->version_id); + ret =3D vmstate_load_state(f, &vmstate_pci_device, s, s->version_id, N= ULL); /* Restore the interrupt status bit. */ pci_update_irq_status(s); return ret; diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index d2f85b39f30f7fc82e0c600144c0a958e1269b2c..2f6feff2b0a22d7d7f6aecfd7e7= 870d8362f1a73 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -1136,7 +1136,7 @@ static void virtio_ccw_save_config(DeviceState *d, QE= MUFile *f) static int virtio_ccw_load_config(DeviceState *d, QEMUFile *f) { VirtioCcwDevice *dev =3D VIRTIO_CCW_DEVICE(d); - return vmstate_load_state(f, &vmstate_virtio_ccw_dev, dev, 1); + return vmstate_load_state(f, &vmstate_virtio_ccw_dev, dev, 1, NULL); } =20 static void virtio_ccw_pre_plugged(DeviceState *d, Error **errp) diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index 20f70fb2729de78b9636a6b8c869695dab4f8902..573fdea668536b464bca11f001e= 9e0288e781493 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -648,7 +648,7 @@ static void *vscsi_load_request(QEMUFile *f, SCSIReques= t *sreq) assert(!req->active); =20 memset(req, 0, sizeof(*req)); - rc =3D vmstate_load_state(f, &vmstate_spapr_vscsi_req, req, 1); + rc =3D vmstate_load_state(f, &vmstate_spapr_vscsi_req, req, 1, NULL); if (rc) { fprintf(stderr, "VSCSI: failed loading request tag#%u\n", sreq->ta= g); return NULL; diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index be05002b9819fafa45cf2fb4d2a0acdc475c558c..f8ce4a40dbe4c070a0d6c111051= 051ee97542719 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -2797,7 +2797,7 @@ static int vfio_pci_load_config(VFIODevice *vbasedev,= QEMUFile *f) old_addr[bar] =3D pdev->io_regions[bar].addr; } =20 - ret =3D vmstate_load_state(f, &vmstate_vfio_pci_config, vdev, 1); + ret =3D vmstate_load_state(f, &vmstate_vfio_pci_config, vdev, 1, NULL); if (ret) { return ret; } diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c index 532c67107ba1d2978a76cf49f9cdc1de1dea3e11..9058b1563462d4464dcba799643= a583c93fb5683 100644 --- a/hw/virtio/virtio-mmio.c +++ b/hw/virtio/virtio-mmio.c @@ -619,7 +619,7 @@ static int virtio_mmio_load_extra_state(DeviceState *op= aque, QEMUFile *f) { VirtIOMMIOProxy *proxy =3D VIRTIO_MMIO(opaque); =20 - return vmstate_load_state(f, &vmstate_virtio_mmio, proxy, 1); + return vmstate_load_state(f, &vmstate_virtio_mmio, proxy, 1, NULL); } =20 static bool virtio_mmio_has_extra_state(DeviceState *opaque) diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index 767216d795998708f5716a23ae16c79cd90ff489..f8b52a611e56c22d844fd4cae36= 19da4f2686d03 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -161,7 +161,7 @@ static int virtio_pci_load_extra_state(DeviceState *d, = QEMUFile *f) { VirtIOPCIProxy *proxy =3D to_virtio_pci_proxy(d); =20 - return vmstate_load_state(f, &vmstate_virtio_pci, proxy, 1); + return vmstate_load_state(f, &vmstate_virtio_pci, proxy, 1, NULL); } =20 static void virtio_pci_save_queue(DeviceState *d, int n, QEMUFile *f) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 2ab1d20769495ea39445b87e3673b076ad172510..d5698b062a1e95437f6113f4113= 6e90ae06f1974 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -3317,14 +3317,14 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int ve= rsion_id) } =20 if (vdc->vmsd) { - ret =3D vmstate_load_state(f, vdc->vmsd, vdev, version_id); + ret =3D vmstate_load_state(f, vdc->vmsd, vdev, version_id, NULL); if (ret) { return ret; } } =20 /* Subsections */ - ret =3D vmstate_load_state(f, &vmstate_virtio, vdev, 1); + ret =3D vmstate_load_state(f, &vmstate_virtio, vdev, 1, NULL); if (ret) { return ret; } diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 1ff7bd9ac425ba67cd5ca7ad97bcf570f9e19abe..056781b1c21e737583f081594d9= f88b32adfd674 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -1196,7 +1196,7 @@ extern const VMStateInfo vmstate_info_qlist; } =20 int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, - void *opaque, int version_id); + void *opaque, int version_id, Error **errp); int vmstate_save_state(QEMUFile *f, const VMStateDescription *vmsd, void *opaque, JSONWriter *vmdesc); int vmstate_save_state_with_err(QEMUFile *f, const VMStateDescription *vms= d, diff --git a/migration/cpr.c b/migration/cpr.c index 42ad0b0d500e5de57faf0c6517e216b2d1c0cacf..74fac9521717ec568d14dabcbcb= 574b19fc1da67 100644 --- a/migration/cpr.c +++ b/migration/cpr.c @@ -233,9 +233,9 @@ int cpr_state_load(MigrationChannel *channel, Error **e= rrp) return -ENOTSUP; } =20 - ret =3D vmstate_load_state(f, &vmstate_cpr_state, &cpr_state, 1); + ret =3D vmstate_load_state(f, &vmstate_cpr_state, &cpr_state, 1, errp); if (ret) { - error_setg(errp, "vmstate_load_state error %d", ret); + error_prepend(errp, "vmstate_load_state error %d ", ret); qemu_fclose(f); return ret; } diff --git a/migration/savevm.c b/migration/savevm.c index fabbeb296ae987d0c06ba6dafda63720205fecfd..ab947620f724874f325fb9fb59b= ef50b7c16fb51 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -969,7 +969,8 @@ static int vmstate_load(QEMUFile *f, SaveStateEntry *se) if (!se->vmsd) { /* Old style */ return se->ops->load_state(f, se->opaque, se->load_version_id); } - return vmstate_load_state(f, se->vmsd, se->opaque, se->load_version_id= ); + return vmstate_load_state(f, se->vmsd, se->opaque, se->load_version_id, + NULL); } =20 static void vmstate_save_old_style(QEMUFile *f, SaveStateEntry *se, @@ -2839,7 +2840,8 @@ static int qemu_loadvm_state_header(QEMUFile *f) error_report("Configuration section missing"); return -EINVAL; } - ret =3D vmstate_load_state(f, &vmstate_configuration, &savevm_stat= e, 0); + ret =3D vmstate_load_state(f, &vmstate_configuration, &savevm_stat= e, 0, + NULL); =20 if (ret) { return ret; diff --git a/migration/vmstate-types.c b/migration/vmstate-types.c index 741a588b7e18c6d37724b08a0101edc8bc74a0a5..1c5b76e1dd198030847971bc356= 37867c9d54fc0 100644 --- a/migration/vmstate-types.c +++ b/migration/vmstate-types.c @@ -549,7 +549,7 @@ static int get_tmp(QEMUFile *f, void *pv, size_t size, =20 /* Writes the parent field which is at the start of the tmp */ *(void **)tmp =3D pv; - ret =3D vmstate_load_state(f, vmsd, tmp, version_id); + ret =3D vmstate_load_state(f, vmsd, tmp, version_id, NULL); g_free(tmp); return ret; } @@ -649,7 +649,7 @@ static int get_qtailq(QEMUFile *f, void *pv, size_t unu= sed_size, =20 while (qemu_get_byte(f)) { elm =3D g_malloc(size); - ret =3D vmstate_load_state(f, vmsd, elm, version_id); + ret =3D vmstate_load_state(f, vmsd, elm, version_id, NULL); if (ret) { return ret; } @@ -803,7 +803,7 @@ static int get_gtree(QEMUFile *f, void *pv, size_t unus= ed_size, key =3D (void *)(uintptr_t)qemu_get_be64(f); } else { key =3D g_malloc0(key_size); - ret =3D vmstate_load_state(f, key_vmsd, key, version_id); + ret =3D vmstate_load_state(f, key_vmsd, key, version_id, NULL); if (ret) { error_report("%s : failed to load %s (%d)", field->name, key_vmsd->name, ret); @@ -811,7 +811,7 @@ static int get_gtree(QEMUFile *f, void *pv, size_t unus= ed_size, } } val =3D g_malloc0(val_size); - ret =3D vmstate_load_state(f, val_vmsd, val, version_id); + ret =3D vmstate_load_state(f, val_vmsd, val, version_id, NULL); if (ret) { error_report("%s : failed to load %s (%d)", field->name, val_vmsd->name, ret); @@ -892,7 +892,7 @@ static int get_qlist(QEMUFile *f, void *pv, size_t unus= ed_size, =20 while (qemu_get_byte(f)) { elm =3D g_malloc(size); - ret =3D vmstate_load_state(f, vmsd, elm, version_id); + ret =3D vmstate_load_state(f, vmsd, elm, version_id, NULL); if (ret) { error_report("%s: failed to load %s (%d)", field->name, vmsd->name, ret); diff --git a/migration/vmstate.c b/migration/vmstate.c index 526668a020562f303d2ddf030b1c8466659b67be..078a00003023cc248fb16f05017= d4c4251fd86df 100644 --- a/migration/vmstate.c +++ b/migration/vmstate.c @@ -132,29 +132,30 @@ 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 : %d", ret); return ret; } } @@ -192,10 +193,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 +214,35 @@ 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); + if (errp !=3D NULL) { + error_prepend(errp, "Failed to load %s:%s ", vmsd-= >name, + field->name); + } else { + error_setg(errp, "Failed to load %s:%s", vmsd->nam= e, + field->name); + } 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", + vmsd->name, field->name); 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 : %d", ret); + } } trace_vmstate_load_state_end(vmsd->name, "end", ret); return ret; @@ -606,10 +617,10 @@ 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 failed : %d", ret); + error_prepend(errp, "Loading VM subsection failed : %d ", ret); return ret; } } diff --git a/tests/unit/test-vmstate.c b/tests/unit/test-vmstate.c index 63f28f26f45691a70936d33e7341d16477a3471f..ca5e0ba1e3e5e2bb0a1ce39143a= 292f2c6f9420a 100644 --- a/tests/unit/test-vmstate.c +++ b/tests/unit/test-vmstate.c @@ -114,7 +114,7 @@ static int load_vmstate_one(const VMStateDescription *d= esc, void *obj, qemu_fclose(f); =20 f =3D open_test_file(false); - ret =3D vmstate_load_state(f, desc, obj, version); + ret =3D vmstate_load_state(f, desc, obj, version, NULL); if (ret) { g_assert(qemu_file_get_error(f)); } else{ @@ -365,7 +365,7 @@ static void test_load_v1(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj =3D { .b =3D 200, .e =3D 500, .f =3D 600 }; - vmstate_load_state(loading, &vmstate_versioned, &obj, 1); + vmstate_load_state(loading, &vmstate_versioned, &obj, 1, NULL); g_assert(!qemu_file_get_error(loading)); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 200); @@ -391,7 +391,7 @@ static void test_load_v2(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj; - vmstate_load_state(loading, &vmstate_versioned, &obj, 2); + vmstate_load_state(loading, &vmstate_versioned, &obj, 2, NULL); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 20); g_assert_cmpint(obj.c, =3D=3D, 30); @@ -480,7 +480,7 @@ static void test_load_noskip(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj =3D { .skip_c_e =3D false }; - vmstate_load_state(loading, &vmstate_skipping, &obj, 2); + vmstate_load_state(loading, &vmstate_skipping, &obj, 2, NULL); g_assert(!qemu_file_get_error(loading)); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 20); @@ -504,7 +504,7 @@ static void test_load_skip(void) =20 QEMUFile *loading =3D open_test_file(false); TestStruct obj =3D { .skip_c_e =3D true, .c =3D 300, .e =3D 500 }; - vmstate_load_state(loading, &vmstate_skipping, &obj, 2); + vmstate_load_state(loading, &vmstate_skipping, &obj, 2, NULL); g_assert(!qemu_file_get_error(loading)); g_assert_cmpint(obj.a, =3D=3D, 10); g_assert_cmpint(obj.b, =3D=3D, 20); @@ -773,7 +773,7 @@ static void test_load_q(void) TestQtailq tgt; =20 QTAILQ_INIT(&tgt.q); - vmstate_load_state(fload, &vmstate_q, &tgt, 1); + vmstate_load_state(fload, &vmstate_q, &tgt, 1, NULL); char eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(tgt.i16, =3D=3D, obj_q.i16); @@ -1127,7 +1127,7 @@ static void test_gtree_load_domain(void) =20 fload =3D open_test_file(false); =20 - vmstate_load_state(fload, &vmstate_domain, dest_domain, 1); + vmstate_load_state(fload, &vmstate_domain, dest_domain, 1, NULL); eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(orig_domain->id, =3D=3D, dest_domain->id); @@ -1241,7 +1241,7 @@ static void test_gtree_load_iommu(void) qemu_fclose(fsave); =20 fload =3D open_test_file(false); - vmstate_load_state(fload, &vmstate_iommu, dest_iommu, 1); + vmstate_load_state(fload, &vmstate_iommu, dest_iommu, 1, NULL); eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(orig_iommu->id, =3D=3D, dest_iommu->id); @@ -1376,7 +1376,7 @@ static void test_load_qlist(void) qemu_fclose(fsave); =20 fload =3D open_test_file(false); - vmstate_load_state(fload, &vmstate_container, dest_container, 1); + vmstate_load_state(fload, &vmstate_container, dest_container, 1, NULL); eof =3D qemu_get_byte(fload); g_assert(!qemu_file_get_error(fload)); g_assert_cmpint(eof, =3D=3D, QEMU_VM_EOF); diff --git a/ui/vdagent.c b/ui/vdagent.c index c0746fe5b168fdc7aeb4866de2ba0c3387566649..83457dee0767433ad0778b37b41= b9c673a0e1860 100644 --- a/ui/vdagent.c +++ b/ui/vdagent.c @@ -1008,7 +1008,7 @@ static int get_cbinfo(QEMUFile *f, void *pv, size_t s= ize, =20 vdagent_clipboard_peer_register(vd); =20 - ret =3D vmstate_load_state(f, &vmstate_cbinfo_array, &cbinfo, 0); + ret =3D vmstate_load_state(f, &vmstate_cbinfo_array, &cbinfo, 0, NULL); if (ret) { return ret; } --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752712887; cv=none; d=zohomail.com; s=zohoarc; b=PRf56weFb6KDe8vUJ2zPLzXqA41eR1O/0TLXhIaW/cjORkTSf4xYJUO/5VdaxBoiDsl9wwdnJsPZfQ3zVMG/6mLvBGfBTaPvis2vaVYAxwinxmpJnp5p9EOMu2H1bW7b7CfX/GCG6boYOjTHnus7ydA0fxmK6Hk8Afy8W/bIIho= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752712887; 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=EAAn8p8gxY87pkvl7mytiCpjUT1424U2xaE6IZz2+tc=; b=ihnQWAj4L+Rz2bb//R3EEyx1/h7UY9SCFvr5lNqgwuYlLJyhaemx0SPR5KULeuA5vX9lsfTSA09f/MNIFz1mdi2XMq1H8J4Iuc7iW5IOMMAOK8SkAt9btEan20ShI9QJOb7CqQDiX45Rhl7aW/edP97YP27O/iDhfr/oC19QETs= 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 1752712887129424.897650069518; Wed, 16 Jul 2025 17:41:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCf7-0003Mg-13; Wed, 16 Jul 2025 20:39:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucCex-0003EI-D2 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:39:39 -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 1ucCeu-0004az-Rf for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:39:39 -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-111-3Q3nBYo-NXStNA3paPaEMQ-1; Wed, 16 Jul 2025 20:39:34 -0400 Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-b31cc625817so1133187a12.0 for ; Wed, 16 Jul 2025 17:39:34 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.39.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:39:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712776; 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=EAAn8p8gxY87pkvl7mytiCpjUT1424U2xaE6IZz2+tc=; b=NVbX0qtwi1KieuqVFH08JhG71vkk0hdwZsqRZDwP4Gzrrajv6ZEpiwmOiRT1W3qdPmVM4F G0mqBj2+QJbPu0r9bZrcvJRXoqz84b7K0x6yvXHOb2lC7rMjYL8kvZ6vX7kmgvTEp1+Qcz IUbiu8mDyyWXc/s2/ghtWgzLsQPn+wI= X-MC-Unique: 3Q3nBYo-NXStNA3paPaEMQ-1 X-Mimecast-MFC-AGG-ID: 3Q3nBYo-NXStNA3paPaEMQ_1752712773 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712773; x=1753317573; 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=EAAn8p8gxY87pkvl7mytiCpjUT1424U2xaE6IZz2+tc=; b=qtffIwRUiU9UFqw2tChCrm1tS8XgNpiTH2o5C8LJJngdPMQVYhIng2j1/JT/jVRz2z yFDmbBGgopf6n6U7HatfBJj059aMeOS91x7ts2tGPraLmpAcAtYjfUu0MuR0nAT1pth6 a+BNiCew2o8F3aXcOgGo0699xFNv9Jn1Elqsj7B26nJu8RChckew3FVQrbgZlhTvsgTR 9ibVGclr38FCdFgjpfBIyBV0wS+S+V1w6AJ5ZSZzZ6dpZ0HffsZyfHOBCkjTrSnH+7Os jkm8MqtAeLMqYHHt6FD/eHHSoifLTCwzvqaLZG9ldnEr7fS7SNTA+yD/ehpn2+YKq9nW fPeA== X-Gm-Message-State: AOJu0YwykGnyuTJpL2crBseHoZl/96okQHFUlGIqlTTlJwAiku7ntZTz PsHxlp6PVZsNxWxN7vjstc5GkkpC+YA4zq8oKaLUEXTMuUoT37CrUB1nH262Bcw4EhTXolxeEOb QwPDyIKUpgR0McU7LFBD0sJlKnOZEar+0MSwR8QFhJcPsqla0h/NwvruI X-Gm-Gg: ASbGnctQz66dZ5YopthyItr2OYMQIybROdn+w9KlyONtNivwxUnKNHIefptPy6uX4bp YhonHAGoMTjKrLlPbsRD+4/EV1zgUYKhqDa4IKmPPyIxpoZPEW/bCmsUzfuf7FVMO/0I3kJQJmN j+6JUCVMco48jnRq/qYFQE9Eh9RuyxGJGDtD+7QoNjf7p2hOQROuQjJvmJMQoDcaddF9Uduw6yc h2aj1mOyZBPAzujT5SIioQE4xfI8t54CWT8qRxMztR9UIweNgnjDLU5H1XOGViw+4z0Q5xMswhf ryL7alBqMW2lzmMC+f0zv/YJaq0H4POoh23oI18+hSSGbvVaYq6o X-Received: by 2002:a17:903:1208:b0:234:595d:a58e with SMTP id d9443c01a7336-23e2f4e9127mr19595965ad.25.1752712773478; Wed, 16 Jul 2025 17:39:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGJ/RnTuNOqfMFUeb6x8JW/GZy2VYTwpLHbVkm1RVdq8T7yQFOGJYY6HJxUk1gB/f2fY0EV5A== X-Received: by 2002:a17:903:1208:b0:234:595d:a58e with SMTP id d9443c01a7336-23e2f4e9127mr19595475ad.25.1752712773036; Wed, 16 Jul 2025 17:39:33 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:26 +0530 Subject: [PATCH v5 03/23] 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: <20250717-propagate_tpm_error-v5-3-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2786; i=armenon@redhat.com; h=from:subject:message-id; bh=xt53pEr1ggy03OrfBWGIIyKPwsWGunsZ/7AAWO8gTog=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm1zn9jNT7X6yW7c25Ei9fnJKT+LzbuEzD4pfK75SD DnksGFHRykLgxgXg6yYIkvD1wDZpoDCiEjbl9dh5rAygQxh4OIUgIl0xzMyPHx5nnt+4ZEJj7vL d4Ze3zW9K3DTJNnPD5iMTTg4rXZfUmP4X3NuZ5u4/zS5rUvTni14kR5Q4Js4i/18YoCBWLRR234 jVgA= 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, DKIMWL_WL_HIGH=-0.001, 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: 1752712888242116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. It is ensured that qemu_loadvm_state_header() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/savevm.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index ab947620f724874f325fb9fb59bef50b7c16fb51..3ccbc724eb808db09b77088a858= ecc7f06b21155 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2814,35 +2814,42 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t t= ype) return 0; } =20 -static int qemu_loadvm_state_header(QEMUFile *f) +static int qemu_loadvm_state_header(QEMUFile *f, Error **errp) { unsigned int v; int ret; =20 v =3D qemu_get_be32(f); if (v !=3D QEMU_VM_FILE_MAGIC) { - error_report("Not a migration stream"); + error_setg(errp, "Not a migration stream, " + "magic: %x !=3D %x", v, QEMU_VM_FILE_MAGIC); return -EINVAL; } =20 v =3D qemu_get_be32(f); if (v =3D=3D QEMU_VM_FILE_VERSION_COMPAT) { - error_report("SaveVM v2 format is obsolete and don't work anymore"= ); + error_setg(errp, "SaveVM v2 format is obsolete and don't " + "work anymore, file version %x !=3D %x", + v, QEMU_VM_FILE_VERSION_COMPAT); + return -ENOTSUP; } if (v !=3D QEMU_VM_FILE_VERSION) { - error_report("Unsupported migration stream version"); + error_setg(errp, "Unsupported migration stream " + "version, file version %x !=3D %x", v, QEMU_VM_FILE_VER= SION); return -ENOTSUP; } =20 if (migrate_get_current()->send_configuration) { - if (qemu_get_byte(f) !=3D QEMU_VM_CONFIGURATION) { - error_report("Configuration section missing"); + v =3D qemu_get_byte(f); + if (v !=3D QEMU_VM_CONFIGURATION) { + error_setg(errp, "Configuration section missing," + "%x !=3D %x", v, QEMU_VM_CONFIGURATION); return -EINVAL; } - ret =3D vmstate_load_state(f, &vmstate_configuration, &savevm_stat= e, 0, - NULL); =20 + ret =3D vmstate_load_state(f, &vmstate_configuration, &savevm_stat= e, 0, + errp); if (ret) { return ret; } @@ -3119,7 +3126,7 @@ int qemu_loadvm_state(QEMUFile *f) =20 qemu_loadvm_thread_pool_create(mis); =20 - ret =3D qemu_loadvm_state_header(f); + ret =3D qemu_loadvm_state_header(f, NULL); if (ret) { return ret; } --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752712863; cv=none; d=zohomail.com; s=zohoarc; b=K6dbeebFmMXXIQzfq79pqzRQzPOYVV2gcP2STE5oKquRX4czimtm8GuAVboWs/4r6ZMTZAQTxWQNHv9WnsuW91cOwtOZH5tdR1zliCbMK9UdVd4VyS+N8H9LudO+OVHrQHRCIp+x27PSVmTSmEOSIgJk9uRxEYPc4Pbxeoici5s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752712863; 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=6idEMhh83uqC5z427pjdZmOU5UfrJ0zUiwqia8wpnxM=; b=SkaXxPDkP9GKaGYWQ1F1QV7k1Fuuec+Fip4tngyFfBGQ1xS0+yZ9B3tdMcVDKqkXccNRnF84fOY325csMHdjWsoaF0uKaBaRZPB3ItySVMypr8kc8bzhFX+/oBqWbwWqMrpEc91DDxHwIBD3zqMDB+jW1DXDfr6NbzQve60WFV0= 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 175271286376480.28150931970549; Wed, 16 Jul 2025 17:41:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCfR-0003Oh-Nt; Wed, 16 Jul 2025 20:40:19 -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 1ucCf4-0003M2-RT for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:39:47 -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 1ucCf2-0004da-P5 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:39:46 -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-447-c6MIHDofOyyAk5_DwFDD0A-1; Wed, 16 Jul 2025 20:39:42 -0400 Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-3122368d82bso556162a91.0 for ; Wed, 16 Jul 2025 17:39:42 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.39.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:39:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712784; 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=6idEMhh83uqC5z427pjdZmOU5UfrJ0zUiwqia8wpnxM=; b=hOreipnS0HSYEONSaSMVWHy3LD2kE41uBLL/0ukUEyZJAlYe6HrAWoqyUYjvDJpubZszLr wvBevDPRbBHSVEx+ycsbQF4cbFMSiPplZoBOCPF6AbxPVOJDplO0xiwGFmLObRK9SpsIQ1 Jvq8j9p+xTdqjGWNB/ciU8kSAGJVHB4= X-MC-Unique: c6MIHDofOyyAk5_DwFDD0A-1 X-Mimecast-MFC-AGG-ID: c6MIHDofOyyAk5_DwFDD0A_1752712782 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712781; x=1753317581; 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=6idEMhh83uqC5z427pjdZmOU5UfrJ0zUiwqia8wpnxM=; b=NHJaC8JkMvCbn/mr+FzPjshTYEpxcNEFgAg+uZbPDb4roY5pWzxKGxkZskquITB3so 5vOYyYNsAoL1CPPVM67AEvl5bE5OVRZWMH7Y0kRRvsKwO9FvffvCPMTE6DMkjK3MLINz 9o4uyP3kQRw6e3hrsedIKV20Kevx4qosskp8QiozhW4ntxX7J2ghthIiOHeSlE7loztG H6RqdSjHLSZtLJ6SoxmtEJPt6g1k+Bx+0qh/Gxm8dxKtGekkrQgqxDvYS3iKeJiucs9B ynMRGrQaiWXXapiq6tV2MIMX2+/CD2KSaZrjygNwOdXlFajlQQSWPZPFJl0DzpGLUF2u RaYw== X-Gm-Message-State: AOJu0YxgRzv/XBbFTbi7jHpJ9BaQynrNS6p3OSDWiZGRpF/CGu5JYnMH ex5yw+5nyisyIgsRw0XRac52GrqRnmZhwq/B0TdMV2r1Z6cye6Iaaahg+28/+JWGgtLjyvQtZfk pcA77cTQncFIDRPcfTkd72/BstuR6GQ4TxoXAQaQ/+ruv1xtHZcOriOIg X-Gm-Gg: ASbGncv1uLiSMwLKPKKMUhAoIRbM7JgaKpaK3/Y0xpt/MqhJZMFrhTUv6TZKlHzkIPU i8mCb94GhWhMVUl5soQrwQChejbnbrDrwjjoWSGvf4l/xzik2VyMr6krds6mm0n8NeDSgNzV33r GcdgiwC9LkFtXr9tBGy/H3xwHQOMuf8YjmgxB8S+IIvNJHHFRp6FSH93RNU/6rk8c9oLg5INqRl wBWeAh60KQlMbWQu000zQXbvjd9zUZIDRRFJNWdnFPd20BS791KuA24iiarTnyUc0j1fm0st7z8 tIhudknvssQmd675aSjY6KPbibyqN+8TuhMTwCUGUEeA/vlYfRHO X-Received: by 2002:a17:90b:4fca:b0:30e:3718:e9d with SMTP id 98e67ed59e1d1-31c9f48a301mr6610754a91.35.1752712781593; Wed, 16 Jul 2025 17:39:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGm44/XlUnExWB7VZSfuCnSkl/KDOGoVsa6zbio5hhb6kL3krG0P2MSeTCiHW1oWwzABDeqXQ== X-Received: by 2002:a17:90b:4fca:b0:30e:3718:e9d with SMTP id 98e67ed59e1d1-31c9f48a301mr6610721a91.35.1752712781210; Wed, 16 Jul 2025 17:39:41 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:27 +0530 Subject: [PATCH v5 04/23] 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: <20250717-propagate_tpm_error-v5-4-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=2025; i=armenon@redhat.com; h=from:subject:message-id; bh=ipdA30K0WlD1GlemlwMPQb7dvJDBNmh94bTKeAzukGY=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm5y3bkRmz9esLdFOnZU3Vt5ZJ6U/q/llqsDdiv2TM i5xLPncUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCJOXowME24czjfmcVr6oNVx 9zpBg2255+5u6ee7X1PP6uwh9jXiHMN/ryUFhatn3rnBNKHlpuiLK/7XOxqu5N/Xia285ecyoS6 KHwA= 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, DKIMWL_WL_HIGH=-0.001, 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: 1752712866075116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. It is ensured that vmstate_load() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/savevm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 3ccbc724eb808db09b77088a858ecc7f06b21155..1c1a46e4a01f812b559c451d278= 916426aa1cf40 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -963,14 +963,14 @@ 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) { 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); } 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 +2741,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 +2794,7 @@ qemu_loadvm_section_part_end(QEMUFile *f, uint8_t typ= e) start_ts =3D qemu_clock_get_us(QEMU_CLOCK_REALTIME); } =20 - ret =3D vmstate_load(f, se); + ret =3D vmstate_load(f, se, NULL); if (ret < 0) { error_report("error while loading state section id %d(%s)", section_id, se->idstr); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752712943; cv=none; d=zohomail.com; s=zohoarc; b=Z6L0k/r58/RFtxP8gkWR8vhml/8+7jWbmO+CeEJ2lsYg3UdfV1mFvdVNnY8SU9DlyRjmYRLUdBPzxZxuQ/68QPcuAnDWfRbWmgjS8NCTkrDa7NyONT5WlrgRSmsTfG04UnLOYxqNHwezJrC8WdHwJ2r0DaaE3S6Htli/jkgyAow= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752712943; 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=9NaJ33VLcp+2puFTtiMY5RAuJghTMc3oNGQhBs/78XM=; b=S7aISU6SwoLa2scm/fI+8IV2Agko1gfNyibOZwbo9D6VY9VO9IxiOdzQLDHvwtjjkGCp4lg4ojs+ql7i6AI6h5XXRJ43IOm/UPSHJOL6cSBdbXRnwF78HENFhvOlq36F28JNNaOjxVGuiDxJs6wGqiGEtUXnykizInjEevZQ/YM= 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 1752712943669374.89081809111383; Wed, 16 Jul 2025 17:42:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCgO-0004Ci-Ix; Wed, 16 Jul 2025 20:41: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 1ucCfE-0003RD-4I for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:04 -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 1ucCfB-0004gF-2B for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:39:55 -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-643-6jut5YLdMuScwaOojOJoNQ-1; Wed, 16 Jul 2025 20:39:51 -0400 Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-311e7337f26so453244a91.3 for ; Wed, 16 Jul 2025 17:39:50 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.39.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:39:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712792; 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=9NaJ33VLcp+2puFTtiMY5RAuJghTMc3oNGQhBs/78XM=; b=O35Xm0XEsintjuAQkZaABDhDfMPMJUPkSrrtDn9Mj5UUjJig/zGmr3HIHLaJqdwLFM6bwP 2nGnmVkdqzqTZRXGqq+/0eP5QgfG34IpPvTj4gKWejde1FUztaCw64Q9gUzMcC7jNKXCUm 1rDTsmpb/SX9zpKcslkHNIoEYgL4r28= X-MC-Unique: 6jut5YLdMuScwaOojOJoNQ-1 X-Mimecast-MFC-AGG-ID: 6jut5YLdMuScwaOojOJoNQ_1752712790 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712790; x=1753317590; 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=9NaJ33VLcp+2puFTtiMY5RAuJghTMc3oNGQhBs/78XM=; b=RVMQBgS5hmV/bnkn7fBMDDETDOffhtf0pxYDsLqz4NIGflqwR5fMEdzCykmKIPgrgt dv/eYCTQ3pWDr5Z62TkI1xX/dqTOJrb5cH1OG2JtDpt41NhLqLXF/2FQ7fRHK3a81sAw AewZJOw3diJw9sDgnIgNLPMC/uQrhb561l4VBAPiD3ok6wLX4eqDo0mF9jU8DKGS8F+6 fMfLToC/zvxj+nLfwWZbONCvh75p3SIL7VUry5+GZsf+394lGIB+4wAa0Eov45EnMvVT 4PhD9Vu12qX5Km/PsQrqjdAKq5H3H6VfmpZPLBNObCelIg9T1p5QTDxqfcfpjhc76RH1 QM5g== X-Gm-Message-State: AOJu0YymHqiI4fMZKo4L8SAFZa760OKiVzTJcJ4sum+I6CS4BT5SqTDn 4gujAB77m7gPDgT1n1hGnCGufDoNOu5fIMkVuGrzauuN61wX1OL+Fm1pWKDTXxtsXWCF4NPHSj3 GKFM6Sd/WgWaHlGp+jdVLEi2bT03Ro26CcM1c8ARqtIKS9VGiGZQXeh8A X-Gm-Gg: ASbGnctGjoU7SsXc1mdTX7UT69LLEO1c/XF1+nScbe0rAVUkMpRJfWjeQj35aEiMMno E1vUdBQ437tHZPFvigxWFrDgBNnmPg8AkYeF4OKV93u5hoqeC5rbjh+4lS2/8FTAQygetpEzIgy a3kS2U1/V1650xgSWvJJ9b33fuYLCTsAsT5pK6i/yP1Jhg/NNp13kCBAwV1RImQ4uUGMXST0vJ3 /ITgSETaAgb5T5zx+/6cYzI5+0I0pE0hM8n6bX5/FyWyxGq8UBxRJ/EdFNtsPwA01as2YQd99EK LO++vUaHSIgrLUgznLNcyBotSy+3fmCCTilX2G5yki9Xnx4BAmrW X-Received: by 2002:a17:90b:48c8:b0:315:b07a:ac12 with SMTP id 98e67ed59e1d1-31c9e6f71b8mr7715906a91.14.1752712789893; Wed, 16 Jul 2025 17:39:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEoEyF41T8aG39oASZVyMvCw2f8fVxhrxNoyusDmX1XKS9OXdygY1+Sfg7zcuD3LTmedN083A== X-Received: by 2002:a17:90b:48c8:b0:315:b07a:ac12 with SMTP id 98e67ed59e1d1-31c9e6f71b8mr7715866a91.14.1752712789448; Wed, 16 Jul 2025 17:39:49 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:28 +0530 Subject: [PATCH v5 05/23] 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: <20250717-propagate_tpm_error-v5-5-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=4582; i=armenon@redhat.com; h=from:subject:message-id; bh=b2NffNtUDOsgT4X2v0ZRj1V7prc7FqWxpiZP5MM8Nb4=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm7xz3c/f79wmpqnuvu2QL3JFVG5bzkGWOTuiFwp/v LnEeIVoRykLgxgXg6yYIkvD1wDZpoDCiEjbl9dh5rAygQxh4OIUgImkizD8ldde1JPduIRVzf0d o1rUtWtqrR99xDl/fj4jcEH5SFR1GyPDtx+1d5Zd3j7rUrHljcC9Mr8OL2S55uve2qz/SVRXZ4o ePwA= 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, DKIMWL_WL_HIGH=-0.001, 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: 1752712944802116600 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 | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 1c1a46e4a01f812b559c451d278916426aa1cf40..63125971751394b72efc9bcaf7c= 4364715eef07f 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2684,7 +2684,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; @@ -2696,8 +2696,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); @@ -2705,8 +2705,8 @@ 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, "%s: Failed to read instance/version ID: %d", + __func__, ret); return ret; } =20 @@ -2715,17 +2715,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; @@ -2733,7 +2733,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 @@ -2741,10 +2741,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 @@ -2755,6 +2756,7 @@ qemu_loadvm_section_start_full(QEMUFile *f, uint8_t t= ype) } =20 if (!check_section_footer(f, se)) { + error_setg(errp, "Reading footer section failed"); return -EINVAL; } =20 @@ -3055,7 +3057,7 @@ retry: switch (section_type) { case QEMU_VM_SECTION_START: case QEMU_VM_SECTION_FULL: - ret =3D qemu_loadvm_section_start_full(f, section_type); + ret =3D qemu_loadvm_section_start_full(f, section_type, NULL); if (ret < 0) { goto out; } --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752712910; cv=none; d=zohomail.com; s=zohoarc; b=VmCW3zbyZksrALdTJ+yx2brN6L2n6okeYxltzLorKAXZhS63DmAvHWi+zEAhmwDeHBUtQnd8DRKzh+QxjITGXjZP8FBOqCFltP2wtJoB4ZIajasGUTi/VKLZb8SlgGqeHgj0a98aQ+lZxQ1h4kWUwCVFTGB7vz3B89wOfOHeu9w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752712910; 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=bXyKWduRgwVa8XbT/qLAwYBsiWC6CVCjxuy5mMo3YOk=; b=OPs8MyhbMKB/YhM7Zr0L4S0kG2jS80zvItJB2ny/lpwvDqomi0UcJA1jmVXjWttuVI78WsCprQ2wGHpyfGoY/3o3mOlKnH8Vq0XlZncY6i2esGk2drgnPq6607ymvsVjY0ccgdzVtKKINLN/b8hhGNbx9/CZtj6saELjCGpM0Js= 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 175271291088789.0917278217338; Wed, 16 Jul 2025 17:41:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCgo-0004nI-Tx; Wed, 16 Jul 2025 20:41:37 -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 1ucCfP-0003U2-Do for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucCfK-0004in-Dv for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:03 -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-14-VB7Rn0QmOjerfu9n5sMy6w-1; Wed, 16 Jul 2025 20:39:59 -0400 Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b3bde4d4d5cso252679a12.2 for ; Wed, 16 Jul 2025 17:39:59 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.39.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:39:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712800; 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=bXyKWduRgwVa8XbT/qLAwYBsiWC6CVCjxuy5mMo3YOk=; b=VpDmuwg3NUZ3P77lSMa2jvrOK7iN11jehW5MWrIotNnv0NklVy8L8MYvXgOiTJ+iWaZqfE sYWaitjlAkncwTN3E2lzW+sddPMX4alnCnthepokCWfRFTcJepmP0QlWgzfAcf/vYEW6x4 bbzqoMIQLY91+gUtb89yQhWubyVpjDs= X-MC-Unique: VB7Rn0QmOjerfu9n5sMy6w-1 X-Mimecast-MFC-AGG-ID: VB7Rn0QmOjerfu9n5sMy6w_1752712798 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712798; x=1753317598; 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=bXyKWduRgwVa8XbT/qLAwYBsiWC6CVCjxuy5mMo3YOk=; b=gqp18jNvbNGipxadkrVGDHNcagRR6l3R01cVOflcAmsEENQoxnIjc6YyxyKGgRw7Qg LV13jP/hwzc2WskuK9he+pA17og3W63NTcVpUXh6+pgWG2bElx7ys+cl58C7ipFYf8KS CQIz2XZ8UafD4stWE1SEsxX1QoFU7cDKFbNKuc6kPNxzam6bfK35JPhJrU+o1nXw0XMY wjzpct8HmSMJ9Sfcbraa3oEfLPIdhtOeSG5nBJ9DeXSfOpt94H1vR3iPyfHc1iAEMKNb ac0ifbit2VinyLG0BJ7d7PeashLi4401YmgXP2iDM4EDWW5bMT/t5VjewEF9eY8LjcV/ PPQA== X-Gm-Message-State: AOJu0YyeSxSoagKkzIbCLedC14RWxQIFoHltmoUdtgdfBN88LQ8+YF7I 4REWsuorKQsep9bb9Dr/LKzSeTrnmSsaU+afKZpRUgM8RzXzoEECGcVm5myi4aFZE9erk+aUXhq T6lPzPdrTaToSlrpWaJrQHVR/KkFMd3ZZQQ1uUarprFCHyJrYsmBKKk8T X-Gm-Gg: ASbGncvrqJwqIw2MJQ0nGfckkNCN1L9q6yTTxLPUNpyXwP/lAh8P6EqJRfgEmx7hDNA 3dpBbZbyY5Enr7diuR21TQY4XnBw2G+szrFv6L7bPP4x9OgiaTR7wecrq1NocmgibHeVJV6TSxS 4j/muMt43S6hTvVxy39X1O50Mao4G+YSAlsl3jSaZlfBYsfhEw34F1OIs3ujxuO4zQcm8uagbvm rDCu4fK9x4K3vuEzQ5f/bYH56PybQ5bfIm4v5qrCGBuiIbUhXB3GVi0pp2iZpievNn3E1TXWRHi aXGULg3FgU5LwrsnIHwQBzjMuJi4lETHpO/w11BZZduTqacapjpq X-Received: by 2002:a17:90b:48c8:b0:313:1a8c:c2d3 with SMTP id 98e67ed59e1d1-31c9f4a8027mr5196923a91.22.1752712798207; Wed, 16 Jul 2025 17:39:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGLfVcg3K6SzlV7xG/sHJf14l6vAlss+ivfbkipbuORdb2xvP/AWSe71A6KIF9qyaQiM+k6Wg== X-Received: by 2002:a17:90b:48c8:b0:313:1a8c:c2d3 with SMTP id 98e67ed59e1d1-31c9f4a8027mr5196892a91.22.1752712797725; Wed, 16 Jul 2025 17:39:57 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:29 +0530 Subject: [PATCH v5 06/23] 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: <20250717-propagate_tpm_error-v5-6-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=2717; i=armenon@redhat.com; h=from:subject:message-id; bh=01RE6fGMhW2A4jjBTwYMGRdHLILhIBLbCwfmSRWE0rE=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm3z4rkMn7qx93rXo3slFIvr3zzr4G6VKhORxc0zsb zrZIriho5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwESuVDIyNB9vbkpdcSx3n9aj Scs+Wmv4sG6c3NTKMmWLmkPr1to4WYb/3l5er83Wz/t3syc+4Efni7Im3+zG4uMBVeq2HiWfJm7 jAQA= 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752712912605116600 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 63125971751394b72efc9bcaf7c4364715eef07f..22d73999595384519c755c9416b= 74ba1263a8bb9 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2764,7 +2764,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; @@ -2776,8 +2776,8 @@ 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, "%s: Failed to read section ID: %d", + __func__, ret); return ret; } =20 @@ -2788,7 +2788,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 @@ -2796,10 +2796,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 @@ -2810,6 +2810,7 @@ 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"); return -EINVAL; } =20 @@ -3064,7 +3065,7 @@ retry: break; case QEMU_VM_SECTION_PART: case QEMU_VM_SECTION_END: - ret =3D qemu_loadvm_section_part_end(f, section_type); + ret =3D qemu_loadvm_section_part_end(f, section_type, NULL); if (ret < 0) { goto out; } --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752712979; cv=none; d=zohomail.com; s=zohoarc; b=hOCf/RYOSfOt2VhZYQQcrIQHQQPEuWmVAh8n7fMSG3P8Ud4VPAYT3TUlNNxh6a62FVoIZY7p3YhB56pKnbhMlFGrQtAq3XXN0AroOYzIYdCfoCnqc0g5EIkQgpnoMaMOkaFmp6kQychrq3JgoyfpfDe09lY3L5vqvTxnLmf13Ms= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752712979; 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=vTeE8/9Lh4UccTl/MBa5F7ess9MS2pKCwA3QYt9z0AI=; b=Id++hvcMFuo9L4BWCBFrKb5YGzVw6S38ddBHcAUTNHhtSoZCjHjidFGMzRKgBGbXUic7FABHo/GWbhrdtF6w4pmwCakSuCKHIL/yoZ4+BraJ7kxy0HuHNoV6Y4zaZlCKNscE7JqOoxC0NRbIoYGdU1Cko+Iucn2VmpG/NQM2Y48= 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 1752712979604615.82375142789; Wed, 16 Jul 2025 17:42:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucChf-00069E-QE; Wed, 16 Jul 2025 20:42:29 -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 1ucCfT-0003XG-U0 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40: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 1ucCfR-0004xB-OY for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:11 -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-373-pQeKBORANumoBoz41yCfGw-1; Wed, 16 Jul 2025 20:40:07 -0400 Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-313f702d37fso526849a91.3 for ; Wed, 16 Jul 2025 17:40:07 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.39.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:40:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712808; 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=vTeE8/9Lh4UccTl/MBa5F7ess9MS2pKCwA3QYt9z0AI=; b=M7EjyksGer0W/hGS5Lqt8TMlscKaw3IY+2Sg4ZuS+0z2kBc9ePUqRQF1hVsbZp+tU/leIG BgvbFaV/UfhP57eOPNo3493jR/0tttUavu7P5/0vUg3Y60apxZq0mV20i3EhcXzdG5VwsD WPquj0dFbNdSQvgalErlYlOV17Y1ocM= X-MC-Unique: pQeKBORANumoBoz41yCfGw-1 X-Mimecast-MFC-AGG-ID: pQeKBORANumoBoz41yCfGw_1752712806 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712806; x=1753317606; 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=vTeE8/9Lh4UccTl/MBa5F7ess9MS2pKCwA3QYt9z0AI=; b=Y73OEnYmsob+Dzg8MmCgDBEmTBnYQg1VJGzhsEFpK/RmJzPt31b/HRv93SD+dRzI/X qdBg7SvCfFV+tT1gaAhGEerYPAZyPZdovmyvDiDMUzOBMwF7zpYgXph+m7CCN9zU+uj8 hBWDz2JFRluTCJaVPCJ5HEHzLHacTHimJBrK9eP12pAyRMMEXr4cEGRU8lGSx5M9aIvd UHdGqeyJV4tNbstwAymiDNVUSj9DV3eZCo2bMshxgpfiyZ0FRrwnxx4EMYTHrZfguel4 SU36nlz3q8v9FDdRLei9Oclq1xgezGA4j7sT/OtscJu4QmpJeCLIwkA7uh3ctHhF1kRC ZBtw== X-Gm-Message-State: AOJu0YwaTSBmad2HFeucWgmhKV83hB5BAlo2dkKdtjFGqaGJJDcehITA ml0dErgTeQiRLQPIRTvS3yVX09YEMlQ2Ll65J1Wq3eAW6wU2s9FjYBwGI5Y0ZFwEEJanq/MAveO iGP331cBkvLsGDSZfkWzDEXFmKryIIl929We6mLUd0bczFOgnqw22o9WR X-Gm-Gg: ASbGncuZp+T4vWVz/QEaHHfQC0wUXJP/bnvNUp8SlrxAfbjXTp7Z1qgXqBnD6lXdSVh r5rRFHxlw8bKUWtHzda7peODAIHX88tIx2VfVJPLZHTlKQpSW0HR0wklevS+p2n1yVdtETwtysx G3LMin8IhD0rPKWQ7mN2WdM4XQdb8+8gwiTC9EmIS57GXSRV4m6lP4Oj9tTDQx9EoJkVwsvUUzT +oYh78ZHrWlGV8RCDfIekm5/FlOxxj7KBPiwO9Wpx6m5oaZI19xox6PuaXPrFX8LFcu5Lmioea3 R7p/gALeKAByrBpb8l5NSb6x6fOmztsVEe3lmh7AZChUMTYwE1j4 X-Received: by 2002:a17:90b:2ec7:b0:311:ef19:824d with SMTP id 98e67ed59e1d1-31c9f435537mr5951196a91.2.1752712806285; Wed, 16 Jul 2025 17:40:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHXCiCjhf4E4OyV6KKYPshayVD8EIdfsc+zrX+ils8RiixiHS5Cg5zVLyLevpNv8mzMnhns8Q== X-Received: by 2002:a17:90b:2ec7:b0:311:ef19:824d with SMTP id 98e67ed59e1d1-31c9f435537mr5951134a91.2.1752712805890; Wed, 16 Jul 2025 17:40:05 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:30 +0530 Subject: [PATCH v5 07/23] 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: <20250717-propagate_tpm_error-v5-7-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=6701; i=armenon@redhat.com; h=from:subject:message-id; bh=HQPNJONVT9SivjK/oGYO7fxEoYCQ+al2/T3BQqpuGNk=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm/xpPp46pz1Z+9/srfG5eu2QvnNVwIY3JRJXWQ6zb 83zX1DbUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCK3XBgZPmUlrHHlad2drvqT +VlZ9FZ3xf1TFQss+uxLxCV+ax5MZPgf9Lqav0e09uzNfd/E4t+p3vgi4my2W9/pvLn3i8xe2Xp +AA== 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, DKIMWL_WL_HIGH=-0.001, 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: 1752712981220116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. It is ensured that loadvm_process_command() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/savevm.c | 89 ++++++++++++++++++++++++++++++++++++++++----------= ---- 1 file changed, 67 insertions(+), 22 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 22d73999595384519c755c9416b74ba1263a8bb9..98711bb38a4548d4f168459f729= f604a78716c25 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2540,12 +2540,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); @@ -2556,16 +2557,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 @@ -2578,7 +2579,7 @@ static int loadvm_process_command(QEMUFile *f) } mis->to_src_file =3D qemu_file_get_return_path(f); if (!mis->to_src_file) { - error_report("CMD_OPEN_RETURN_PATH failed"); + error_setg(errp, "CMD_OPEN_RETURN_PATH failed"); return -1; } =20 @@ -2588,11 +2589,10 @@ static int loadvm_process_command(QEMUFile *f) * been created. */ if (migrate_switchover_ack() && !mis->switchover_ack_pending_num) { - int ret =3D migrate_send_rp_switchover_ack(mis); + ret =3D migrate_send_rp_switchover_ack(mis); if (ret) { - error_report( - "Could not send switchover ack RP MSG, err %d (%s)", r= et, - strerror(-ret)); + error_setg(errp, "Could not send switchover ack " + "RP MSG, err %d (%s)", ret, strerror(-ret)); return ret; } } @@ -2602,39 +2602,84 @@ static int loadvm_process_command(QEMUFile *f) tmp32 =3D qemu_get_be32(f); trace_loadvm_process_command_ping(tmp32); if (!mis->to_src_file) { - error_report("CMD_PING (0x%x) received with no return path", - tmp32); + error_setg(errp, "CMD_PING (0x%x) received with no return path= ", + tmp32); return -1; } migrate_send_rp_pong(mis, tmp32); break; =20 case MIG_CMD_PACKAGED: - return loadvm_handle_cmd_packaged(mis); + ret =3D loadvm_handle_cmd_packaged(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_ADVISE: - return loadvm_postcopy_handle_advise(mis, len); + ret =3D loadvm_postcopy_handle_advise(mis, len); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_LISTEN: - return loadvm_postcopy_handle_listen(mis); + ret =3D loadvm_postcopy_handle_listen(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_RUN: - return loadvm_postcopy_handle_run(mis); + ret =3D loadvm_postcopy_handle_run(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_RAM_DISCARD: - return loadvm_postcopy_ram_handle_discard(mis, len); + ret =3D loadvm_postcopy_ram_handle_discard(mis, len); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_RESUME: - return loadvm_postcopy_handle_resume(mis); + ret =3D loadvm_postcopy_handle_resume(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_RECV_BITMAP: - return loadvm_handle_recv_bitmap(mis, len); + ret =3D loadvm_handle_recv_bitmap(mis, len); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_ENABLE_COLO: - return loadvm_process_enable_colo(mis); + ret =3D loadvm_process_enable_colo(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_SWITCHOVER_START: - return loadvm_postcopy_handle_switchover_start(); + ret =3D loadvm_postcopy_handle_switchover_start(); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; } =20 return 0; @@ -3071,7 +3116,7 @@ retry: } break; case QEMU_VM_COMMAND: - ret =3D loadvm_process_command(f); + ret =3D loadvm_process_command(f, NULL); trace_qemu_loadvm_state_section_command(ret); if ((ret < 0) || (ret =3D=3D LOADVM_QUIT)) { goto out; --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713039; cv=none; d=zohomail.com; s=zohoarc; b=ZqxzqiwUArfN2rpNE7CJNahOYuQaDLNtt4QcbhYELrTUZc34Qb94R3zr3OiGuSN7FSYRsZ/ygxUQtjlBuDaqEVBWvMEZdnTXCuTXPmLDtnaIiGZIQKN9m2e1qLdtn6Oa1eJo5rcmPRfaQpKrbQWxE9saV6/DaS4kFJu575c+BNU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713039; 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=GZ0YZUXDiWb+ftqHaZ7WVZRt6gYFvJwP+252zqkyPx8=; b=SRWJkaKWxGu2nqbTIpwVtzk5qw3WMY85lIQzKy6Vxr8+4LGLXoPQmWS/d88Ct+C6fnGfgh26jng/my2BTsVCERgr9HpnwNsEzxs6UF/88S9rMfE8deFy3a1udNijlg77NovNGbOsswcd+R6PduGPPYyU7dI3Ok0MHY4g50yUy08= 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 1752713039150689.7966699840852; Wed, 16 Jul 2025 17:43:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucChS-0005lC-8k; Wed, 16 Jul 2025 20:42:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucCff-0003f0-Ju for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:30 -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 1ucCfa-0004zX-Kv for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:21 -0400 Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-522-5VRvWgosNaqdQwhygLlm4Q-1; Wed, 16 Jul 2025 20:40:15 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-23827190886so3356515ad.3 for ; Wed, 16 Jul 2025 17:40:15 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.40.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:40:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712817; 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=GZ0YZUXDiWb+ftqHaZ7WVZRt6gYFvJwP+252zqkyPx8=; b=drJeL5hK7izS/2HCqbfC1C5DooucnTYsLbOlk/etK5pcukFJaOTBpD7Tukz+Nk4nTi0kks iTnoyIoZrTgmm4ljVhcBHWcWudJqOf59W7mtqV4eBreBxPLLd65ie/EakrNjKdBIqsYL1L o6DaOa7n6P+vB3qYAsSlU/aY1HwLGOM= X-MC-Unique: 5VRvWgosNaqdQwhygLlm4Q-1 X-Mimecast-MFC-AGG-ID: 5VRvWgosNaqdQwhygLlm4Q_1752712815 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712814; x=1753317614; 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=GZ0YZUXDiWb+ftqHaZ7WVZRt6gYFvJwP+252zqkyPx8=; b=V3aZUog5Jh5wGHftylT1NKeyFHwpUjqyp/wdQPAVkV5fRRL8mdhXd2JUStvP3Vn4iT eKBlmRe8/4SW9yzu9FkD77GrNBD4BQA8XWfHFRQXQMJsCIc9lPToYISfqTHB+aKCmlmt PI8HbdhBuG2rFAVakx4Emf9xcU/kde2dc+mOKXAuqfQv4wdWmO14nFzccjRchmKEo7xR KBwdmUv1gY3IhhMKmurmGeT6tLqihEh3P7TSD43r/mgruOwewb5uJ+/EChyjq/VXVKIG i1poEkZ7dtnnjk0kdOCY1kQGTcKlGlCDB9eK8EgPs54CjdTtXecxvtHxZVCXBTEzKyeL XKiA== X-Gm-Message-State: AOJu0Yw5bfJJR1C3jGF1MUP2+OG5v9yKgKzLxWnXp/yL3I8awidGBURP ogckTURqlpGvMcjhxlC9QtYJEHMX0MrVk0xQVaESI7X95krQS5IKHvFq3QQNJBxXH8N8ryD69DE LZv84BnnpimZ9yLE1YFlsVs7FXxHHDgGyoEJuUO7AAEHkMbNQT54LqQDk X-Gm-Gg: ASbGnct74pGibY7k78rKmD0RTzaHLpvYRLJteVuWp/8VCpaVlP+Tma2oM176NrqeXhM 0im3NSFXHgf6uesU+9kz4ujhu7X07162FypBFn3z8Mrl3K+L1sOcHBZam41MbZQru94D7cy1JI9 ZHN0mezLnZdg2bDfV54cTMVrVcNb3o29XfLDd+E1K9Cz3HpDmQyDRLAOJGK5vXDSaeOiF0Kzn4r qjtzOXay/KAvqqWluICJLyaOldl+iQAJKxdLkvi5fZRuoSl3vXCrYBcnEZzGoIi3x/dCpf6guIa AscJ/nZnL4AcH6rV7rxjpY+95NoiJroR+261t7Xa/AwYDV0SL9au X-Received: by 2002:a17:902:d2c8:b0:23d:fa75:eaee with SMTP id d9443c01a7336-23e2572a013mr68449945ad.32.1752712814595; Wed, 16 Jul 2025 17:40:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHylzS3NeT330/Yb5NqSyNrAkE53UG+yUhfnUgAFG8x5s/1xTPGbKoB/2tuhFMYZ26BkIG70g== X-Received: by 2002:a17:902:d2c8:b0:23d:fa75:eaee with SMTP id d9443c01a7336-23e2572a013mr68449565ad.32.1752712814193; Wed, 16 Jul 2025 17:40:14 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:31 +0530 Subject: [PATCH v5 08/23] 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: <20250717-propagate_tpm_error-v5-8-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=2694; i=armenon@redhat.com; h=from:subject:message-id; bh=5drxytJC6sRDNwDxqC8A6N42M/U5XAm4KwfI3qYVSfs=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm7zTa78NoYGK9y6tKXz1O2xeYKHc55u5ZxgCJpzLj fHXTljfUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCLCAowMs87ImZyYsECNbYvL xVfvghnv7VNZ7DT/+Mk1Pp9lPza1n2RkeK7AIMgtNidCY+fvJb4cU9ref7ifUeqau3KxoP2EY3I BDAA= 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752713039923116600 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. Signed-off-by: Arun Menon Reviewed-by: Daniel P. Berrang=C3=A9 --- migration/savevm.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 98711bb38a4548d4f168459f729f604a78716c25..d1edeaac5f2a5df2f6d94357388= be807a938b2ef 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2399,7 +2399,7 @@ static int loadvm_postcopy_handle_resume(MigrationInc= omingState *mis) * Returns: Negative values on error * */ -static int loadvm_handle_cmd_packaged(MigrationIncomingState *mis) +static int loadvm_handle_cmd_packaged(MigrationIncomingState *mis, Error *= *errp) { int ret; size_t length; @@ -2409,7 +2409,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 @@ -2420,8 +2420,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; @@ -2451,6 +2451,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)); @@ -2610,12 +2613,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) break; =20 case MIG_CMD_PACKAGED: - ret =3D loadvm_handle_cmd_packaged(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_handle_cmd_packaged(mis, errp); =20 case MIG_CMD_POSTCOPY_ADVISE: ret =3D loadvm_postcopy_handle_advise(mis, len); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713261; cv=none; d=zohomail.com; s=zohoarc; b=Q5/d9I3u3rfUH9IP2y3WccllIlhOnZ/pUc3EUjnA2e2D0m7IqbI0GWVZQxJWzoCoPwSgdNppz0WgbKfCua6sxG7kGn6uKNHWZocPwRY7q+MOY7HR3V9rZ5C43mwhGgMeiNZrBbrtevg1n2jGo4rlumjlmS5uAcy2DsTjmMuWSEI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713261; 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=xKQyWcOpPufP5JITdKZpkOm1yyO5xPfIw8y7KjCS+g8=; b=L0UHXw/6M0gsLBRlCDxaT3Qln0DAwZJdy1dXC+fkse0WbR6owlNVdV5+NWvX41efXNPBoQQJSwfZOUABAfFGl6GBsXdjVxPYSm+oBLEDBTc6B8t1Vf2ZYv/TkkzuPFCkq1gLKX42Hf7GOQh5WplceDUsxL9ZS4zmZwgl7LgNaHs= 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 1752713261948866.8768526069402; Wed, 16 Jul 2025 17:47:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCjN-0001JT-Cu; Wed, 16 Jul 2025 20:44: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 1ucCfo-0003i3-6J for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:41 -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 1ucCfl-00051C-Uk for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:31 -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-8-XnFhG8sWOP64UUt1ysR2tw-1; Wed, 16 Jul 2025 20:40:25 -0400 Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-31315427249so332223a91.1 for ; Wed, 16 Jul 2025 17:40:23 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.40.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:40:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712826; 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=xKQyWcOpPufP5JITdKZpkOm1yyO5xPfIw8y7KjCS+g8=; b=ekc/G48kZyVpb0HK1TpvVwFUDz6jilZW34la3ZC3ckscDNw5rgd+MiDBrOmlFz1SiwTxOb Rk2L+/wQgm1X36eH696E7Sd/nTe8Tkh51OYIqS0tOKKqEP85qmU9Jvl5M4flKvce2PpEwa oGtSSzRSHNh57HonfJAk2Sm3ZYuZsxY= X-MC-Unique: XnFhG8sWOP64UUt1ysR2tw-1 X-Mimecast-MFC-AGG-ID: XnFhG8sWOP64UUt1ysR2tw_1752712823 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712823; x=1753317623; 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=xKQyWcOpPufP5JITdKZpkOm1yyO5xPfIw8y7KjCS+g8=; b=rxfqNhiuwA8QPsO5yzyWuWJodtNI4FZ/YLw/PlX4WMPP2IKK4GeyU609mLDWeVYgze UgIkDZslNckP1e82oVzJDQIsOIPtLlOFHZa+g0tBkdibO7tmYh88/zIjLViEVfIrVwG7 X8YtLT38/NmenBnEj+09NX94Lhx3Rg/7sSaq0QcnZdIDO66p9FdjFBBpvuD7MLZdjHSd vGT9qeRPpzF8yr7U3CyePRVEs5HmwZyHM8oM3QzK4da0cpRKmR3JzNWUSI6E9CGbqoV5 BII7HPCTv0EAe6+QaSbylf18SoAQeTj5vBPM7dXNlN5WpYE8hg7PqNattw+bQXosylQu jdww== X-Gm-Message-State: AOJu0YzUNyHRy5DoMELQCadQ+oW2Mbdy4L0Dn5drvZ4k0SXzgP5M6EYP FREGhI3cmcuse1E1NIfPEdVfmZLjQhP8LPZBoB8HABhpWBWq/fZnkvZgKJgOAvy52DD4+CYIkT+ Hlha4z9NMz8xF7sx29RksF3dZ22vN/VQKfVV8U4DWDGV0R2qYdOpPPdxF X-Gm-Gg: ASbGncsQiKNMlwJk/nfxUQfZ9/jITP3OUxzP4CJRAH6wwfCZR9zvE//bXztCDtbbRWP 716fZ7BaqsJ4bTNVKP1YeG9MQcVlgrtW8jAt/xo7yfFBB+iNEuhdDtrtUIuO4lozRqeeQrYYoqa Ft5cvblCkZUEbxNxjO6zDrA+jt5Od0UTvr4wJ6SwTrkZsgN3vjMJSgZMvKwBIiARHbnaJ9YgQxu KQXxiTSJnt9DQWfJZtBaf9il+mq7Dl+k0aMWOYMVBPGtYSUPVJDRKvyxLYCJrQhhYNSvrKne1Bp cx2jlKdjfYLiln8i/TNJYhQuxk5hthmFSbjV9pAICneJzgcMY774 X-Received: by 2002:a17:90a:d88c:b0:313:1c7b:fc62 with SMTP id 98e67ed59e1d1-31c9e7637cemr6768792a91.22.1752712822834; Wed, 16 Jul 2025 17:40:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGdE3jtdynvAcuGPAv5ENe+dqxO+z5HGos0Ro1boy1+finrgFfk2v8kBSd9CI/N4AJFMVhILw== X-Received: by 2002:a17:90a:d88c:b0:313:1c7b:fc62 with SMTP id 98e67ed59e1d1-31c9e7637cemr6768741a91.22.1752712822383; Wed, 16 Jul 2025 17:40:22 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:32 +0530 Subject: [PATCH v5 09/23] 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: <20250717-propagate_tpm_error-v5-9-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=5012; i=armenon@redhat.com; h=from:subject:message-id; bh=EfcWz721HWgZSnvmLz/RL/EZn1pipgur7I4mNBwsm38=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm4LsyiuHN8Zxdm5lLmiRZFTdZ/l2G/+D4BcnfV+Jf j5Yprq5o5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwEQKbzAyzCqOcF0SWi100i5x ker2uWFz/Z/5LFDdvi6/TGpf+oOJNQz/k86d3xZdsvgR/6kNojp3j4TvyJTm57j952fngVajkht +vAA= 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752713262482116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. It is ensured that ram_postcopy_incoming_init() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/postcopy-ram.c | 9 ++++++--- migration/postcopy-ram.h | 2 +- migration/ram.c | 6 +++--- migration/ram.h | 2 +- migration/savevm.c | 2 +- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c index 45af9a361e8eacaad0fb217a5da2c5004416c1da..05617e5fbcad62226a54fe17d9f= 7d9a316baf1e4 100644 --- a/migration/postcopy-ram.c +++ b/migration/postcopy-ram.c @@ -681,6 +681,7 @@ out: */ static int init_range(RAMBlock *rb, void *opaque) { + Error **errp =3D opaque; const char *block_name =3D qemu_ram_get_idstr(rb); void *host_addr =3D qemu_ram_get_host_addr(rb); ram_addr_t offset =3D qemu_ram_get_offset(rb); @@ -701,6 +702,8 @@ static int init_range(RAMBlock *rb, void *opaque) * (Precopy will just overwrite this data, so doesn't need the discard) */ if (ram_discard_range(block_name, 0, length)) { + error_setg(errp, "failed to discard RAM block %s len=3D%zu", + block_name, length); return -1; } =20 @@ -749,9 +752,9 @@ static int cleanup_range(RAMBlock *rb, void *opaque) * postcopy later; must be called prior to any precopy. * called from arch_init's similarly named ram_postcopy_incoming_init */ -int postcopy_ram_incoming_init(MigrationIncomingState *mis) +int postcopy_ram_incoming_init(MigrationIncomingState *mis, Error **errp) { - if (foreach_not_ignored_block(init_range, NULL)) { + if (foreach_not_ignored_block(init_range, errp)) { return -1; } =20 @@ -1703,7 +1706,7 @@ bool postcopy_ram_supported_by_host(MigrationIncoming= State *mis, Error **errp) return false; } =20 -int postcopy_ram_incoming_init(MigrationIncomingState *mis) +int postcopy_ram_incoming_init(MigrationIncomingState *mis, Error **errp) { error_report("postcopy_ram_incoming_init: No OS support"); return -1; diff --git a/migration/postcopy-ram.h b/migration/postcopy-ram.h index 3852141d7e37ab18bada4b46c137fef0969d0070..ca19433b246893fa5105bcebffb= 442c58a9a4f48 100644 --- a/migration/postcopy-ram.h +++ b/migration/postcopy-ram.h @@ -30,7 +30,7 @@ int postcopy_ram_incoming_setup(MigrationIncomingState *m= is); * postcopy later; must be called prior to any precopy. * called from ram.c's similarly named ram_postcopy_incoming_init */ -int postcopy_ram_incoming_init(MigrationIncomingState *mis); +int postcopy_ram_incoming_init(MigrationIncomingState *mis, Error **errp); =20 /* * At the end of a migration where postcopy_ram_incoming_init was called. diff --git a/migration/ram.c b/migration/ram.c index 7208bc114fb5c366740db380ee6956a91b3871a0..8223183132dc0f558f45fbae3f4= f832845730bd3 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3708,7 +3708,7 @@ static int ram_load_cleanup(void *opaque) /** * ram_postcopy_incoming_init: allocate postcopy data structures * - * Returns 0 for success and negative if there was one error + * Returns 0 for success and -1 if there was one error * * @mis: current migration incoming state * @@ -3716,9 +3716,9 @@ static int ram_load_cleanup(void *opaque) * postcopy-ram. postcopy-ram's similarly names * postcopy_ram_incoming_init does the work. */ -int ram_postcopy_incoming_init(MigrationIncomingState *mis) +int ram_postcopy_incoming_init(MigrationIncomingState *mis, Error **errp) { - return postcopy_ram_incoming_init(mis); + return postcopy_ram_incoming_init(mis, errp); } =20 /** diff --git a/migration/ram.h b/migration/ram.h index 921c39a2c5c45bc2344be80854c46e4c10c09aeb..275709a99187f9429ccb4111e05= 281ec268ba0db 100644 --- a/migration/ram.h +++ b/migration/ram.h @@ -86,7 +86,7 @@ void ram_postcopy_migrated_memory_release(MigrationState = *ms); void ram_postcopy_send_discard_bitmap(MigrationState *ms); /* For incoming postcopy discard */ int ram_discard_range(const char *block_name, uint64_t start, size_t lengt= h); -int ram_postcopy_incoming_init(MigrationIncomingState *mis); +int ram_postcopy_incoming_init(MigrationIncomingState *mis, Error **errp); int ram_load_postcopy(QEMUFile *f, int channel); =20 void ram_handle_zero(void *host, uint64_t size); diff --git a/migration/savevm.c b/migration/savevm.c index d1edeaac5f2a5df2f6d94357388be807a938b2ef..8eba151a693b7f2dc58853292c9= 2024288eae81e 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1983,7 +1983,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)) { return -1; } =20 --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713298; cv=none; d=zohomail.com; s=zohoarc; b=l5Z7Sm99yh6Z0XYBQz3hR67oe9XA37vcAbC8Ks9tik7nqHqR1MFRWpV/0eu80invXiQNLumKEH4iOpTrX90hc4NGVJ72c+j68hISGQqk1Tk6DvJn6/AWzDJchFv8GwOn/zkTRGiQa9ijlgX5zNF9QJaRdVLEHjZqHtc7IfuS2Pg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713298; 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=GyQ4VuTjfYDD78RlZ2vxmZgEQq/o05r7kRTnJkWk0Mw=; b=mMUDwuol0u/B9aaAK/6sfjyp53cz1a0Uii5lQF2lrnHKycGe84M4MTYmBP17PpscbiYH3I0BaaYZKRKeMTXPt5/imOpVlFQS8YTDXXHvIOsqMG7jMVfEFcY8bpQoPSyUZmLtiUTDSRokuVuAKcfzEMUtIDYFDkuPD+oB8NqRX3g= 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 175271329860727.761206481785962; Wed, 16 Jul 2025 17:48:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCiW-0007EH-8V; Wed, 16 Jul 2025 20:43:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucCfz-0003zD-TE for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:44 -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 1ucCfv-00052r-TS for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:42 -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-16-OiGzX_7WNVqDJ_q06U_mVQ-1; Wed, 16 Jul 2025 20:40:32 -0400 Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b31ca4b6a8eso260513a12.1 for ; Wed, 16 Jul 2025 17:40:32 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.40.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:40:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712835; 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=GyQ4VuTjfYDD78RlZ2vxmZgEQq/o05r7kRTnJkWk0Mw=; b=g+EXpwonZqwmrhh10BLJmVgSEQfdInmsYRfoJd7Q2lYAZkpmVxnjNqd93EAVUn0KLUV/z6 Z0cKs1VBUqGvt9QuXr+nJwMs2UBDJRw+0xuJfEvAcWW1dimhKJitZCgyje8whwwaanjbeL lBT8s7oqt/sLYjNLZUpECaupz+DeFgc= X-MC-Unique: OiGzX_7WNVqDJ_q06U_mVQ-1 X-Mimecast-MFC-AGG-ID: OiGzX_7WNVqDJ_q06U_mVQ_1752712831 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712831; x=1753317631; 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=GyQ4VuTjfYDD78RlZ2vxmZgEQq/o05r7kRTnJkWk0Mw=; b=CWI7HtuKlBcMdr8PgX6bWbmDCerBDU8sYQhofkwIjf2/JGTvOeZhowEa7zIDZdMr4f DNa5x9CX7P4nKcU3LKwS8QaQNXKn9ry9M+folR1uTQeqOOqSD8jAB4Ld+gnfIzQRWyDx 1Yw/yD/Y5S0t543v8M+AFYUPGRwf7RWbioF7Q0gNSYDbQ+iwh4l+k5Nu1ZFa/RL0GOCR q3ifyouFmdp4EOa/BXTuE1a2Z7Hd3tX99qkqojq9ly1Rv7I6IWtzEY2tFPKbQBi3E0WP KNBbqrbt92BtunENw6m+a7yTmkA6ObKSH0YH41dptR3gFjv63bRAjuIh8YkKi6NVBaMq ildg== X-Gm-Message-State: AOJu0Yzj0nLf5Ts7L26643FfJi26MaeXtzOPz3L9qQamA8pVMjpuwEeF IeHdWFySdcK8SBsjGnLOJecKZc92ACSmuCoFyFSn9S41UXNkJx3F2D484vXENtTA1sy7WcDbZnk ta4VgFvEacs+YvrOe7CbDztj3EfusqMXXKHMXxzFXk2PtjMXiMU8RmyU7 X-Gm-Gg: ASbGncs5XwIKvy65pfTPWClVFoqZrIM33F2zfQ5JqAJpqR3klIzMt2Ib3OJrqAEbUyy GAcN/HAyQsa9NDgWbmGXFNdXnypTnxNcJ06JW0wCJhJ1DdTuEn/2WKmd/HEo785auZdIHQH3xKJ qg4eeZBFKqz6SKbBGJRKZeRTsyhEyjcVXmDawuc3q/zEjfLLE+V9H5l6KDTVAmvfStkb7yzG2rG uwZxWUtLoSOcXldNIyTorBUq0kaQzax2WMI7z9nfRhPnwzUv5Aq8z8mU3q7pzuRZ3sSqATNOR3M 9su0HKApNLvU8f0XCf4cRCuQDOhQbUNimfQB4yuGwRIhiz2ocVI1 X-Received: by 2002:a17:90b:5486:b0:313:2206:adf1 with SMTP id 98e67ed59e1d1-31c9e6e3eb2mr7413303a91.4.1752712831253; Wed, 16 Jul 2025 17:40:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHgmX7kEBO+jbmRPWuOQw60VqvT3yOfYDv03xTpakt3A+e2DZQJdWmAjVZuP0FE7DtzAhbr7g== X-Received: by 2002:a17:90b:5486:b0:313:2206:adf1 with SMTP id 98e67ed59e1d1-31c9e6e3eb2mr7413263a91.4.1752712830804; Wed, 16 Jul 2025 17:40:30 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:33 +0530 Subject: [PATCH v5 10/23] 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: <20250717-propagate_tpm_error-v5-10-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=4654; i=armenon@redhat.com; h=from:subject:message-id; bh=qrmu0lMtuRfeJPWloZhTnUKABLhMfftFJRQYoRoQ/tM=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFmwL/wiLr94UW/Vu3nri9/uYKhpSnwZ4mLVpmTIpta 7Z1OBR0lLIwiHExyIopsjR8DZBtCiiMiLR9eR1mDisTyBAGLk4BmMhVIUaGN7edWvP4N221XpPd 7nLN9LjHw/efHFM+3nh01zPup65BNcNfGVsj20Nfevk9EsNm3cpKuKRhIrb207W9B3vm6swo+rW XFQA= 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752713300816116600 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. Signed-off-by: Arun Menon Reviewed-by: Daniel P. Berrang=C3=A9 --- migration/savevm.c | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 8eba151a693b7f2dc58853292c92024288eae81e..608560af35dc76813bf6e9b571d= f3bd343f0eeab 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1906,39 +1906,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; } @@ -1961,9 +1961,9 @@ static int loadvm_postcopy_handle_advise(MigrationInc= omingState *mis, * also fails when passed to an older qemu that doesn't * do huge pages. */ - error_report("Postcopy needs matching RAM page sizes (s=3D%" PRIx64 - " d=3D%" PRIx= 64 ")", - remote_pagesize_summary, local_pagesize_summary); + error_setg(errp, "Postcopy needs matching RAM " + "page sizes (s=3D%" PRIx64 " d=3D%" PRIx64 ")", + remote_pagesize_summary, local_pagesize_summary); return -1; } =20 @@ -1973,17 +1973,17 @@ static int loadvm_postcopy_handle_advise(MigrationI= ncomingState *mis, * Again, some differences could be dealt with, but for now keep it * simple. */ - error_report("Postcopy needs matching target page sizes (s=3D%d d= =3D%zd)", - (int)remote_tps, page_size); + error_setg(errp, "Postcopy needs matching target " + "page sizes (s=3D%d d=3D%zd)", (int)remote_tps, page_si= ze); return -1; } =20 - if (postcopy_notify(POSTCOPY_NOTIFY_INBOUND_ADVISE, &local_err)) { - error_report_err(local_err); + if (postcopy_notify(POSTCOPY_NOTIFY_INBOUND_ADVISE, errp)) { return -1; } =20 - if (ram_postcopy_incoming_init(mis, NULL)) { + if (ram_postcopy_incoming_init(mis, errp)) { + error_prepend(errp, "PostCopy RAM incoming init failed "); return -1; } =20 @@ -2616,12 +2616,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_handle_cmd_packaged(mis, errp); =20 case MIG_CMD_POSTCOPY_ADVISE: - ret =3D loadvm_postcopy_handle_advise(mis, len); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_advise(mis, len, errp); =20 case MIG_CMD_POSTCOPY_LISTEN: ret =3D loadvm_postcopy_handle_listen(mis); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713074; cv=none; d=zohomail.com; s=zohoarc; b=X1iGqSHDdtPuL1b9FUatfGac7zUeNAciF8Y+HnnPklrXu4q6zOOECZiFDwzQhMa1cdFN4irN66mCZXE8CGQeletTFtiK/VG2pC6TCPfLKJ4WE+qyKMn1J/N9w8H5k/tkgtkv1ceNc1qIejkB/C/oD6BguH0caJE3uyDnD3q39Xs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713074; 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=+wTvA/7usbgasNF/ttkqJIAe4EVgQ2LmCMRyT5qNtjg=; b=Fi2ScH+gHMe843zzEKkV7n1PmcHtCcJ2NQ2/GplXOB8Q719ZjPoqTe9P1L6vOVMPQo3kK9toU2ym869BCkn3U3SYnWaaizGTl0GMdBm5N3BbiKFz4EfHlgMb3ImwN3mkmS+yO+3XTo+A7fk/MnqBM0A7BCwT1JVcqAFINnPtQDQ= 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 1752713074740872.2680491502163; Wed, 16 Jul 2025 17:44:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCij-0008DN-8C; Wed, 16 Jul 2025 20:43: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 1ucCg7-0004C1-MQ for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucCg0-00053W-Nf for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:51 -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-606-WVIi5RyGOje2SrCIMrNmAw-1; Wed, 16 Jul 2025 20:40:40 -0400 Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3132c1942a1so526085a91.2 for ; Wed, 16 Jul 2025 17:40:40 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.40.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:40:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712842; 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=+wTvA/7usbgasNF/ttkqJIAe4EVgQ2LmCMRyT5qNtjg=; b=LrqOUEIbIAxy7KRGaLI3wFsfNdVUyM46eHUcyiu3rPLpaRJhiO6e6wvXOsgBZN4O+yIwdi AxO4IyEu1EwAuqLYQdfCKo6pKIs3efsCQu9F/SENfKRW85zwnwbUKMaFZ+RmXok08hL7L1 TJQlDD6j5TA9lq7LRT0JXVpaY1V8BoE= X-MC-Unique: WVIi5RyGOje2SrCIMrNmAw-1 X-Mimecast-MFC-AGG-ID: WVIi5RyGOje2SrCIMrNmAw_1752712840 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712839; x=1753317639; 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=+wTvA/7usbgasNF/ttkqJIAe4EVgQ2LmCMRyT5qNtjg=; b=HtqWYJA4qoqeTxeg5QOTJCrVSH8Z/KK06LjYz2NYXOARJV2638yKPI1CDgalCdvH13 Nqhb2UF4ceVsFKG9UzsPKj0r7L+m4hDMUqjaKqhhvfukjmbmldRGNl2TqiEb6EyY+0xV f9gM0qgjf/D36JGCrzAynY4G3hyKFF6+hTSHP4VezPljutK5ItHDxosvBPyv0xtD4Et3 m4LF3O+zoHy/oYXAvbVeBVB9+FcR4/DsMhQvQgrCp0zmeK2/jisqjTABFNMgGD25TbjY kIiVwf9LD7Oz+GF0fwO1uy0FaLZI8egMG08eemuz0vMUJoA0xJl65qU9veuwqnEvabeY 3flA== X-Gm-Message-State: AOJu0Yz/NIFlwncklg0a0Ou2qsLDBAVs4TSTb+4fYL0+JQDtA/wMXPZj fsw0rePAAaDDQ0bqPNhjjce5SnrT+dZEhFVhxfhz3Nh9V3WRI+sMQ/05OFnZx71m6NNTAcXK10n 7x68bxChLIWKTVrBCL5hp8PbfN4YhsC+nB6CgyKI81D5IGKUp6aMT6EclfIQBGeVrol8= X-Gm-Gg: ASbGncscYWipORMwggTyVsqHjKRYGdlE3bOMKY+B2jqde8CvpCntsP/RV2ynEeq5ByD B7AEK5h5unKtL2OHQXBQhpxgyUGea7omasV2AMvQ4OWSwYe+/PtjGRt5JeMy/C0TYcvUezjcmE7 gCXzWERX20PKQS9cJpxrbc4Po/4jOPNEiQ3ny26QxFlkZpvQ11y2iXhKZQouXBahIqT8bn4CPmz aRjOA3i805hR3NMOk9VKZoJSQbTCzao5qFdx/7zbafpDApl/L9P9A5YLZ39T4c8eKOQUr0NmBsQ ymtf5SHzdBkyLdUqClA/UlQjuD3jh83b1ofOhHzfbJQdRVkjfuzL X-Received: by 2002:a17:90b:5252:b0:31c:3669:3bd8 with SMTP id 98e67ed59e1d1-31c9f424a5fmr5294387a91.21.1752712839418; Wed, 16 Jul 2025 17:40:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFargZkGZTy7Pszbtj1KBS2ZdptFvAavEVwIHRtZ7HryroP4gHSeK03dF0teIY2oaTbn16BOw== X-Received: by 2002:a17:90b:5252:b0:31c:3669:3bd8 with SMTP id 98e67ed59e1d1-31c9f424a5fmr5294359a91.21.1752712839010; Wed, 16 Jul 2025 17:40:39 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:34 +0530 Subject: [PATCH v5 11/23] 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: <20250717-propagate_tpm_error-v5-11-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=2678; i=armenon@redhat.com; h=from:subject:message-id; bh=uqQOArr5pW+vBy5T/LbQo/AfxHnsu2F8gE95SYm7aNQ=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm8Kc2yKndfkz56jwX978/5bWYT2Fpfvn7ZfXXh3KZ eJnsK2mo5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwETc/zEy7Hxy8sh7NWObqaW3 jkgxF7Czsfh1PP0sPj/2brfOxMrfmYwMO2/sWbD2DLPOrR0ni03+vOu61vFqUeTB2w8mhZQn88r nMQAA 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752713076305116600 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. Signed-off-by: Arun Menon Reviewed-by: Daniel P. Berrang=C3=A9 --- migration/savevm.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 608560af35dc76813bf6e9b571df3bd343f0eeab..a5ecec94482dfd23403d5b24e8e= 0c82d4cb73cc7 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2173,15 +2173,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) { @@ -2204,14 +2205,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 @@ -2619,12 +2620,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_handle_advise(mis, len, errp); =20 case MIG_CMD_POSTCOPY_LISTEN: - ret =3D loadvm_postcopy_handle_listen(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_listen(mis, errp); =20 case MIG_CMD_POSTCOPY_RUN: ret =3D loadvm_postcopy_handle_run(mis); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713005; cv=none; d=zohomail.com; s=zohoarc; b=bAmbW18SsyBfSH3le5rD1YYN92SRTcekgyw8qwv4lV+rmVblM/N3J7WYVFCQQ18lYyJlaMmv7EWbQ0q3ncGN08viiYokvUp43FNCFRs6ZKaJhRe6GeIWQ9R8WR5zBiR4vySjR2wljLNpJ3OwyjX1vZrs9H0c40HsFDSS5AUsmx0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713005; 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=7ENJvZNWoyyM9iitIR9lwTNSIHc61x0qMxhQbhjr7N8=; b=dqIMdhXuJr0FDvuzTzjKDrQ4DOPa9qXCIXWoBJDtjopOs3MaaKpLkoOFnHxgWceH9jBcHc6uGzRDyqpRQJ0ianXHCDAn0+VdT2K+Vh8ZMLDQ1ES7zXuWjJ1LB1cj1J1kA9uPtquszVkV84Rgrpn8VPl382g5FyYlUOchmcnuAvo= 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 1752713005013794.4434233288514; Wed, 16 Jul 2025 17:43:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCiR-0006zk-7I; Wed, 16 Jul 2025 20:43:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucCgB-0004HI-Rn for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:03 -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 1ucCg7-00055k-BB for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:40:53 -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-530-U5cqH1-OMmud0hi10jDXIw-1; Wed, 16 Jul 2025 20:40:48 -0400 Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-311ef4fb5fdso485739a91.1 for ; Wed, 16 Jul 2025 17:40:48 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.40.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:40:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712850; 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=7ENJvZNWoyyM9iitIR9lwTNSIHc61x0qMxhQbhjr7N8=; b=X3lSMBjt21B44e/rLmxJnjLDYjF5wP8vSqzdTk8xq2QEMRc83SJR2vcPQ+mseooZPmKDXA JKKu1BTkoK8+8PB28FqaSDsG7C6Z0pcvVEv/+Rm193S2BZa9EnnlA6cfGZcYwocr7QEepJ O0TCUl5xlNrBoo9+u8y56nz/4cPcnrA= X-MC-Unique: U5cqH1-OMmud0hi10jDXIw-1 X-Mimecast-MFC-AGG-ID: U5cqH1-OMmud0hi10jDXIw_1752712848 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712848; x=1753317648; 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=7ENJvZNWoyyM9iitIR9lwTNSIHc61x0qMxhQbhjr7N8=; b=RiXl3T0cZ5+zcHQiaS8wAjcpapjpSMNReIuy++Je5hPC8woU5u23K+Eh1w8aID9oRT ks4EwuvZq97GAAkul1QgHEm+v8mY/WZRLtOzSVS+GSJOvcv068oeZWpfP7y/d/f1918z WMI3uXvw2SY4Vl8mssTey2rT51xuZQk5kKUUFuaclijQooUmW2uhGnlbR3J1oi6z23xN fpjaiMuZGvNNn5RLe20BU4nSF7/hDHo0QFMazl/g06VvoGVv+mlBA2J0j8+37H7yO6f5 D4UYThoQbCRmv9jnPf5lWFv3EN3pHggJUONB1ODQ7oNiIeyIuql8SnLgK9G+MfIWGb2p 4yEw== X-Gm-Message-State: AOJu0YwbUEp/j7x3CMurWvzD9pnKb55JLKO7VwuP0X6OCKAtJ25wC8iI flK7RiLEjJ56uI4+XJD+2VqzP88sHLy4Oj5C0IX1Os4j6gSNR7mqWMeHhpcS0LSOoFeBbG+jyhC EsXjDu38/wiH0W0tsbbSattYViXrfTbaoNbZSJmoFc+3G79/qtiNxjpLf X-Gm-Gg: ASbGncsN7cKmgQ0PPlTIimLhwrBJKvd85JvXCYOYcOuoW73UpKwjuRdbB34kPhhFs13 c0O6oIkjVkTACkSuubAd6u4utZvg1Q51dyDTevzgmmYmIxMsG1D9VUtcS6VE6JfRw8tSxs1k8/u kmHrDCWLhjY0bM4U/geqFkRUX6TygQAPUzg7xHEflM+t2s3Mhuw6oIwWwDq8+fTxiYgxRl+BNq6 7Z2gLhmF7DBRl1RRpqr8tM3cMCOfL97pq9qNMvYJ25f4q0X2eAzXPSYagBBzlxF9IySNHeyBETO X9uVsX2IJYuCoLA9FZw6PFAWqexxt+52JiixJZi8BEsox0W+N5wJ X-Received: by 2002:a17:902:d603:b0:234:d292:be7f with SMTP id d9443c01a7336-23e24f4a936mr70881325ad.31.1752712847715; Wed, 16 Jul 2025 17:40:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGgafHvPAgsKcZvU/i2ibqwEhbukMvhJ5gXjxbwfOz9JwNcD27BTDpTezcw+n/5Bv2a1ABsbQ== X-Received: by 2002:a17:902:d603:b0:234:d292:be7f with SMTP id d9443c01a7336-23e24f4a936mr70880665ad.31.1752712847132; Wed, 16 Jul 2025 17:40:47 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:35 +0530 Subject: [PATCH v5 12/23] 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: <20250717-propagate_tpm_error-v5-12-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=1837; i=armenon@redhat.com; h=from:subject:message-id; bh=riI3Ss23FNIWWvkSSaMQsb/tz+VDxKH9jynbsXr0NkU=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm8KRVc4SJpEFWYd2nIspe/JtBsvFSS98Jux+fonPQ /t0M2tbRykLgxgXg6yYIkvD1wDZpoDCiEjbl9dh5rAygQxh4OIUgIks5WVkWC9iuXrT0mnRzoYK TzPiZX5Ym/tO9O8MDDNWncrobPbwH8M/hfk+Pze25kRUuViUMJ8qC3zMfeWGZDt7T9nL6d4S1/R 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752713005503116600 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. Signed-off-by: Arun Menon Reviewed-by: Daniel P. Berrang=C3=A9 --- migration/savevm.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index a5ecec94482dfd23403d5b24e8e0c82d4cb73cc7..509b71dc2666617ee3e7b707f46= 187ee5287d201 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2265,13 +2265,14 @@ static void loadvm_postcopy_handle_run_bh(void *opa= que) } =20 /* After all discards we can start running and asking for pages */ -static int loadvm_postcopy_handle_run(MigrationIncomingState *mis) +static int loadvm_postcopy_handle_run(MigrationIncomingState *mis, Error *= *errp) { PostcopyState ps =3D postcopy_state_get(); =20 trace_loadvm_postcopy_handle_run(); if (ps !=3D POSTCOPY_INCOMING_LISTENING) { - error_report("CMD_POSTCOPY_RUN in wrong postcopy state (%d)", ps); + error_setg(errp, "CMD_POSTCOPY_RUN in wrong postcopy " + "state (%d)", ps); return -1; } =20 @@ -2623,12 +2624,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_handle_listen(mis, errp); =20 case MIG_CMD_POSTCOPY_RUN: - ret =3D loadvm_postcopy_handle_run(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_run(mis, errp); =20 case MIG_CMD_POSTCOPY_RAM_DISCARD: ret =3D loadvm_postcopy_ram_handle_discard(mis, len); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713075; cv=none; d=zohomail.com; s=zohoarc; b=CibJNS2vyn0lkIHQsxIQG1GxnsG54iIb0iXjcADe5eiKWk/DjmbWmrusN3FnLsWyoJT3uOtbAbMqh0f3VuVykAi2mApE5caDpqFO63ICPs0HPmjtkNAMsBIPUaQvgX+O9hHj71QNZQspUvg/FjA2mKXyzEgfdWstqQPln9b5nBU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713075; 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=WgO7zWmS2mad1LAC+VDbczyzpEeF7OhFfACO/B0QFSc=; b=ZEITjGVfo2BS2JgENiPIoAWg9yLqbgR5LaRtAS6ooE9VvF7g/H1iaifA2vWL/fCSy7DtTAjB/9Mvj3YjwBuZFeISoaebZVMZPrG8XpoA1CZcMjjluyINqB6kTSbhT7MfVhEJro3KdVQEzOnLAvhBJPhsZ+1Ip2Pmr3HyAC4fTqo= 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 1752713075672794.5520193997259; Wed, 16 Jul 2025 17:44:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCj2-0000GE-Co; Wed, 16 Jul 2025 20:43: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 1ucCgK-0004Lj-AQ for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41: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 1ucCgH-00057J-E1 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:03 -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-482-q9L7BB6oO2qtORIlaOzlAg-1; Wed, 16 Jul 2025 20:40:57 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-311ae2b6647so437222a91.0 for ; Wed, 16 Jul 2025 17:40:57 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.40.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:40:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712859; 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=WgO7zWmS2mad1LAC+VDbczyzpEeF7OhFfACO/B0QFSc=; b=KBvCX4IGxTEISuduEBsuJDeWIPPiGl5VTZeFaYAoz2wkuOQMFarze/1gmlLgItyt46XM01 cbus0oyaVEp0S5Ge4wVH9+G/y4+C7KI7NwVTqV/oyRFSq3i/AdU9WyMXKDPf/Uzm7vEGWO 6+xjwZwP/bpBjqoFGChAsQ44NJrKOgE= X-MC-Unique: q9L7BB6oO2qtORIlaOzlAg-1 X-Mimecast-MFC-AGG-ID: q9L7BB6oO2qtORIlaOzlAg_1752712856 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712856; x=1753317656; 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=WgO7zWmS2mad1LAC+VDbczyzpEeF7OhFfACO/B0QFSc=; b=rShuQZeCSI1CNfnvpkYNxJqeM75nCAOKfHXWONIfG2AcfnUXq4IAtIkS9PQnFWfLP8 UfBCQV8a8hGX2zVBV/XWeMNtK1PZQLi5Gd85Rk8ctasipMeCuhMzUwhvwEj7AKdFQlCc f7lv9nEuaqi9pZeygDM0XQWMOhd3BBSMEoJPKo64IoLQsueMdA5Y/Y0In+Lb9dC6vi8O gd9PT7rmvRPbygykIC3qcCGmXno8sna+IFfJmANyf2FLcxg97a349Y2BNGBXS1teWutT AxueaTLszy2c7/MWn/kCMXOW/S07PCMNK5XWUOD8KjboEPs7TIJ6XqBDUL5WePlHX/Z9 XfWA== X-Gm-Message-State: AOJu0YwCTKJ6Ws8Prt9jgpLpkUbQ0+50bc/7YldRHx34ztw7XiK9raCW TLxbY8CgTHsZmMC+6VCGeuyNpiPndWElqjMQVSIdSl3rfU92iNUSnmZLslBkNI7abQYU2ZcaL5P 3Lo6zF0av8q6wmE7L2mIWgiiIbOw5oPUPJ+B0W/nleJQ0keQw2QYZ6j+Izy67SmalMyU= X-Gm-Gg: ASbGnctVt+2hy370DGI7mo6oUhFQcQk+MQsc7wveQBacKkFeuYKPuHtF6chLKZyPumr I04orHcGYLoKp0NZDmq+oPIkykXMTSW7ovv/Xc9X5O9XItNlGOZKEWNan0q82Uwvmh9Wir8uacw exrCi0nS9OVCVeWcbrjTf3VuXOro2oHQ9007CtY5NI6ddS8PUaE5HzdmGHUyUbCZRObLKMC9rey lqDypfZOYEp/Kgn/cLfdrluGbbocq1l70QlG/o5nVzxQ0zFIdJAMJLpkVv3o4Q+CR5UKJAeOKkw 9FyGdEPWJ2MNmg5M+fR8X4r4n29jGe2RDxonKt/E2bOiVmmXvApv X-Received: by 2002:a17:90b:5587:b0:311:c596:5c6f with SMTP id 98e67ed59e1d1-31c9e7596edmr8092740a91.17.1752712856063; Wed, 16 Jul 2025 17:40:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFJWfaEIBJrrkBktHUzi6no3I5kzqqHpnPcoukb2qlZDTEQb3saP52NyLBAV/bDZgA9XH49eQ== X-Received: by 2002:a17:90b:5587:b0:311:c596:5c6f with SMTP id 98e67ed59e1d1-31c9e7596edmr8092693a91.17.1752712855546; Wed, 16 Jul 2025 17:40:55 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:36 +0530 Subject: [PATCH v5 13/23] 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: <20250717-propagate_tpm_error-v5-13-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4236; i=armenon@redhat.com; h=from:subject:message-id; bh=elWoGicsrQ1vrc7DXwImjeDd+wLVc/6RTeaJIRDgHBY=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFmyJ/ySuR6QZsz4wzDwU3iJQkcLW1xs1IXvYqRmla0 fJv9b86SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATCTmFcNfuUn/Bb2iTx27npb5 +sJL3yW/eDZ3PLT4ISikx78ivve7JsP/vAcHtiwK71/qO4Xnit80a5YD1wzVlglPFd5iGS4R+qy CCQA= 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752713076342116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. It is ensured that loadvm_postcopy_ram_handle_discard() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/savevm.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 509b71dc2666617ee3e7b707f46187ee5287d201..6f181c381dc6ecd996a1f8dbc25= cceead7ebe014 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1996,7 +1996,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]; @@ -2009,6 +2009,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; @@ -2018,8 +2019,8 @@ static int loadvm_postcopy_ram_handle_discard(Migrati= onIncomingState *mis, break; =20 default: - error_report("CMD_POSTCOPY_RAM_DISCARD in wrong postcopy state (%d= )", - ps); + error_setg(errp, "CMD_POSTCOPY_RAM_DISCARD in wrong " + "postcopy state (%d)", ps); return -1; } /* We're expecting a @@ -2028,29 +2029,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); @@ -2062,6 +2064,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; } } @@ -2627,12 +2630,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_handle_run(mis, errp); =20 case MIG_CMD_POSTCOPY_RAM_DISCARD: - ret =3D loadvm_postcopy_ram_handle_discard(mis, len); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_ram_handle_discard(mis, len, errp); =20 case MIG_CMD_POSTCOPY_RESUME: ret =3D loadvm_postcopy_handle_resume(mis); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713056; cv=none; d=zohomail.com; s=zohoarc; b=QWKeGXav2W0hNkY3O5Z59uzpl+6mJQyXwXsjF6EEzKEWMGJ0ap0zLxRqC8qsbi9TwGDb1D5J/Xz1k5XYhKaD8zfV3pEv4hqC572KzBcm1mXgMm2Dp6gHX7DPEt8jWK3DY/2x+xo0AWDSNXh3kkVhHy/6DpuHgzhohIz7oIFxqj4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713056; 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=J9K+eUMW8Z/qcW7yHAKiGqcj+tGq0Mu6JgX8ofdTzEs=; b=nUf62bluyv63GZb1tNOvVqBx6zMBSs/zcj12brpokcSrJ9yJeUmq7z6egA/ZETCp63e0xslFD0dWK5lzps/PUM8HYAa/iId8hg5Ll3D7flHvHZixOK5yOPtdHLz2V3jRaJyHW7M2OxPOizEbLryjh98Fuz8qRGX7u8Py5g1JCEU= 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 1752713056239688.702309290085; Wed, 16 Jul 2025 17:44:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCj4-0000Yp-BJ; Wed, 16 Jul 2025 20:43:54 -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 1ucCgP-0004OK-6E for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:13 -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 1ucCgN-00058c-FE for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:08 -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-107-yw6uQShQP12AaVsA5loRFw-1; Wed, 16 Jul 2025 20:41:05 -0400 Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-313c3915345so599583a91.3 for ; Wed, 16 Jul 2025 17:41:05 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.40.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:41:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712866; 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=J9K+eUMW8Z/qcW7yHAKiGqcj+tGq0Mu6JgX8ofdTzEs=; b=dn+WdUjAToslc+W/T8+cPWnIr6v16wuV4KT/jD33te5YlONk+dylANIq/kzh2fqIwW3Zb8 o7+qNb8ctoUlBnqK/xT2A08krPU1/eQGQoJ5JIFPCnjwWIeLDUycNiqK2LnEJtbfb7cALW WMN03CdKaIiuhvr3Q5jhWpy6CwKm3ss= X-MC-Unique: yw6uQShQP12AaVsA5loRFw-1 X-Mimecast-MFC-AGG-ID: yw6uQShQP12AaVsA5loRFw_1752712864 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712864; x=1753317664; 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=J9K+eUMW8Z/qcW7yHAKiGqcj+tGq0Mu6JgX8ofdTzEs=; b=XMW78FXK51LpoWHr7VIKuELqkBXs/GW1zTPM0hM54uDXNieG/plwdwM7qmRRE8hzmq mH0HUKdJ6JSKOr93l2ITSGLFVWOlXjmLwDGnZUPh+mHOFc4gXT1P6s44AcWksvgFkuPw joBUF6Bpu1F7IP3EXDOG1GSPvqI5soV0tYbymIgN9YxtiP6nQAEedUGx1L3TW9i04t0l 1W1PtGckQ+lN3a4A3YE/MmNr3KfEwB/7u5Y4uA5p2NHAegtWlRgT1klO2pXmBYv4C3iV +4qBisU6O5ZRZFOu57JhZK6KbGHpLSTmr+jt3LoVaZl2dhu0NTupKpG2p5aYoY+RxXH4 LNvw== X-Gm-Message-State: AOJu0Yyi/9ELEWMcb8J8Ou2AtWg7gFnjOsk3f581SCCUIdNFpj+sB/O3 QzE7zUM4O+Kzyhn5Wp0kbXj7PWmWqFZP5S4WeUQoch+RxybgIsYC7pQg6pwJe7gHwV96HxziRv3 HCivIzj+B3H7FYrkWwGCZY62eNfm8kw5yeqQOlRePPG2moXssE2i2zDOR X-Gm-Gg: ASbGncs1MrASiez7vJMRyCFtzHqDZ9ptjFeOLBygkG6UCGojuVNdP6BHAW3Arxpk7dR tAkGQzTvnA3VQz8qf0MZXCYK9L9s894z0i9/+dWAaSvn5TBr5t5sSEQ+BEkJSahQyuc47PdYb8E dhKW+tIZsCZghLTXTrd0eq1G0HZ2MOXoCi5UBzjWpnBwZNVBRqxnEm3Uso7klGFFhn87QLd4ZI2 vg4ZlaCZLkvBhK7W9r59IA1BTMnGkm9OOBLIeGgGEgCpR2v69UtxmoSvZ2Z4R9DeHsioC922pb1 DSAV+7/6Y5qi9RpkiE7MKclO5rhQ5trjNuQD6QK4Jdo1Oa8LZL5v X-Received: by 2002:a17:90b:1fc5:b0:313:f6fa:5bb3 with SMTP id 98e67ed59e1d1-31caf8f0301mr1405494a91.26.1752712864203; Wed, 16 Jul 2025 17:41:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGkM8dTfpF2MGZgEmCDjuNe3x0w0IUTLOIz8GQ8eVtHl2j2WX64K0wJBYBwpxTo/nwQwV5V1g== X-Received: by 2002:a17:90b:1fc5:b0:313:f6fa:5bb3 with SMTP id 98e67ed59e1d1-31caf8f0301mr1405449a91.26.1752712863795; Wed, 16 Jul 2025 17:41:03 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:37 +0530 Subject: [PATCH v5 14/23] 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: <20250717-propagate_tpm_error-v5-14-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=1826; i=armenon@redhat.com; h=from:subject:message-id; bh=/rjjjPmxInj+gIuoi4bwZ3v37E8vy00w8YIIPjAsuUk=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm6JMd3iQ7y12HaHvR7R1tJ69rVEq/cY9Z+p7FsGHv Dk66t86SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATMTKkeGfrrZKl2LPlAdatjtY p26Z0herulKHVStu2kqeK7ybY64KMDL8PzvRfGewQVmnPuf8qANvfGY+r+FilDewS/zyatO0viQ +AA== 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, DKIMWL_WL_HIGH=-0.001, 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: 1752713058074116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. Signed-off-by: Arun Menon Reviewed-by: Daniel P. Berrang=C3=A9 --- migration/savevm.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 6f181c381dc6ecd996a1f8dbc25cceead7ebe014..20dce4b43a181d2f47b6b22e7a1= 5aa4fc45cac5c 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2333,12 +2333,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__); /* Don't fail the load, only for this. */ - return 0; + return; } =20 /* @@ -2390,8 +2390,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 /** @@ -2633,12 +2631,8 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_ram_handle_discard(mis, len, errp); =20 case MIG_CMD_POSTCOPY_RESUME: - ret =3D loadvm_postcopy_handle_resume(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + loadvm_postcopy_handle_resume(mis); + return 0; =20 case MIG_CMD_RECV_BITMAP: ret =3D loadvm_handle_recv_bitmap(mis, len); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713218; cv=none; d=zohomail.com; s=zohoarc; b=HhmOygRAAOtTMJ9ljXewFbe0HRU7aEmbQ/y32Xcwg5IBeKqRmZuyzt16hzUBl++pO2TovQmKTi4jVwP3LvdLFYi+7QylkP2Wl8F4g41aHFWdM+swtpC3jdR7I3z7WMX53RwNBrYSIjORwHMj6ORUpOEOyyfk0L/9Xr3rrksEHm4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713218; 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=LEs+SYEqguJhCLdS7tcStaLYAZWgg+YbHnf/8bmXUUI=; b=NaEVMil1WlAbfpWJ5CpMXZ4L2neWhOGkxVTNfLZVv+wemRw1+fxKx+fpPmdctn1vMKbFIGK3L1MGlekxHG4l5a40mJBA/wNrLARlKO9Cjfks0V2FsiV6jqKJ8paPiqh/aIIEiVthz+GNXcA5Rbzmrk0Zk96cdKKeNrCiCoAmYgY= 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 1752713218593976.971683484326; Wed, 16 Jul 2025 17:46:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCjN-0001Nt-Px; Wed, 16 Jul 2025 20:44:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucCgX-0004Wv-NP for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:19 -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 1ucCgV-0005AF-NO for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:17 -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-34-aw4Gwfa0MBSudX-6eIUzuA-1; Wed, 16 Jul 2025 20:41:13 -0400 Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-3141f9ce4e2so583917a91.1 for ; Wed, 16 Jul 2025 17:41:13 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.41.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:41:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712875; 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=LEs+SYEqguJhCLdS7tcStaLYAZWgg+YbHnf/8bmXUUI=; b=jIz5oCm+SAuesjwgwqthTA1eNVUkBySgd6tMZXqxy9vL7lYqGoOzhdL0mZyG9l5TEuT87r gcTd8j1Dl3MyMvbZm/ylw1iRGANOR2uwHjaOsI6UpbqSZJDH0BjdPdDodLjO7EJrDJXzF8 GVUgs84t8/O6HCAYaF4X+DFPiM48Y6g= X-MC-Unique: aw4Gwfa0MBSudX-6eIUzuA-1 X-Mimecast-MFC-AGG-ID: aw4Gwfa0MBSudX-6eIUzuA_1752712872 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712872; x=1753317672; 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=LEs+SYEqguJhCLdS7tcStaLYAZWgg+YbHnf/8bmXUUI=; b=Hu2GI/kca5lj3j0C8vJ5iGNVvqJX/vxhzvVrMAyc37huvJ9WJ0xt9EQ/EytUMteLll F3nWNt0U0eE1CSe2oV5GVWeUQkE6h90ATuN3zCmKwvFVVoZpAaRmHE3jK4ujkl1dWnuV ZkM/xYdf7hDNL5Zjb+NCg1CVUAI6jLSl9jbzWNEb70FOOPOGLYhjyX1Etk8Z71UgLq/h BhwdWWgNM+F9fE97cV+9k2Cq90jwPITe6Po1X7AbDbcnsd7QHwPeu59PsBwrE3s+KDt+ rHcDgZivUg3I5LvkU2reBHwoD7NgkJ/XBszzV/xNmBOJH+ewdkwb8r/3YDPJsoPFxPOB 8s1A== X-Gm-Message-State: AOJu0YwqkrBq0Amv3pEEwHkvDFhOjthFFoXQHoeK+wlZuKZ8UB0uoPvc HZYopko6v7ySyoeDixrP5gpsQJe+s7rwtSX+/rPaAF3ydNc/QrxUSrHfU+QSdSRjWhYWUpcKXGx BHIwVe1dDxcg+b2WMdbRIBZqSMMbZ/b0a6wp+k9VTQsUPmtgd+hLQOqQ7 X-Gm-Gg: ASbGnctKfPwAhPns6omGCDbjZchF4vmGgsVNsNEIm7E15dbheVzE7eFI2grTxNzV/gx IFK8EFVp4g7SfW9dokqeWnEPpxTiF12FPzoHkHeDZa0SvEaSbNP/2I597u+UkWs9KY0fR6qwIYo E6Vvb5pAWzu9NrxC/9nqyLGYZjUKwvp7os6ZmsIHHKAByYMxGXY5e0eFHXUNeNrGcEIODFGx4vH Eqq7gmZfGQnpb1IACwwncpmolwyJZPy4iYBbqXSMw0/r7OB1bN0V6RiOr0YV3zmJ8ZlN3u1LQS9 sG43n+6JTHZLoapgUd6H2NCFZLVg8mg1ckCpTMYqGOTylfs405rP X-Received: by 2002:a17:90b:224c:b0:31c:260e:55e9 with SMTP id 98e67ed59e1d1-31c9f436cf9mr6313680a91.24.1752712872352; Wed, 16 Jul 2025 17:41:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHgUUIp3ZmguDOviQyWF8/f00ioJN9lGXgjxSNoA/VLA0y0puO6gVpdDTTyWBDfxZVLwYl2NQ== X-Received: by 2002:a17:90b:224c:b0:31c:260e:55e9 with SMTP id 98e67ed59e1d1-31c9f436cf9mr6313644a91.24.1752712871944; Wed, 16 Jul 2025 17:41:11 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:38 +0530 Subject: [PATCH v5 15/23] 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: <20250717-propagate_tpm_error-v5-15-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=2610; i=armenon@redhat.com; h=from:subject:message-id; bh=n0nXrr3xUpBRd2Vi52rb03R3CXPNiOL199BK7YzW3DE=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm+LLRfUazW2Scw+envDowKszzeffhnK9DVYp/tz/9 Yug8Z3tHaUsDGJcDLJiiiwNXwNkmwIKIyJtX16HmcPKBDKEgYtTACZyJpfhv5vgzzw/kWrf+D2G jeYrp99g+LZWzYDzgkte3ySG6K1OaowMJ99+KnvD5nMihuXbXu8NiR5fG4omTTdea5C4q4nNXlC GHwA= 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752713219932116600 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. Signed-off-by: Arun Menon Reviewed-by: Daniel P. Berrang=C3=A9 --- migration/savevm.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 20dce4b43a181d2f47b6b22e7a15aa4fc45cac5c..1cbc44a5314043a403d98351106= 6cf137681a18d 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2471,32 +2471,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, "%s: failed to read block name", __func__); 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, "%s: invalid payload length (%d)", __func__, 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, "%s: block '%s' not found", __func__, block_name); return -EINVAL; } =20 @@ -2635,12 +2638,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return 0; =20 case MIG_CMD_RECV_BITMAP: - ret =3D loadvm_handle_recv_bitmap(mis, len); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_handle_recv_bitmap(mis, len, errp); =20 case MIG_CMD_ENABLE_COLO: ret =3D loadvm_process_enable_colo(mis); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713091; cv=none; d=zohomail.com; s=zohoarc; b=m5d0PaAdNe86qiDpTqrC6bJIbS4mJA8EFuinlXR0FCNv6RgnozLlXP/PQ9z+wZvJpEbFOwR8Mh/hoRFU0xtLSNmrKgCEHPRGXLnH3fYdUjS8hmiHpbqgsOu5ed5EsCdVqAjKmHqHdNUD3Adw1uFiDQeehkeplN4eSSjWBStpzJI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713091; 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=gDj/wtayEVOjkCSsF9x+nokVDf08/XjnCG/dG5JwO4A=; b=Q/A2L2fLATJwMNkPxfZylMu8A2EVNkQ+/MMND4XYXu5oFE7VYGcmmBjNAXzqsW+tsMnRC5NDGS/g1+GqSA8h7bTF9LB5S/rm9l0sykN5k1B3KUnJ9uc/L6Jhy81ak1/v6syv/YzVi6qDef2ZxWYErxQk5TBhrrIM21pW9Pm8jak= 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 175271309144336.55354427514851; Wed, 16 Jul 2025 17:44:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCjY-000243-Ho; Wed, 16 Jul 2025 20:44:24 -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 1ucCgi-0004p1-De for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:32 -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 1ucCgg-0005Cx-Qo for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:28 -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-684-fTYDJzOyPgmw6vttHC7MKg-1; Wed, 16 Jul 2025 20:41:21 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-31327b2f8e4so369697a91.1 for ; Wed, 16 Jul 2025 17:41:21 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.41.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:41:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712885; 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=gDj/wtayEVOjkCSsF9x+nokVDf08/XjnCG/dG5JwO4A=; b=NF5VE01wALWojQyDDjJsYwSPW1owXGUAbQEcgGy3/pMBb2u+SrjpCCfxIyLJugnvMxcwVc PlY9XsIvmVf9kM1YHnABAsYtFAIc1nHv2fbEwijqB2807I/TubU1UvBMeL+1l4APi00L++ gT+7sRV1Ha4JI0DoH3P1ZHxLUm1o+2g= X-MC-Unique: fTYDJzOyPgmw6vttHC7MKg-1 X-Mimecast-MFC-AGG-ID: fTYDJzOyPgmw6vttHC7MKg_1752712881 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712881; x=1753317681; 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=gDj/wtayEVOjkCSsF9x+nokVDf08/XjnCG/dG5JwO4A=; b=xA66ld1mfW6UsG6AA6SYG0ICmYN9L3pT2C6wJIsMGLbLLkV6G4L4JAiD3MYRPAB/SL QNByuLhLHQVY85j8Tm1fJqqOB4ksVSxHeUce15LLbxQH2yYk8p/ZDgn2dQ3lgQm4HHkl /2K+VRAlFfWUr/4c3GEe7qWrOon3asaxu+xooNspERXJdcujLeNjYsEMgiM2j7qIwuCw pJlq4p22WTcOIxvdiHEXo3Irq2JhMNsR/OHD2bDX/9HmI+P5dT1vuXykL1FxsSazQUGg O2lA3K3NgV2pgFiplAvRYY4AWMkqr3I1+2rd34mUDv1Wwd5ls5kYt28NPSdRYwp6V+Ni q/Wg== X-Gm-Message-State: AOJu0Yxxat7/Zw2PksGGm3Xkl3G841yZh0KKswE1Dxrz3PaDFzXbslyP uqhRTIaPn5hJyDuNr5mjSFsbITS7682ATyeMFVDS9Q5ip6bwFACfMp/O6LdVmpkN6U4IAMNb+mu 32fyL1h7dJJPXVWOmklEz9m39rf66GkUWTG5FXi7iLXl3fF06gxg34Ql0 X-Gm-Gg: ASbGnct9fGqHtq+wPx2zDvLy8MhUANECtPwtCo0FsK5zXZ7y66Q3F/mysVZR4ZcO5ee 4d8mtoWipyf/OdFUO5H9S/7rGPqPgkKnu7gSl+Ri1P1hmhcEdax5Q1CsMhAHwez8E1RpYzK8Glz 1gwLrNUA7256tCkjBVJQb/YnA4vbZ4e2Lge1Z6jffLYvTJLX9gvf5KrmsvZcqhRf89Dw+xrODHy gfwP6qTeCeQbKu+KjVok9IlPlZ4W8qY3WN7Y0ji4ziMNmiZ2+VZgD1rQiklvLDgJ2d6g681RObZ HVCWO7aEZmzTKG7V74a7knVnSuj0KAAE9nTrla+J81bVZIFS3THv X-Received: by 2002:a17:90b:58c7:b0:312:ec:412f with SMTP id 98e67ed59e1d1-31c9f3df46fmr7458194a91.14.1752712880774; Wed, 16 Jul 2025 17:41:20 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFw+lasrN7QYCyqOgSiyDcvmdmT2lr1I9gXu0TRH75yYPPuQuz/WOxAcJ0r7bygF6BzsCkz9Q== X-Received: by 2002:a17:90b:58c7:b0:312:ec:412f with SMTP id 98e67ed59e1d1-31c9f3df46fmr7458168a91.14.1752712880404; Wed, 16 Jul 2025 17:41:20 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:39 +0530 Subject: [PATCH v5 16/23] 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: <20250717-propagate_tpm_error-v5-16-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=5924; i=armenon@redhat.com; h=from:subject:message-id; bh=XTF8YhWTohyOlAIQAVl80eGdE/tvsmYDAEuXU2hlVR8=; b=kA0DAAoWanolONkPMo4ByyZiAGh4RiGimX19HdPuM9nrQVq+BLW2N3Lei5mQxm18i9gxYHLLf Ih1BAAWCgAdFiEEgPVQHYJQcVhZPenXanolONkPMo4FAmh4RiEACgkQanolONkPMo6xWgEA7Qtk kNjziq0nwZCla/I2EYWu0THtCvqHLsrtBjUBGEoA/RttWjjm6FoX33QPq3D6JFbIkm1wji8DPG+ qrcTUvsMM 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752713092581116600 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, 24 insertions(+), 25 deletions(-) diff --git a/include/migration/colo.h b/include/migration/colo.h index 43222ef5ae6adc3f7d8aa6a48bef79af33d09208..d4fe422e4d335d3bef4f860f564= 00fcd73287a0e 100644 --- a/include/migration/colo.h +++ b/include/migration/colo.h @@ -25,7 +25,7 @@ void migrate_start_colo_process(MigrationState *s); bool migration_in_colo_state(void); =20 /* loadvm */ -int migration_incoming_enable_colo(void); +int migration_incoming_enable_colo(Error **errp); void migration_incoming_disable_colo(void); bool migration_incoming_colo_enabled(void); bool migration_incoming_in_colo_state(void); diff --git a/migration/migration.c b/migration/migration.c index 10c216d25dec01f206eacad2edd24d21f00e614c..326487882c8d41e2f89f99f69df= 0d9d4d42705e4 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -623,22 +623,22 @@ void migration_incoming_disable_colo(void) migration_colo_enabled =3D false; } =20 -int migration_incoming_enable_colo(void) +int migration_incoming_enable_colo(Error **errp) { #ifndef CONFIG_REPLICATION - error_report("ENABLE_COLO command come in migration stream, but the " - "replication module is not built in"); + error_setg(errp, "ENABLE_COLO command come in migration stream, but th= e " + "replication module is not built in"); return -ENOTSUP; #endif =20 if (!migrate_colo()) { - error_report("ENABLE_COLO command come in migration stream, but x-= colo " - "capability is not set"); + error_setg(errp, "ENABLE_COLO command come in migration stream" + ", but x-colo capability is not set"); return -EINVAL; } =20 if (ram_block_discard_disable(true)) { - error_report("COLO: cannot disable RAM discard"); + error_setg(errp, "COLO: cannot disable RAM discard"); return -EBUSY; } migration_colo_enabled =3D true; diff --git a/migration/ram.c b/migration/ram.c index 8223183132dc0f558f45fbae3f4f832845730bd3..607c979cc15a3d321e5e3e380ac= 7613d80d86fc9 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -3576,7 +3576,7 @@ static void colo_init_ram_state(void) * memory of the secondary VM, it is need to hold the global lock * to call this helper. */ -int colo_init_ram_cache(void) +int colo_init_ram_cache(Error **errp) { RAMBlock *block; =20 @@ -3585,9 +3585,9 @@ int colo_init_ram_cache(void) block->colo_cache =3D qemu_anon_ram_alloc(block->used_length, NULL, false, false); if (!block->colo_cache) { - error_report("%s: Can't alloc memory for COLO cache of blo= ck %s," - "size 0x" RAM_ADDR_FMT, __func__, block->idst= r, - block->used_length); + error_setg(errp, "%s: Can't alloc memory for COLO cache of= " + "block %s, size 0x" RAM_ADDR_FMT, __func__, + block->idstr, block->used_length); RAMBLOCK_FOREACH_NOT_IGNORED(block) { if (block->colo_cache) { qemu_anon_ram_free(block->colo_cache, block->used_= length); diff --git a/migration/ram.h b/migration/ram.h index 275709a99187f9429ccb4111e05281ec268ba0db..24cd0bf585762cfa1e86834dc03= c6baeea2f0627 100644 --- a/migration/ram.h +++ b/migration/ram.h @@ -109,7 +109,7 @@ void ramblock_set_file_bmap_atomic(RAMBlock *block, ram= _addr_t offset, bool set); =20 /* ram cache */ -int colo_init_ram_cache(void); +int colo_init_ram_cache(Error **errp); void colo_flush_ram_cache(void); void colo_release_ram_cache(void); void colo_incoming_start_dirty_log(void); diff --git a/migration/savevm.c b/migration/savevm.c index 1cbc44a5314043a403d983511066cf137681a18d..755ba7e4504d377a4649da191ad= 9875d9fd66f69 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2510,15 +2510,19 @@ 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(); - } + if (migration_incoming_enable_colo(errp) < 0) { + return -1; + } + + 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; } @@ -2641,12 +2645,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_handle_recv_bitmap(mis, len, errp); =20 case MIG_CMD_ENABLE_COLO: - ret =3D loadvm_process_enable_colo(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_process_enable_colo(mis, errp); =20 case MIG_CMD_SWITCHOVER_START: ret =3D loadvm_postcopy_handle_switchover_start(); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713168; cv=none; d=zohomail.com; s=zohoarc; b=NjqODc4pG/nwKi+1F13gzEHlEraik40uGZpfAPc63LrHLahnUjVtF2tx8kpsy3Zt0HX52ROxd02Oj4MZC5Qd1HIMO8mvOFzNmjzOsoQOTJJGfH6v4q2EmAoyDgAtp1yanf/JxSCVTco7WojT9aEtrqa13e2Xa8rGIuouSeYFgu0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713168; 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=LZtmhFWXk5EBlCK/Tfl2DDsfMrvf6BAx9oYobKQ3Me4=; b=eaZABKf4en+Y5pDNmfzpzXlmNETqRkzXAKUYfA8KegSQtzZn9KA8IAaiuVou1CbGKH4ARd/AGFphFQ4G2r0HFaNLazfMttNET1f2kyn3/zDhDe4Bch57gdfLpMSt//2ErcEVhsYrqlwSrqDD/53HcLdslOBk+TiJIRjkhOTqGDA= 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 1752713168619884.3536235206386; Wed, 16 Jul 2025 17:46:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCje-0002kW-6I; Wed, 16 Jul 2025 20:44:30 -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 1ucCgq-00057X-VH for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:38 -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 1ucCgn-0005EI-LC for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:35 -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-25-cSocseykM7eR3z3ihggDlA-1; Wed, 16 Jul 2025 20:41:30 -0400 Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3121cffd7e8so287969a91.0 for ; Wed, 16 Jul 2025 17:41:30 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.41.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:41:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712891; 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=LZtmhFWXk5EBlCK/Tfl2DDsfMrvf6BAx9oYobKQ3Me4=; b=YTTqSLTsywnFO+3w09g19q+Mgh3lcjXvPHxztF6iHi24pURmnyZnysCuUhHWW55vqMJL6e ljB0850A5bT2o7+u4h9H7D/gZxyu+AfofhCvYCUrYpWhh1pbXqE00nHDDKCNe0UnACaDid BlFqLLB+d+hSilniedlkkChyWkFZR70= X-MC-Unique: cSocseykM7eR3z3ihggDlA-1 X-Mimecast-MFC-AGG-ID: cSocseykM7eR3z3ihggDlA_1752712889 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712889; x=1753317689; 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=LZtmhFWXk5EBlCK/Tfl2DDsfMrvf6BAx9oYobKQ3Me4=; b=DK1BIkJBa33pkzE/bFKk4D7y2WZVdgdmGbI2dL3x5ygZl5CRpFXx3jKRZzIGEULfNp YbF/rsO9ts2CmjZT4wHLdNLALpVEFPWsDcUdTlLQTX1m/MKQH9utyGjOmdXNlz8kRC0q CPMJWT8EwfPbMmvkduMUOOaECoW9e8lut98L42Ay/9rZE9dQ2NwGsHEMHkfABNLNXgMs 9YvKAzjIC5t/zMRtM0EwrrbSkToJWoQlUqsHK7wRDHNft/uwxtQxfyh0px70gfYX0KHm jU688T/nE6Pjni6r7CjMdbL3vBtcZ8v5ABUPSTwfQKWT/rGdmVhDbrZJGlr5Xz0I6FHi Ywxg== X-Gm-Message-State: AOJu0Yx4Ap0yEKbg2DcUq4hAirlRIEqUzkjirrV9oOoaJhdtu+6V/gCU X+yZ7HUBnmL2s4Oy5YEq+hTU0NDvYICRlZWMhJpB2HahfMHugqY/gvu/xpKaMpo1x0CDgeb3fz2 +spQgy3LxIv7WSldPDj17OJ1fbydTEuE7lPuEelRUwGGw3EXBn8pdqprH X-Gm-Gg: ASbGncu6HjVJYGgwNn1jgZ4JgVvGs3AWkpb+AJCQkoDpBn99dga3sm1cckP4Cv0ReBU ZY9gqITldzX5rLQ9Nc1mh33VcyFDd+F5sx/QzNA4ftJY7O0m83tC5u80/ohOSMwGb8ZOyF7R10p Op/OqP0y2kVwqhzktxc2Z8CV7FDYsn3EGR7xpNs0PLgIgY9MAANl8ioqupW62Hgb+/ilHRsaa3N lSf7VdV6375Okev9emY5kpUTYbobOW+mhqrZK/jsboC9HY1LYBSajw2AA9QNDYVwgiflv3bd+rJ M7/zsh452zvgaHL5LI2/HCYoIjm1fzOgC+K+7UyKvlL5ub2wjE3p X-Received: by 2002:a17:90b:1fc3:b0:30c:540b:9ba with SMTP id 98e67ed59e1d1-31c9f44bc2dmr7176847a91.10.1752712889026; Wed, 16 Jul 2025 17:41:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFmebMCBMk6ihA+cLhuqZsidElzjATgVn9P5fJDdzUAkU21TMkIcG4NUghddoJtkoBc2/Y81A== X-Received: by 2002:a17:90b:1fc3:b0:30c:540b:9ba with SMTP id 98e67ed59e1d1-31c9f44bc2dmr7176803a91.10.1752712888566; Wed, 16 Jul 2025 17:41:28 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:40 +0530 Subject: [PATCH v5 17/23] 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: <20250717-propagate_tpm_error-v5-17-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=1672; i=armenon@redhat.com; h=from:subject:message-id; bh=WY426VfUBXwCjZ7dTs7nSVvKszQSlYt+qnrtxNljt5o=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm9IPXnt3W5fNrhuuMVjw2810r/Cd7Gp2W22Tuk1w7 RemkrMdpSwMYlwMsmKKLA1fA2SbAgojIm1fXoeZw8oEMoSBi1MAJrI6iJFhvrJWt7jNdIMTD5yy CjdfVXwqftVqJc96VidG5/8mGhVTGP4ZuSdfEK++uOD6lirFf8e0glQmu9i7JVieemj894LlRhE 2AA== 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, DKIMWL_WL_HIGH=-0.001, 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: 1752713169512116600 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. Signed-off-by: Arun Menon Reviewed-by: Daniel P. Berrang=C3=A9 --- migration/savevm.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 755ba7e4504d377a4649da191ad9875d9fd66f69..a23c242a5f05f85a8544924c464= 480810995815e 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2527,7 +2527,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 @@ -2540,6 +2540,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; } } @@ -2648,12 +2649,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_process_enable_colo(mis, errp); =20 case MIG_CMD_SWITCHOVER_START: - ret =3D loadvm_postcopy_handle_switchover_start(); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_switchover_start(errp); } =20 return 0; --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713204; cv=none; d=zohomail.com; s=zohoarc; b=mLgI+vQD662qb7tp69h+D1HPlvK9Sx15JeDCPpQ9DX/tQ5AJ9m+jAsIuuXoxOTLZKemNllYGTUGab4nQbRLCcHIoYJ0xLi85KnllhB9ZuYu9MAkXTmJTj26qi0hYC038HGaC8Fyj1/MxWPrED26BHdlCgs7hWr95NrCHmLQiVeM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713204; 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=Z5XKbRcRSIPCBZNmfvG6TcJ0FmgcNEAJ0e0/ZYmU+Hw=; b=NbpfXexPSYI1OwdQAhZmNeoc1mY1okeldMtXN2REjHWmThGo0a42RnW9gouYMZPX2xVixPZBg0hwYf/w94cNJImrOmYN7O0tS7xetjrP1rqvJKukwNBFJp0uV7pqJNFY/T/V3oNfY1Q/aW7Fe//NVaUxWr5IkWGsYtaw9ijBGTA= 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 1752713204280613.585752347487; Wed, 16 Jul 2025 17:46:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCjj-0003EX-1l; Wed, 16 Jul 2025 20:44:35 -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 1ucCgw-0005Bp-45 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:47 -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 1ucCgu-0005Fq-Hd for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:41 -0400 Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-65-DPYzVHS-OnKJ-Of1AH9Btg-1; Wed, 16 Jul 2025 20:41:38 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2356ce66d7cso5213665ad.1 for ; Wed, 16 Jul 2025 17:41:38 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.41.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:41:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712899; 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=Z5XKbRcRSIPCBZNmfvG6TcJ0FmgcNEAJ0e0/ZYmU+Hw=; b=Ied3NSvLSUVf3wOc1fxq23ce2RrDrSgmEErBB8U35COpB9fRvcc7Cat3yT5ZPT8L1see0V L4eEQYXp5XF8KCTtJtWLgKnsbNz4rjmvnf799pOeDjrlymDytVB30lK4wFpWZteRKqOYbT yI/9uQBrSAxgDIbkmhH6FOke6H9Qi9U= X-MC-Unique: DPYzVHS-OnKJ-Of1AH9Btg-1 X-Mimecast-MFC-AGG-ID: DPYzVHS-OnKJ-Of1AH9Btg_1752712897 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712897; x=1753317697; 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=Z5XKbRcRSIPCBZNmfvG6TcJ0FmgcNEAJ0e0/ZYmU+Hw=; b=r/U9wswyYuliz2PCDGrVu89arYRpTlUxfWZhrlGTAgqBftO6ssqMnAsiq+x3rAtI9T snaEaCznSinCp3PjebMnHUfMXgVStijduDcCOI1NWoC5ABciQ6+TwM/XQrmabKbjRtcA HbbfKXdlXJ87862ZQnSMJ15idhYYt/V/wwH5KZCyrtKJkQrlhQx1CpVpXo/XYuactfHb 8K3aZPZDzE0LWJB9BE1OzxbRsIIhUwQLA4+QmfuGUQNY7upLxtVeA3sOdFc4oPuJ64T6 nPPpv4bSWlF1Pc/YoMt1lAbx2IIJpkeO6BN3i1sGn1HnInDKENt3M3atKJyI+ywYG58e HtVQ== X-Gm-Message-State: AOJu0Yx2i3ccdDETWTvN8xi+/0fXlityPXBFcCqnAJapxjCQzJJRQo9k 0VTUAonysomy7SepsIeMdNt3OiSIv/KMh+u/eiZBxMqsfy1ssYBKu0s5jWp6ifPePRM9jHjLskz jBDxdxVb/e0mZO+DPx5lUistl/T+gE1HtxRIE+ODAG66YKX7N8u3rw79j X-Gm-Gg: ASbGncv1VyHoBfN9v3pLMftH2a5Ag05f3Y6Bv0BJycIADg5aio3FsrxJrXPINwinbwJ 2QWIzKbHK4rYoO2LwUp1bz4piBtj4B1ILzAC09ZDW73NYO2ukZjaZhi92EdAR0aBpeycusS017+ iBLYW6sDf+W1ZM5w8iX38iEF0asfueSnWv+qEm3j+hIBqN2QN54HwnIOX5WldlV3JeRTztGd+TZ tHGO8bnJePOAByFqNyImBegcsHIYTk8j66H+8DwX9+yoAKjngBep/CtduTPxhkG+iT/dCSg/1fe nvrFScgn/uJcZn59cGEKwgJPyOE7u5wU4DEqAZVyXplxio3jHg3I X-Received: by 2002:a17:903:1aec:b0:235:efbb:953c with SMTP id d9443c01a7336-23e256b745bmr55392335ad.13.1752712897265; Wed, 16 Jul 2025 17:41:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGGA4FWETPFJustoxpuHyML6tDOdokn2/vIAfMCEAUjHvcCxyneKgsGYQHeYOwDZ/E069jmaA== X-Received: by 2002:a17:903:1aec:b0:235:efbb:953c with SMTP id d9443c01a7336-23e256b745bmr55391965ad.13.1752712896776; Wed, 16 Jul 2025 17:41:36 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:41 +0530 Subject: [PATCH v5 18/23] 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: <20250717-propagate_tpm_error-v5-18-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=5659; i=armenon@redhat.com; h=from:subject:message-id; bh=huL4+4k5Kd2px2iKHFS0kvTDdFSUkaFe+Dk0aOZFwn8=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm1J8S6vsLo7n1tF1X11Ewhnfyk50F3C2Vz7xWSRRb 7+Q08mOUhYGMS4GWTFFloavAbJNAYURkbYvr8PMYWUCGcLAxSkAEzGrYGR4xzBn+wUpn735nf+X iPR5u7z/kfZ8pcN5q+8mf48bX63OZ2T4MC3zXNBby7bF06O2ePXuOL/zcqmGP9dUl9Saj5+u3jj 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, DKIMWL_WL_HIGH=-0.001, 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: 1752713205868116600 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. Signed-off-by: Arun Menon Reviewed-by: Daniel P. Berrang=C3=A9 --- migration/colo.c | 5 +++-- migration/savevm.c | 23 +++++++++++++---------- migration/savevm.h | 3 ++- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index e0f713c837f5da25d67afbd02ceb6c54024ca3af..ddc628cab4194b3cb82388c5e87= 8286c820004b2 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -686,11 +686,12 @@ 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, &local_err); bql_unlock(); =20 if (ret < 0) { - error_setg(errp, "Load VM's live state (ram) error"); + error_propagate_prepend(errp, local_err, + "Load VM's live state (ram) error"); return; } =20 diff --git a/migration/savevm.c b/migration/savevm.c index a23c242a5f05f85a8544924c464480810995815e..47c656734248c2b7a6d2001c6ef= 9b3e83af11bac 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2102,7 +2102,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 @@ -2453,9 +2453,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); @@ -3055,7 +3055,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; @@ -3066,6 +3067,8 @@ retry: =20 ret =3D qemu_file_get_error_obj_any(f, mis->postcopy_qemufile_dst,= NULL); if (ret) { + error_setg(errp, "Failed to load device state section ID : %d", + ret); break; } =20 @@ -3073,20 +3076,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; @@ -3096,7 +3099,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; } @@ -3160,7 +3163,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); @@ -3234,7 +3237,7 @@ int qemu_load_device_state(QEMUFile *f) int ret; =20 /* Load QEMU_VM_SECTION_FULL section */ - ret =3D qemu_loadvm_state_main(f, mis); + ret =3D qemu_loadvm_state_main(f, mis, NULL); if (ret < 0) { error_report("Failed to load device state: %d", ret); return ret; diff --git a/migration/savevm.h b/migration/savevm.h index 2d5e9c716686f06720325e82fe90c75335ced1de..fd7419e6ff90062970ed246b3ea= 71e6d49a6e372 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -66,7 +66,8 @@ int qemu_save_device_state(QEMUFile *f); =20 int qemu_loadvm_state(QEMUFile *f); void qemu_loadvm_state_cleanup(MigrationIncomingState *mis); -int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis); +int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis, + Error **errp); int qemu_load_device_state(QEMUFile *f); int qemu_loadvm_approve_switchover(void); int qemu_savevm_state_complete_precopy_non_iterable(QEMUFile *f, --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713050; cv=none; d=zohomail.com; s=zohoarc; b=imVVfQZqOvs2XFr18xSAT/c7qVs8iX8RUJdRAydnupb33MDqphI8eKKYaUGpVXLfVtGxcuGwVne57/w9W0uwH6Ay22KpV3JN5emcfa4JvL1fYVLElKiyi4Ji24H4Mk0hGfWo/E6aAyOA3mvCGpVgA84Xx+8b0dqJl47Sf9qrq0A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713050; 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=PacmK3nktLw/dOt2en/sm4JJ0fUUCRH4QiuWUXDRJc0=; b=MjLFERVGHgk4OBAxMYlW3BH8BM6IO2HHaxkj3oLy+BfTKMpI3TvebQh95qaZr2kBlexiIm82YTLp29BYmJu94xZNy2KA18TOMV/ucWs86TzNW/U4oA3Ll0C8YDvS0tGN7aI2CfvX31gkmezGmpJWjq4Xe3sDC3T1263sPvQw7j8= 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 1752713050332552.9667270710834; Wed, 16 Jul 2025 17:44:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCj1-0000Ac-HA; Wed, 16 Jul 2025 20:43: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 1ucChv-0006W3-Lc for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:42: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 1ucChu-0005Qk-3h for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:42:43 -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-49-2qdeio7nMzGiNMCD7SafrQ-1; Wed, 16 Jul 2025 20:41:46 -0400 Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-313fab41f4bso505974a91.0 for ; Wed, 16 Jul 2025 17:41:46 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.41.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:41:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712961; 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=PacmK3nktLw/dOt2en/sm4JJ0fUUCRH4QiuWUXDRJc0=; b=O5aE/13/v984P1FC/78WaE+sWDyx96gfFjp34hjjzajoyPoNyNP3ZSxU+RQkzHfZrY2Yvj 4GxCj4sK3Rf+xgWR7gIQoYQqgP65ugHnsh+KGlCgY0INMp72LWuTgug4L+2Yte0S3JsEmZ n7eCslKOXudKXDEglNGJAqSsu1vj0OY= X-MC-Unique: 2qdeio7nMzGiNMCD7SafrQ-1 X-Mimecast-MFC-AGG-ID: 2qdeio7nMzGiNMCD7SafrQ_1752712905 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712905; x=1753317705; 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=PacmK3nktLw/dOt2en/sm4JJ0fUUCRH4QiuWUXDRJc0=; b=de5R5X2kcmrIL0oD6kQGnJsfLdbNZjsj6WEp8N88MNgt81pAIbwVl+m5QfK/p3fWFx 0efj7U9uQ/uPs8bPJ6gD4kZo8OiguA1jd9IM3T9pTEgJvdlNKHNt6DILEzGC4Vhmgkzw 3lbwY+loQPc/hZnR31iKSYYygbafqznF2DAORl7ddfXeyIvV7HZ9YUfcv3quLszvAGd6 9eyS2QfiLyMTSlfE2Dp0ASmhwO9mNbFvvlESdXOKwI8iv6XxYylhBJVXBhFEx0wWDhtf TO4ybDk00tAsqvdTKXlG2jPf/FQaDQ5FapNMwZqohoFrsPpV7uy+/dnY5nJ2RE4FhHll uwIQ== X-Gm-Message-State: AOJu0Yzfp4C0R7TUf+O2kL7YujhDqWIDcEr4asJHgyifbUK59W3nfv/e 3IYv0MGC4szTb1kU4Y8CrpG5dtjE3pJcFM/f4uGKGVOunlSLmWphJKn6Tf+GXe/0KFz4w6H07FM vN4EFCoLD8gmED8KxJicbMVi69C3YT+qxzMqH9pJNXJ/rMcTBTWPTBwYE X-Gm-Gg: ASbGnctWwPfzlPIimIqx7b4rCYqhqdqLOeT9/blJPgLRvI5O2EJbb6M9BoW7TMe+T1O GSWlADeSKnSq28cs4UC9FmhQi+3FVvLPv+d9XSiaY+GQcNwxjhi4Cd3WAp65T2xbpvhcl/Orjyz 2rfGKFJ2DZ8OK7Xvz6P6xv+sSygHG/dW2SKJI8IJ5K2AT8NYm517jm+3h46Xs33zq8wmLy3U4WE PwrhfE16FHIdJj0Q/3vsdiB7+AoD/mG9mVc6vDlCeD+afxDFMBKDjpJORKZ12IKK3hO99wMQQ9f l+YHJl7wesluqZXZd71o5gswngR/4xYUYhXzj+l3/zPk6Pb7EG7+ X-Received: by 2002:a17:90b:2682:b0:311:b5ac:6f63 with SMTP id 98e67ed59e1d1-31caf8db5aemr1157477a91.21.1752712905331; Wed, 16 Jul 2025 17:41:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE/AGU0AkHC3JsDsDztHQxtWQCknSKRzifAq9ibOMH7Vbss/oB56OPtYw9uY1JzYBF1FCbBFw== X-Received: by 2002:a17:90b:2682:b0:311:b5ac:6f63 with SMTP id 98e67ed59e1d1-31caf8db5aemr1157459a91.21.1752712904929; Wed, 16 Jul 2025 17:41:44 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:42 +0530 Subject: [PATCH v5 19/23] 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: <20250717-propagate_tpm_error-v5-19-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , Marcel Apfelbaum , Cornelia Huck , Halil Pasic , Eric Farman , Richard Henderson , David Hildenbrand , Ilya Leoshkevich , Thomas Huth , Christian Borntraeger , Paolo Bonzini , Fam Zheng , Nicholas Piggin , Daniel Henrique Barboza , Harsh Prateek Bora , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Xu , Fabiano Rosas , Hailiang Zhang , Steve Sistare , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Stefan Berger , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , =?utf-8?q?Alex_Benn=C3=A9e?= , Akihiko Odaki , Dmitry Osipenko , Matthew Rosato , Arun Menon X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4861; i=armenon@redhat.com; h=from:subject:message-id; bh=5HGSLUPUo3rERZveK6G5D5oQLN1hltjUPDDQFU4fF5k=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm1Lsqur/6WGWajZtV/jVv7wIlbZbP8M3OdVoufsHi 4/eZWs6SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATCT3ByPDrLaeayWlXxe8idVe I7wxcK/Rw2nZPHkWkSx1TwKtLfTiGf476m+sXpL20iZXdfo3vRn7C/bselE0O+n5ESa7yVJWnVf 5AQ== 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, DKIMWL_WL_HIGH=-0.001, 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: 1752713052016116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. It is ensured that qemu_loadvm_state() must report an error in errp, in case of failure. Signed-off-by: Arun Menon --- migration/migration.c | 5 +++-- migration/savevm.c | 25 +++++++++++++------------ migration/savevm.h | 2 +- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 326487882c8d41e2f89f99f69df0d9d4d42705e4..1f0a8bd6ab28ff09bb76919564b= dbfbde35c5e42 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 47c656734248c2b7a6d2001c6ef9b3e83af11bac..ea64603b75ead17bcc21aebfa49= ede3991387fb7 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3133,27 +3133,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 @@ -3163,7 +3160,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); @@ -3181,8 +3178,12 @@ int qemu_loadvm_state(QEMUFile *f) if (migrate_has_error(migrate_get_current()) || !qemu_loadvm_thread_pool_wait(s, mis)) { ret =3D -EINVAL; + error_setg(errp, "Error while loading vmstate : %d", ret); } else { ret =3D qemu_file_get_error(f); + if (ret < 0) { + error_setg(errp, "Error while loading vmstate : %d", ret); + } } } /* @@ -3468,10 +3469,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(); } @@ -3542,13 +3543,13 @@ bool load_snapshot(const char *name, const char *vm= state, ret =3D -EINVAL; goto err_drain; } - ret =3D qemu_loadvm_state(f); + ret =3D qemu_loadvm_state(f, errp); migration_incoming_state_destroy(); =20 bdrv_drain_all_end(); =20 if (ret < 0) { - error_setg(errp, "Error %d while loading VM state", ret); + error_prepend(errp, "Error %d while loading VM state ", ret); return false; } =20 diff --git a/migration/savevm.h b/migration/savevm.h index fd7419e6ff90062970ed246b3ea71e6d49a6e372..a6df5198f3fe1a39fc0e6ce3e79= cf7a5d8e032db 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -64,7 +64,7 @@ void qemu_savevm_send_colo_enable(QEMUFile *f); void qemu_savevm_live_state(QEMUFile *f); int qemu_save_device_state(QEMUFile *f); =20 -int qemu_loadvm_state(QEMUFile *f); +int qemu_loadvm_state(QEMUFile *f, Error **errp); void qemu_loadvm_state_cleanup(MigrationIncomingState *mis); int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis, Error **errp); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713167; cv=none; d=zohomail.com; s=zohoarc; b=broi61MC3WKVLFKBX01VdtZuWpnSVEaX5oW2zPom8MVay6LeatextX9jWPQhWU6wAh+fM2YkgnI698KKbzHTXxxEYDHHt3vr3UPEarFRHHgq3qssNGNEhdJk/AeOK+ISlhWN6HfCSeYY9K3GZ/17x7XZTxI8J8BKEVdchMkHrSQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713167; 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=v3M7SxUYCWLjJ1Ljl3xoXUUFS5YnBYCEqF7qG6inXOs=; b=Y8+ppoBuBdFmaJzDuClXA4cKkoIO594mN5CTaUUiCJcbRD7g5O1tVR4y12vVXisCHiHTOEgx3wlONMyvp4Hv5erdAwx2TqQcPz6jZrKbfrmCR1lovPzKk6GDRjY50ziUCVcgNPV+xQPzLJ/HwQUNK0ov4qSbyvKR+RvrcL4Ln40= 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 175271316736343.99841531990069; Wed, 16 Jul 2025 17:46:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCjs-0003xW-KT; Wed, 16 Jul 2025 20:44: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 1ucChD-0005Qh-Mo for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:42:00 -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 1ucChC-0005IX-0m for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:41:59 -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-614-uBPAjO0OMoSnBBaYMK4EfA-1; Wed, 16 Jul 2025 20:41:54 -0400 Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-3138e65efe2so358463a91.1 for ; Wed, 16 Jul 2025 17:41:54 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.41.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:41:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712916; 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=v3M7SxUYCWLjJ1Ljl3xoXUUFS5YnBYCEqF7qG6inXOs=; b=BHY4sScSf6VJg4fvDRaU/pDwYxXqB5RlzdpSk2vh3vBIcDV3bWYLJETiQxju6ulmRRT4nY x6bKYvB7w0sXYdyvfM5s8EvoT4pU/RFjgTCy09Nat0KzpGkVCHes3skNc45Vci8Z+g0lzy TuTOb674F6FJ3oZHSb9+OaqmtIC4w30= X-MC-Unique: uBPAjO0OMoSnBBaYMK4EfA-1 X-Mimecast-MFC-AGG-ID: uBPAjO0OMoSnBBaYMK4EfA_1752712914 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712914; x=1753317714; 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=v3M7SxUYCWLjJ1Ljl3xoXUUFS5YnBYCEqF7qG6inXOs=; b=b7+wjCAd3BgL1gtW6OOKxx+WNBkznAqtfWbJJtBhJoPrq7GASpqF9Xp1B6msT2T6Z1 Kq+elmQCHH5+ggkxxxlj5ss3Ag5/oiaqkcdlZiR3b/J6H0R7SPfab+r8n6X5z0cH1j4s 5PZ8HCUpDTN41eVo2hEyytvUJBnnqwXxWS8ifraGyzr6EGGD8LX/oQpYskMgKxtoKItG LzRy02KFf+aQHm1cf739Izifbhhs0m8d/yqR6Ghm5/Pzrz13l0cC2FIT4FnCylHBx72S QGmeVWtgpNvVj3qERGXTIRwE4lusB/lKGMj1PFdzagx9stFNiwq8Un2A/OsKvoszW5GA x0tA== X-Gm-Message-State: AOJu0Yy2Q1vHO/E9k26xzHYJAcwy6LA0Xh9CF6rhegLQ1L+f0Mh+eM7e rsyWzufumP2ItjZ/zT5jjL8mHRnTURvSI1EjqkMh2P3HPVsCSfxDvV/ulOWxXvKspu2KhIY+7oF FGNjWyD/dKg6lPK36N+NWBS+vRw1dL5DxeRi7Czb/SeCNjgItGU+BOOTf X-Gm-Gg: ASbGncv8kGsSl1lQxmRuV/tvUC+sfppKE6V82URhfGCemlGgqHNI1NdBYVVrjUmkr8I p1adcVKNqHvMaj+lNiDhjDkcUIoFmAJQZvlxcTdXrLnIEOr1Y+7Tj6wxL6pQjp2/c37COEm2a7Y ZjQzOGAAiXyMzHpPt0d1hrIaQ4k6r3MfxS0ugyTz5UED2fyE0G+wqNtNnpvcEvo2SOloDY0yvln GrK2kP8w08tmgSbRL9W+pAhUSYN1cPMB894bSQAnxuupdLUlON8X7PoPhWCOGrfN7NmzfAwqi0M iauXxWEa+2DJqQMJAuAWgCqLUpbTrKeyj8qIql9Ybpeke1cMaE/5 X-Received: by 2002:a17:90b:5281:b0:311:e8cc:4256 with SMTP id 98e67ed59e1d1-31c9e758d15mr6362078a91.22.1752712913652; Wed, 16 Jul 2025 17:41:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHHu9ZcYYgxgG22WlxYVyPLEn/nx3QQkI27v+yt7fjl834YregjN1XJJxohB71hLq8S8jeK9A== X-Received: by 2002:a17:90b:5281:b0:311:e8cc:4256 with SMTP id 98e67ed59e1d1-31c9e758d15mr6362037a91.22.1752712913171; Wed, 16 Jul 2025 17:41:53 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:43 +0530 Subject: [PATCH v5 20/23] 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: <20250717-propagate_tpm_error-v5-20-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=2721; i=armenon@redhat.com; h=from:subject:message-id; bh=CYxCKw7STkdES3yRF1OwMbrxhOvfWfJPBgR1HKcyPFI=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm9IN54d5z368uHSs3rRxZ7Ya36w03rqmewy9Hc/2m 5z6HPCro5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwERiHjL8FeEJ3hOcaK+j3+aa JWNybVZFsdGutpMZ/QEL1cUqPhxjYmQ4MqHMbG1c6qS15250i67xn3K16aNMd89XEyn3RVd/Xrn FCgA= 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752713169578116600 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 | 5 +++-- migration/savevm.c | 6 +++--- migration/savevm.h | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/migration/colo.c b/migration/colo.c index ddc628cab4194b3cb82388c5e878286c820004b2..7291df0d47d8e308f8b71973c90= 8b5a05ec7f4d7 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -730,9 +730,10 @@ static void colo_incoming_process_checkpoint(Migration= IncomingState *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, &local_err); if (ret < 0) { - error_setg(errp, "COLO: load device state failed"); + error_propagate_prepend(errp, local_err, + "COLO: load device state failed"); vmstate_loading =3D false; bql_unlock(); return; diff --git a/migration/savevm.c b/migration/savevm.c index ea64603b75ead17bcc21aebfa49ede3991387fb7..0fff65c96344c65191353311e72= 730cd6e3bfb23 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3232,15 +3232,15 @@ int qemu_loadvm_state(QEMUFile *f, Error **errp) return ret; } =20 -int qemu_load_device_state(QEMUFile *f) +int qemu_load_device_state(QEMUFile *f, Error **errp) { MigrationIncomingState *mis =3D migration_incoming_get_current(); int ret; =20 /* Load QEMU_VM_SECTION_FULL section */ - ret =3D qemu_loadvm_state_main(f, mis, NULL); + ret =3D qemu_loadvm_state_main(f, mis, errp); if (ret < 0) { - error_report("Failed to load device state: %d", ret); + error_prepend(errp, "Failed to load device state: %d ", ret); return ret; } =20 diff --git a/migration/savevm.h b/migration/savevm.h index a6df5198f3fe1a39fc0e6ce3e79cf7a5d8e032db..c337e3e3d111a7f28a57b90f61e= 8f70b71803d4e 100644 --- a/migration/savevm.h +++ b/migration/savevm.h @@ -68,7 +68,7 @@ int qemu_loadvm_state(QEMUFile *f, Error **errp); void qemu_loadvm_state_cleanup(MigrationIncomingState *mis); int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis, Error **errp); -int qemu_load_device_state(QEMUFile *f); +int qemu_load_device_state(QEMUFile *f, Error **errp); int qemu_loadvm_approve_switchover(void); int qemu_savevm_state_complete_precopy_non_iterable(QEMUFile *f, bool in_postcopy); --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713278; cv=none; d=zohomail.com; s=zohoarc; b=VtwwCEJMnMbdLNCcs8hDcPpcQXajk64YcT1klCZKpHmbhTDENoCFaXkJG0gdV89vqkBwArBVuz2Hk39ctHMwlTYdLkGChGweI+J4HelyV8xeHx7JuX8TBOIWdu02oQuQ3gMahYEvx7HKp9xZcbcPxwNvobb5vCH5UJkAicTCODI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713278; 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=UaNetO2Qn1xjqwHWbrWgZcK9a9Y4Ysw6MagpqH4pFTg=; b=SvogFoggxTpvZJRhMyMKgIlc0YyIQahhVWM4h7fxNiqZMPqM4S9JIOjcFrhrJRpEIQOqAFF1UCjHHsmQ/BAQdMpU5oLP9yLWbZC6ZZMrFK2m4+tEAwcGQH3fH5dmt98BcHeSNYxJYo217zE0pZxIcx5gNGwrMLnk9eRSwQZ1lp8= 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 1752713278181976.7178453107907; Wed, 16 Jul 2025 17:47:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCl0-0005OY-3c; Wed, 16 Jul 2025 20:45:57 -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 1ucChO-0005ju-AD for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:42:11 -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 1ucChL-0005KX-HI for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:42:09 -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-665-kqK5JYbcMVSYdazTzrpVgw-1; Wed, 16 Jul 2025 20:42:03 -0400 Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-31cb0471b45so159416a91.0 for ; Wed, 16 Jul 2025 17:42:03 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.41.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:42:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712925; 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=UaNetO2Qn1xjqwHWbrWgZcK9a9Y4Ysw6MagpqH4pFTg=; b=M/pRXlzSDVxaFbwfvc+puPJ0LFc3gQUXQ9Kz4btU3IjDq9SSzrkBMAVs5BY/lzFkL5V8G8 baX+pglCpN/IIyAHek0V3g7WJm3285b5f1lqQ3cZ0ZMfTSYFD3ZaAELuBPEz6yxPY7awfo iFCZC7i2jbTgmrdaNZ5tZAR8XhQAHjM= X-MC-Unique: kqK5JYbcMVSYdazTzrpVgw-1 X-Mimecast-MFC-AGG-ID: kqK5JYbcMVSYdazTzrpVgw_1752712922 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712922; x=1753317722; 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=UaNetO2Qn1xjqwHWbrWgZcK9a9Y4Ysw6MagpqH4pFTg=; b=LCk0YH1JEdiPsL3Hg/NI0hKPnXACKobIJBB9Oig34JbPaTGDHYynDITUrJKjanbm2I tFoNq7nmCtrZQc458tSn3SaowYq7dehqAs0PSsmyIiEX7a/whRzS7ZKWTza1KsiJizpI YwCMMDiiOgpKF2rnjRyLwf5/JLilWtjFE+1/REi2ksKnS1IA3NywmeKw/c5dHwPZPq77 0YwXIwo9MPkX7Dhao8FoPFfxwYk/XcpBCHBmYkHvh1gZ86m08uxsoeaAc74wn7S6pCXB rq/jSf9xF9lbKKQy2YwdBEEMazGQpPgg+pw2oboqSs6TJ4LwQW7MJdA6b5pxPqFoWZPN RCpQ== X-Gm-Message-State: AOJu0YwDs/+Z564ttCEIiUlgM376LkC0Omecgl0TUDjzyhIDRsl/X8LU chQW87Lpj2l7yJlc8yRU8SO9uB9VV1iHeDZ7EYuxYMd3ZDNlbCP5uWlRJJcT2MF5SbF1lbGrozH 0Z70i4WmKEvHCUmf7pWWtyPNQXVcC/Cm09GgMyVD1rqMMEmjp/URWbAgc X-Gm-Gg: ASbGnctySMq4yuVQW7H/UG1HtxOInayi01ieu22TCU87FbDspJl1RONVLmLbhxATglM mfB4SvGUSXSfjaPNKYMzMknXtY0GL2JA9cVEh7xcEHVt7MxuhXs2AhGfBQLCLGqcHC+RwP3VAY/ hKPAO7KOsEzlT/tdjs2sS6QB2DBWBNzVzd+EWnJp8DDAvGSXJPr6UjQ/4RGm6kG9HLLLQR/LGaI yvIpGWmvTrUnX3KP13ADyrdmS3ZBo32oY7qg0N4O56/HxX7nIsb0MtWJ725zZ+J/hE02tewDB+4 SclsHE2lwZe4uAKT9KXgHrt0GKujSfx/4XAEDbCC5pIZTwhje72J X-Received: by 2002:a17:90b:5446:b0:311:482a:f956 with SMTP id 98e67ed59e1d1-31cae9989e4mr1609991a91.5.1752712922302; Wed, 16 Jul 2025 17:42:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IERJSQdSSL8Vo3WArCwO2D+1ROILgOberqXZPMTsuecnhPfXXsILl4OADCEzpvNuMViRToPgg== X-Received: by 2002:a17:90b:5446:b0:311:482a:f956 with SMTP id 98e67ed59e1d1-31cae9989e4mr1609954a91.5.1752712921886; Wed, 16 Jul 2025 17:42:01 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:44 +0530 Subject: [PATCH v5 21/23] 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: <20250717-propagate_tpm_error-v5-21-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=2959; i=armenon@redhat.com; h=from:subject:message-id; bh=42uhy85WkdN9bMSUXABk6f8LoYWAKhZekD76Ts14rfw=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm/LcVSX3Ww+8nSl1JsVzYSerZG50kLWXseV9DaNFb F75j1U6SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATOT9IUaG1vJed0+Thc5GNY8Y btmcWfEr2Tu16tM/4SPispMdzlebMDL8Y7s8JUdf5enJr3dYJS4mROyUKjZf3Pd9qZx7WhS/zF8 mAA== X-Developer-Key: i=armenon@redhat.com; a=openpgp; fpr=80F5501D82507158593DE9D76A7A2538D90F328E Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.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, DKIMWL_WL_HIGH=-0.001, 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: 1752713278511116600 This is an incremental step in converting vmstate loading code to report error via Error objects instead of directly printing it to console/monitor. postcopy_ram_listen_thread() calls qemu_loadvm_state_main() to load the vm, and in case of a failure, it should set the error in the migration object. When postcopy live migration runs, the device states are loaded by both the qemu coroutine process_incoming_migration_co() and the postcopy_ram_listen_thread(). Therefore, it is important that the coroutine also reports the error in case of failure, with error_report_err(). Otherwise, the source qemu will not display any errors before going into the postcopy pause state. Signed-off-by: Arun Menon --- migration/migration.c | 2 +- migration/savevm.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 1f0a8bd6ab28ff09bb76919564bdbfbde35c5e42..efd02d917cfe4d1221907123ead= d98932b02e8bc 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 0fff65c96344c65191353311e72730cd6e3bfb23..4f67eebe5321c175d51e8029e36= ceb336c98ad1f 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2086,6 +2086,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 @@ -2102,7 +2103,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 @@ -2128,7 +2129,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, "%s: loadvm failed: %d", __func_= _, + load_res); + migrate_set_error(migr, local_err); + error_report_err(local_err); + } migrate_set_state(&mis->state, MIGRATION_STATUS_POSTCOPY_ACTIV= E, MIGRATION_STATUS_FAILED); } --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713076; cv=none; d=zohomail.com; s=zohoarc; b=lJu+l/83XOUAPrKXD4b/duIJcctUFkKrVPaaZkGtEvhQFL1yYaoMGLTkuOXHhDVxHziXCdcf4E29bzQfu+do8LZTiCGk08GBuzvpiuuQKHTqowWWIkwJts+ebn8/Zitck3uOJvubdIF8v6qO4aJnPO6UTD8F32quwlVNTVZvNEI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713076; 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=5r7DYLmp+E9ag1L7wKjeNhUnOiKaPcopIlcFiJkBtOc=; b=AJRjBNeCU6qA5lmHuuxlKAcu/vym28lHqJ7tRsS7hDz14puj6EtLf9uvZ2lw7POhMI2iaOeHZCtPx2+UznJ3ZjUAQ93tNSeCkzHSnPPqsnaLbp4KvEqzzHxxrxLkoBUv4d44HcrS/Iw6QygqeQzKQFtKu1SiZE3ONYO18pcNSPI= 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 175271307659744.881378208285696; Wed, 16 Jul 2025 17:44:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCj5-0000iu-E1; Wed, 16 Jul 2025 20:43:55 -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 1ucChW-000626-9v for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:42:18 -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 1ucChT-0005Li-4R for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:42:17 -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-339-_ukr-oB9O-euigQW9xfG9Q-1; Wed, 16 Jul 2025 20:42:11 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-313c3915345so600746a91.3 for ; Wed, 16 Jul 2025 17:42:11 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.42.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:42:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712933; 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=5r7DYLmp+E9ag1L7wKjeNhUnOiKaPcopIlcFiJkBtOc=; b=SEAmIles1H0lKUi6b9xTKIuVv0PJ8zRWejXBAKOtcTCovQYAwYH48fVwFjdB80F5O06x7S ty7goxTDVbS+M1aTIHDfCm5WSl7INbvwyrdcFavNo/u9Y/gz2yg3RIxI4eOWXpdaUCeiK4 11FaCRkkCDm0HIQcjsYj1OGQMD+tFs0= X-MC-Unique: _ukr-oB9O-euigQW9xfG9Q-1 X-Mimecast-MFC-AGG-ID: _ukr-oB9O-euigQW9xfG9Q_1752712931 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712930; x=1753317730; 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=5r7DYLmp+E9ag1L7wKjeNhUnOiKaPcopIlcFiJkBtOc=; b=KT2uODa6qcxYClT/7WUcZs7FUWTa17GXXxl7So/d1GAKhHVUvUSFNLDNY2VhVnfeh4 0fszIASIUHSKtp1sRNeR0QlaAD79ZgJejylSKfW3/HhGSGVf7clEv0z2hzdMUMNy5KSA GnC9hFylRA4YmPEwGlkeX3ZOpYsb5i7r6X/qjpPe800iUdOuThKxS+GvAlKraJyFSIQY 7R6kH2TPYB09fYL4Sj9q7GPpIkDH75p2WCsOtRAJCiDxYV19OxHP6G38nGZl65s0167L g1KPBnL30eiq15HVuP3XAdGa79yiIA9xtc2KJnKu5/ByBCRj/I8WFyee96Nj3IEyOjrm Pyhg== X-Gm-Message-State: AOJu0YwXBpSRd9czszRTHx3CvwbV6gypzN2hmuMFlXeQ9ElFL0BI7jzt u/wmmlihQ8kBPpTrkZ2FRqy88UoKkB4MzCAZckRsUPzvfUe7fQz3QYZtsWJK6tRtPYne4siGd3a OigMPThbFssNChkIhq48WklQVOMDBrjxXu1UoQ5IlRqRUiXP3ekd/XV+4 X-Gm-Gg: ASbGnct40txhED0ps3U5074rTxsq36aOtF4qCfQtwZa27ARqhl64TyEvt1zr12g9tmb bMW6u29AW0lFTcmRntsxloxnGyA2LM1trwFHsVfWYpX9cFI72WgmZmyYvtW5tlB+iibzyi7+7PA agE7+i99Vzdq0YWittUZvjT0Ph58EWQcHWE0rXAOwRlTwidjDyYzJoZy6LaVzeYfb1vLg7Oe0DX aJ3tNE1OLzeNZBYUYqeSJ/969/juZG2TZHSBzXJ1uP48rvfNjjAfQbeijhQyC5iD4gsjuIHguiy C3z3DxwkDbjXtijhe5t4ya/ckowBtTl/ZavPUNxL9RFU0js69oeS X-Received: by 2002:a17:90b:37c7:b0:313:db0b:75db with SMTP id 98e67ed59e1d1-31caf921e68mr1520932a91.33.1752712930473; Wed, 16 Jul 2025 17:42:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHcBcC4aFTv+LaK2xP+TQMkJEutHYmMtxsDA/0udJ+JEtHOpvNFxPDtefSpeVnicS7CXZS1NA== X-Received: by 2002:a17:90b:37c7:b0:313:db0b:75db with SMTP id 98e67ed59e1d1-31caf921e68mr1520894a91.33.1752712930075; Wed, 16 Jul 2025 17:42:10 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:45 +0530 Subject: [PATCH v5 22/23] 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: <20250717-propagate_tpm_error-v5-22-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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=5680; i=armenon@redhat.com; h=from:subject:message-id; bh=3Jq36iXUSbHTQC9cQ7Zq45KdL78RMO+hdXGkLCz9CVo=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm/JMpndrNoRZtShX/RI60hd4sdKXPXWD/w7RF8kRV q6toekdpSwMYlwMsmKKLA1fA2SbAgojIm1fXoeZw8oEMoSBi1MAJrKkm+GfaTyX+/+mbQF7FA6V CSh7atzZ4Mf85/bS9YodDd9Cq54dZmRYc+KaQZPx5LWm7rftDto/445dOOmw1MejUVxnQs7Eyyx iAAA= 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, DKIMWL_WL_HIGH=-0.001, 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: 1752713078415116600 - 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 | 36 +++++++++++++++++++++++++++++++----- 2 files changed, 42 insertions(+), 5 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 078a00003023cc248fb16f05017d4c4251fd86df..bff4539cbe526c5a0718678d4e1= f32ba9ac57889 100644 --- a/migration/vmstate.c +++ b/migration/vmstate.c @@ -152,7 +152,13 @@ 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 : %d ", ret); + return ret; + } + } else if (vmsd->pre_load) { ret =3D vmsd->pre_load(opaque); if (ret) { error_setg(errp, "VM pre load failed : %d", ret); @@ -238,7 +244,12 @@ 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 : %d ", ret); + } + } else if (vmsd->post_load) { ret =3D vmsd->post_load(opaque, version_id); if (ret < 0) { error_setg(errp, "VM Post load failed : %d", ret); @@ -414,7 +425,14 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDes= cription *vmsd, =20 trace_vmstate_save_state_top(vmsd->name); =20 - if (vmsd->pre_save) { + if (vmsd->pre_save_errp) { + ret =3D vmsd->pre_save_errp(opaque, errp); + trace_vmstate_save_state_pre_save_res(vmsd->name, ret); + if (ret) { + error_prepend(errp, "pre-save failed: %s ", vmsd->name); + return ret; + } + } else if (vmsd->pre_save) { ret =3D vmsd->pre_save(opaque); trace_vmstate_save_state_pre_save_res(vmsd->name, ret); if (ret) { @@ -524,7 +542,9 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDesc= ription *vmsd, if (ret) { error_setg(errp, "Save of field %s/%s failed", vmsd->name, field->name); - if (vmsd->post_save) { + if (vmsd->post_save_errp) { + vmsd->post_save_errp(opaque, errp); + } else if (vmsd->post_save) { vmsd->post_save(opaque); } return ret; @@ -552,7 +572,13 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDes= cription *vmsd, =20 ret =3D vmstate_subsection_save(f, vmsd, opaque, vmdesc, errp); =20 - if (vmsd->post_save) { + if (vmsd->post_save_errp) { + int ps_ret =3D vmsd->post_save_errp(opaque, errp); + if (!ret && ps_ret) { + ret =3D ps_ret; + error_prepend(errp, "post-save failed: %s ", vmsd->name); + } + } else if (vmsd->post_save) { int ps_ret =3D vmsd->post_save(opaque); if (!ret && ps_ret) { ret =3D ps_ret; --=20 2.50.0 From nobody Sat Nov 15 09:23: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=1752713279; cv=none; d=zohomail.com; s=zohoarc; b=RDbN05kNACXmUgxZzjvx9MZG962AHiXbs8qsvG4L1LDG5lLUrgVPURoqz2jHmNX1U+9Ili/oKy5f+V/yMZXT0xLwx0XWuOCjibl4F2qu3xeCRuQVBNHHy+NQZ4UUU9DniGUkrY/sOMidLUTf5iuG9XuO1OVsY3tz8ZBo4uYwN+8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752713279; 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=VB7ywUEVqmA3oghObQBPFE3seKY/3Bw1DaxOoNhDBBY=; b=DUhOGTroSy53lV75FET6bBCNwL2pcw494bs69dXMC5wDU/Ldkp0D7cE4XSAFqCQE/ti7wOgfp9n5PvK5p6H9uWL39b/vNo++hT5Pg/HBseO48g6UKpa5wlPRUKZK6EfdQ8W4VU5/hSmM/Fwr+VJGFwsp+FK4oVGilcOm4fPGTxo= 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 1752713279277930.6160576709984; Wed, 16 Jul 2025 17:47:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ucCjJ-00016I-5A; Wed, 16 Jul 2025 20:44:11 -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 1ucChd-0006FB-Pg for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:42:27 -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 1ucCha-0005Ns-KF for qemu-devel@nongnu.org; Wed, 16 Jul 2025 20:42:24 -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-164-KWessoE2M-imOOAQgtA3jg-1; Wed, 16 Jul 2025 20:42:20 -0400 Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-312df02acf5so1484354a91.1 for ; Wed, 16 Jul 2025 17:42:19 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.205]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-31c9f287c19sm2214424a91.31.2025.07.16.17.42.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 17:42:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752712941; 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=VB7ywUEVqmA3oghObQBPFE3seKY/3Bw1DaxOoNhDBBY=; b=Q48hJrhfsqC1fcPTe0qIsVe2YwgPKzChvXrUycQBv/1xYFUvdUIotZmN5/K2UEc6jLRp7b Wld7XAljX6k7F+t6QRoe6CWSLie8N4NEpznG2aVQbJhTHHFHy3KrIaC1IYCod1f+I9XEz7 KTpXMl05r3OSdqm8t5qSKSz47nuFc/o= X-MC-Unique: KWessoE2M-imOOAQgtA3jg-1 X-Mimecast-MFC-AGG-ID: KWessoE2M-imOOAQgtA3jg_1752712939 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752712939; x=1753317739; 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=VB7ywUEVqmA3oghObQBPFE3seKY/3Bw1DaxOoNhDBBY=; b=NdxX0keu1+pQznsGnD994QPt1r+zI7SRpJ1cV4jO+SouqzF8UKaDoQuPblsOHBihIG iPwK0NwqOjSfIrU9Um6As39HRpnn0iFPUYQtNA0pYwc/Xg6ePiQo5M21sRiwkLWFocR9 zCTZ/i6cVC8ygYumQvfZGVsRPAxw+uf5zJCCR/w3pU3FdI5bPZeXdAHIAMih8R/g4gQV B8fJGI+sZ7exaVPM4wzkxVFdfqp6UMmoZHPHqL+S0UJEZlP1/MsnrkJFTy6D/v16GLSf ttQqxt7eHD+aMAqsvbN6U3QkiO4f0TiLISak7PqaM79UmOFAAHyT3RuuzWiMiWxS0gpu xd7g== X-Gm-Message-State: AOJu0Yy4SW5g1/sX7gWCHbSPleZL2Q3nbbyMrEzvkqVE9my3bZn9EYkc ZaHQHd3jvxWTOhsO4qvqTtdB1KlAARgkCRyeUwbCbzsXv4VP6fzBBMTWc3AY/N+nri0lGBjN2T4 rbGZ7Zv/z8YjwqA7DOPY/5Au1FjdgoOJ6FaGWh1kyH1JfFLxycTLWktuS X-Gm-Gg: ASbGncs4iMOVpjfiEiq7uyemXqBLMvdPb5UYgp2VPvuQz+9NQsJ8cMF+tBUhADEHVES CbO+p6I3LMRBB5ItW74xasIMw0i/+MM+8Vr8/6lfB0Pqn7JNDEj/jgJhT56UqUGqJk//TmAj4Mk cMVralOEwlSK+yr5efDlmj0J1I65rFc4nwzat/yBk3tbDmQUWwwU+LJycJYggr41biHejXeEtRt wI8iTjgHdk4nddKDAL2SaeQZkYuLFXSVW/ItvvuKErhia48PMhvdPBimTmO5IZbC/vYRUoBm385 pAA9gDm4BWFVwQBwfrmxC++AoLwMfKIPafK6EDrNYFTC35pIGipb X-Received: by 2002:a17:90b:3f4b:b0:2fa:42f3:e3e4 with SMTP id 98e67ed59e1d1-31cae9730f0mr1913274a91.3.1752712938841; Wed, 16 Jul 2025 17:42:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE0TNhsBLt9chwXzoKyo14UNr2QnhkN/YbcStFKqM2RoBmVQtYWkXJFkkUMTgTG652d0vqxig== X-Received: by 2002:a17:90b:3f4b:b0:2fa:42f3:e3e4 with SMTP id 98e67ed59e1d1-31cae9730f0mr1913232a91.3.1752712938256; Wed, 16 Jul 2025 17:42:18 -0700 (PDT) From: Arun Menon Date: Thu, 17 Jul 2025 06:07:46 +0530 Subject: [PATCH v5 23/23] 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: <20250717-propagate_tpm_error-v5-23-1f406f88ee65@redhat.com> References: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@redhat.com> In-Reply-To: <20250717-propagate_tpm_error-v5-0-1f406f88ee65@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 , Stefan Berger X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6614; i=armenon@redhat.com; h=from:subject:message-id; bh=lhIHMpU0qkadz4azlKtjxrgPGcXYLFkklrIa1moEZ6E=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0aFm/L5O+fLtpds9ty69n3KmQD3pa+0xQPmb6hhVT8x5 //qPV/cOkpZGMS4GGTFFFkavgbINgUURkTavrwOM4eVCWQIAxenAExklywjw3zdyvnX12xInf3G Tmfr+XV3nj1wfxL/ff861z0LWG/dWLyXkWH+yYqblx+XHryr3C61ZNa8lvXTLk/aq1Lwa9OqwgX HYztZAQ== 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: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: 1752713280605116600 - 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 Signed-off-by: Arun Menon Reviewed-by: Daniel P. Berrang=C3=A9 --- 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