From nobody Sat Nov 15 09:24:01 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=1752662819; cv=none; d=zohomail.com; s=zohoarc; b=DQEyzv/n4J8AJTS4UtdekANmRqPBpFqM7jqCpIGkTRQhLO7QLslzz/SlowB2c4wKApjC+vonfca9jVEJy+PbxJbgifFhAGQXqGiTnT0Z1Zu1qBb1wYsjpknNf3K7gfrmfx7cDOu0gHTH5Iow/i7Hrm+oa/wnVTEZ79TNoPIV818= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662819; 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=NHAKJ3wudP1swE/XO9F7S/sY948u35mRgzr7KojnGKBdMx36EtZnIOI6tsPTZSVSU6MXpj0PknE3p18eWnEO/Tyx5VAaGsEN7IyBFmV01xvxq5vmVdH1lVVyRbGRumpZPgdDtCP+AVIrwGkCFJam4K3l4zkaa4obcKOJWulVlsI= 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 1752662819566634.4697945786991; Wed, 16 Jul 2025 03:46:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzdp-0000PP-Dw; Wed, 16 Jul 2025 06:45: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 1ubzbr-0005Vb-Ji for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:43:35 -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 1ubzbp-0000Ag-Gr for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:43:35 -0400 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-169-kOQeiuJKOYyWPEoe0Z14wg-1; Wed, 16 Jul 2025 06:43:30 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-237e6963f70so99671495ad.2 for ; Wed, 16 Jul 2025 03:43:30 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.43.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:43:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662612; 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=gg4Cf932c7rxonzVq4xMZqAKfff9phjU9ZtcP/K1vyWSoFaKk7JjVp8uh4Nel+2wiaPeMN I5fGzlhRUFhNkuWn8m8j5baL4V4NWX2VIT/EhO8RAv8Al41jJsgk9aFom3B+Gw3nW1NR1s 1Nn7mWybacXAgIH1gDdKxM7KNa9lMtw= X-MC-Unique: kOQeiuJKOYyWPEoe0Z14wg-1 X-Mimecast-MFC-AGG-ID: kOQeiuJKOYyWPEoe0Z14wg_1752662610 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662609; x=1753267409; 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=rkuiee6wkgGVeLJa8/isXKasmHCpUapmYHQY7JPf+gFh4lAoC3c/bQC8rJq/yud8EO 9cbSRgr4CBUf84Y3qoX5nqFUdiMijxwLgYzmx0Jskc+y5+vC8odRLzjetajehZh39coF uie/iKNJnYXc+Q8EAfNfeTPphOX6QJrL0uX9p8MTBa5NUhY7IMr6Rh1X5paWYCQ7shII Gdv7mVuK32EN+sSSI/Z5b4R1f8NqJkJ/I+vcDAj2c0B2z08aBYdHHf0QERZcLtoXZKJz Ozac8THlKYzgWuhzWI7sH6fr4CmHUL96Qa73SiOq3PPcIhxb9zGsQrJ+QhWxTAlIW4Dv YlvQ== X-Gm-Message-State: AOJu0YyKfCsBnFVs/4HlW0Fux4atzedAi4hpxKEr8PybDL1EKmI5MQys Tnbqp+3iktBSV0ZWIhuTC49cWZBCGeYnvQPyPPlkITr0M9nx+Qdp8+JXXaeBg/kTLJr1To53BVX usiOWaDqahsmANTitCzQ/4b3Yn0WXXvFTsYyfq71uWXIKAXN26K5eOz+A X-Gm-Gg: ASbGncsdkrc6PzxwMHAZiA88mzVsm9JDUwHBRubCaF6/EH2lT7c+gJNk8Z99R0pt0JT s2+q0GZflDOsMx8Wxy09xGG6zs/tJFmSnVVTc41CYPwquoZWHgBvCsPkpbBa3ZsGNou1UH8soxh zeB+IMusByjW54d19M3IWkS2fp0R/RNJT+dUZXU0Db5tY++pRedMUdvofqZzgr25xV1NHqi6lIs LoeDIggFRRlaX8/UvUaWg1tBIsQA6vUBfUkNq/RcfvPL8cqW0kIdyfq9Bw4K9eRo3jPQwAIaLgy fWyvRHdze4p2jlf6GoEQkRKnkihNATSwu4+fmISv0zMRhk9+/g== X-Received: by 2002:a17:903:3c6c:b0:236:8db5:7e50 with SMTP id d9443c01a7336-23e24ec0c69mr32511125ad.9.1752662609683; Wed, 16 Jul 2025 03:43:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE5Kr/WxxvO9UOB4i4FzRT4JuFOgDcldqrB9xk5tH4hEYmo1oALevjE+glwF5rTgagwctXodA== X-Received: by 2002:a17:903:3c6c:b0:236:8db5:7e50 with SMTP id d9443c01a7336-23e24ec0c69mr32510655ad.9.1752662609314; Wed, 16 Jul 2025 03:43:29 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:12:51 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-1-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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/xtFoSQ0Z5k12ZhvTrX7adKbdFkoIOVwuqbb2woXL61EscOy/XT f93/2RyRykLgxgXg6yYIkvD1wDZpoDCiEjbl9dh5rAygQxh4OIUgImURjMyLFZf5phrs/v7/qAk k2x5B+mwgze+XWs6vG7F7pqMxjP+YQz/K8+9P3dyj9tGBbfjyf8TNh0+VnGk3ifodPD6FNYNyix iLAA= 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: 1752662820913116600 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:24:01 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=1752662812; cv=none; d=zohomail.com; s=zohoarc; b=l3DZb1loMlMPlGeCAkOuCw9GBOwKHA60swU4Hi7nV2kUeQt9DpfV/n1n+KpokNbdm899z/nIsUP3zYLYsaGf7a141kltvNRTLceGXiOVvGgsQrEbdI4cSsWoLNK7F4v9NLbCrbRgReoNRUPRSTlOLrEWKtLQrbCtA3bj55eXTy0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662812; 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=J6SwAb1zJUchu11WQU3NyVT6lLA1w3lzPtkclnpi3MY=; b=YeVvJ92ngqpEJA/UTKGtMaWZDCpeiew2wuGBQVDACWcvbYMZkgy7HDO0HLYAaJXTcOtjuRzbiLL470ClB972tZrXIEZxVloHL/tN72WbopTz5Npj8O6aXJRCFq1qMBdkjZgBXfbHiQGQQzwkeFsEdRt8dWwkLUR+i4qZjuRQQUc= 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 1752662812719228.69279595856892; Wed, 16 Jul 2025 03:46:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzdu-0000co-1i; Wed, 16 Jul 2025 06:45:42 -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 1ubzc0-00060y-99 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:43: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 1ubzbx-0000C7-II for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:43:44 -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-612-aUDkz484PVqKdUN3XiVXRQ-1; Wed, 16 Jul 2025 06:43:39 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-235e1d66fa6so59939785ad.0 for ; Wed, 16 Jul 2025 03:43:39 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.43.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:43:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662620; 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=J6SwAb1zJUchu11WQU3NyVT6lLA1w3lzPtkclnpi3MY=; b=UAiPq7a2JxSCNQFSN3adeTunBV6+muUz3YbawOJhlzmCc5vrg9kRRRl+ZMN/tC2PC8BPYJ wJduvAr3wAquupnUD18QEFuUJDaSQ5LhWEU7+jOv+XtbTaBlQKZqlFq8bk3B1aULKGNOrC 7FQ0NSNOlz6+Z+OmgcivXa2FEPI2Gf8= X-MC-Unique: aUDkz484PVqKdUN3XiVXRQ-1 X-Mimecast-MFC-AGG-ID: aUDkz484PVqKdUN3XiVXRQ_1752662619 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662619; x=1753267419; 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=J6SwAb1zJUchu11WQU3NyVT6lLA1w3lzPtkclnpi3MY=; b=eqLT89+3ADrKWduadT7Q5Yf1Y72ItMehXP8zO/9VSdRq3/tz9DUYZBpa2I7McNmc1j It3e2mKz4guY3rYQuv5BWFofErfna+JN9x0fjAGWuTVJ0jsGQ5R7O6wBItgU/iQabvyt dSkcs8CFb1t5rlq+dnmc7Dv9PZZ8I0O5Yjb2v0hjzDJ4GSkOiz7jnGj391oAy7dtbc/G 4B8hMkAFlcc3YQ+9DyE3lDPwquN/OyfXYarLjNn0l/5v7LloOl3Q8wGxczD3Y1nsw9tG atxoskDV3ckWrcAI0KLx5r2MUvOyXL2d+1TfCYUmc4gRt+155eRHRKaCgBpYhMNLcJjm zvtw== X-Gm-Message-State: AOJu0YxztZ/25e79jfxrgjXLj8yMOu3m9pia2Kq8W/3Urdh7BZZC74qS BbgSoJtVQOfKlh/K0lEv2KU7zdfFKAA46bFY5bGl4YG2yCNLjmCbwcUuwXxJ7KM6vk5UjJlaG7F DQWzqaKZadxQe+m+RWvz1l7jD0F4q9/wbRtb1ybn2sgHRzW1NTNAAOgZY X-Gm-Gg: ASbGnctkP2Xz2hp2gtlg/jNkKArntxdRBYGgj1jP3N+BU7P6w+xQtkqYw5RklCz4gQ8 DXeTq9rUHYjSooLyq3H6Jr8OeaE2NfmWRhNvV9sjmsDbEOdvrtKfIOP0KLbyKjMSI2z+bre1ib/ FXAkmUtMXKKt0fKxUOh8jCHFgs6AeOJ+q2JdiTUwXEW4yr/8Q/u5ZAE9joD8r8UweMH/B+92Y44 oklHavOsrNqHNiNP5oVAkT5/6kostUSUTv5Qm+qDK7Q7HmlRC5T6yHQOI7ogw0iEDGqKidX4WuV iI8TkjOFIJi9JtBW4hSLdWusjdUvDq0t4REaUq/QyzoLRHww8A== X-Received: by 2002:a17:902:da82:b0:231:d0a8:5179 with SMTP id d9443c01a7336-23e24f563f7mr40138865ad.23.1752662618368; Wed, 16 Jul 2025 03:43:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGE/BbTjUhhtAfmL75/cnp+xhARc89Dlldp405dqCHuqwfgkoieYukUpqkwLnoCnKIZrJu7GQ== X-Received: by 2002:a17:902:da82:b0:231:d0a8:5179 with SMTP id d9443c01a7336-23e24f563f7mr40138395ad.23.1752662617698; Wed, 16 Jul 2025 03:43:37 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:12:52 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-2-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=e6TH4vyyZWj7nA7MqR7/OvL6eEEYeRsSa4AqsRKwvYc=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k53EBz3t4NO7lW5rb/2w9nSwxCqdn4ZpRkw7r2YnV OeZPmzuKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMJFLqgx/uPRebfdkqxV+xs5j obSk4v0yH5WZpwNFNMKvPf72Lc4tkeEXc1Ska66b+N/ZzqeX7FtQoRP4dPn7VfeZornuinXla29 iBwA= 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: 1752662815184116600 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 1093b28df7c3f5f37e622e6d76a99ad8d2b7e01e..616b9563a39ab7773dce403e36f= 2854c93b66dd9 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 fba2372c93bfd648736b07e4bc83e7097baa58cb..50a1f5701754b88e8a1ee062d6e= eedfd848cb4f5 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -160,7 +160,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 82a285a31d1c0427d55f7cb73398adfc94e678fe..66d5941f68a4b9e1e5390bb0aa4= 5fc6cd34e2a1e 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:24:01 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=1752662699; cv=none; d=zohomail.com; s=zohoarc; b=bO90XOUFu6eYeQY8lvBGH4wE384L/FPqK6n0ES09eLwBa5eV6nqZQsEL6va7Q1HoPdS4tCfQGdF8bO5hB6rSPW8JCwaGtZHsG6ld72kQWK77+Bx+cgsr5LWr0sj+g2V27sv9WCc4+HMTQ4BPpblEITyHVNxo8KqHwVG6Q8Vpw5Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662699; 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=NPUud8viqcc2rhnmKohOjKTZWsxg0rdjyUxumIn7fzKa4wLgS92maC8dJrEP2hK7+XC7717l8N3IajvaNj6tlbCYMRpWDvtnHRO9F07krPGz2hmUCuk3mUESleD1PEFEZk+bNomuEhGWG2tGn24TLuhdXmNFCM4k4ZK8WoO4M94= 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 1752662699957505.25463015790547; Wed, 16 Jul 2025 03:44:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzcv-00075f-5b; Wed, 16 Jul 2025 06:44:41 -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 1ubzc7-0006CD-5d for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:43:52 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzc5-0000Dk-AR for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:43:50 -0400 Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-515-31jKZAv8MEiIQ1Dgq5C_VQ-1; Wed, 16 Jul 2025 06:43:47 -0400 Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-235e7550f7bso64684785ad.3 for ; Wed, 16 Jul 2025 03:43:47 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.43.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:43:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662628; 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=cKWzUcJ1TU2U2v9DOl6angT/jj+4XbWW57RFY+DnBjvnfrYs6uppVsTOK6DNROa4VYgQt/ v49s29BPTqbZ1YbC7R/2XLq4u5SUF1PV4Crgdjhc9A1nWHV86XcjkZTQxsGTShgXdoz2AB g/3hiaXIqDdPlZcVJnQ56fiOfRIgDVU= X-MC-Unique: 31jKZAv8MEiIQ1Dgq5C_VQ-1 X-Mimecast-MFC-AGG-ID: 31jKZAv8MEiIQ1Dgq5C_VQ_1752662626 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662626; x=1753267426; 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=Cg7UB+3hfhwq59smY4PyP2nv7iyFmaTIjREIctbp+2+3PUDytQCgjCNa/nzZt9PMXN xFhGEhyAZYN0UOI/Act2ph2CudA9rln8lJTPDNN/8eL3o72pLi/GDDK1q9StEnA/Pclb QaTqHXHFYjnpAp1DaHEtKfHW0cpAjCfshD0miTIMzeTxAbR3BT2KTU/8HgTr8nhKBqcO nOdWvpx26bMm4mu7ZRxMVXt9B4NJaShiXeJ+AQPSu7Oh1i8Mo8NCtle29RhvqfeVkAHy QhYcFHLyF8mNknTNfxeIE6mXGlb7wSJr1PRC60qSv/hCI78kdcsYWyefongRqf+Zkxzg sing== X-Gm-Message-State: AOJu0Yxar2W/kxBX0XlMHTJIL8JS8Dzcp0t/dg5B9NWbwR3D3USg2WH6 /6F8bujpz1LHjBlRSo5p+KTBaU+7nr/c9xcbgQeJXA0FXd7zvc5Ox0brXES6eLnpTDYL3n8DoLF l580NG2aNIi5W3LVOXdcfc82+RM8v5fm+64ZK5CZ2ZJQPSGLYxXBY4ZSa X-Gm-Gg: ASbGncvoYZfEC0EGjGmUxjLjWEXVVfdkbgcOtvLutHOeAkB/ydQgp8ZCKPTPyxm3nxl eSfR7IeecFIN4l+rj/6HrvVlnIzzfLqsrjxIIx4cbtShT87bxgT/iWa5LqRz4eLVyQAq9ShaSsT kvIO33uTg4xLy8qGlFfJOV+Sl1C2hYxWWqbiUlpFCjFF1bqIpJQvmsOPegsngo9jsOz33fyHaK/ di4Tyk9UzHdGW2Hem61eotCQCoDXORkMsweg5CGKzUzIrUbUSIgO37o/eQ0io2rZHubFM9iW9VT Wvh1zn4xuhtc4oLPvDGFX0kJwaxxPU1ATGpK0Sjl56xylYV+nw== X-Received: by 2002:a17:902:f651:b0:235:f3df:bc26 with SMTP id d9443c01a7336-23e24ebf5a1mr34316465ad.3.1752662626277; Wed, 16 Jul 2025 03:43:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGLGzI0/YnmFzP7Wp3mMRoV3x9IBEPnt8njjzqtQ1jZyss5ZU7c+pFcFmTFqTjXgqyG4TjuCw== X-Received: by 2002:a17:902:f651:b0:235:f3df:bc26 with SMTP id d9443c01a7336-23e24ebf5a1mr34315975ad.3.1752662625867; Wed, 16 Jul 2025 03:43:45 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:12:53 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-3-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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/xtFoSQ0Z5k51zx0E9AdHPE1a+2JqyfTdbwv5VjjJ7FwmETQkOt DumWzapo5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwEQetDD8D/zlm9vw9YHg1Syn JosvMpOjtX62ypb/jJHfZ/Y5pvpENSPDMge+5wEaAmKn/s+5t1uEb36Iper1f5N+Z39KvG1aWLa IBQA= 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: 1752662701714116600 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:24:01 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=1752662976; cv=none; d=zohomail.com; s=zohoarc; b=I/dXvDyCytrZNjy0+D3arzwdkOP4C/cl6aRS2XK52GdS7rqFxnX28NHUX6bnoxhSDCAYcdg0tPfNiC8EJEOWX3fUP9+tHhRJtGSA/1pbejRwhaKALfDePtBiOOWLsdXQ+Y6vaO1ZDyuT20EwugWbsnMWg9IeP45Frva+LdnAIA0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662976; 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=h34vIBqTtn7Knfs2k6e33Drhcnb93TX282k/QiR1EL58Msetvr0uXVYKBbC5h2p6mkyroap1mZz7r0UNZF03s7nPOpKRxmVoyIVSHO7BhSQvZ8YCAusUTYBT3LzclhaAy12czEMsnjpxsqKtg26WPPgvChuTTTKsZ7A7CBeyowk= 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 1752662976878980.6634687657101; Wed, 16 Jul 2025 03:49:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzgt-0005mb-FT; Wed, 16 Jul 2025 06:48:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzcG-0006GL-51 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:00 -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 1ubzcE-0000FI-Ef for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:43:59 -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-657-5cGVAknNPLOjrYRGoOPbTA-1; Wed, 16 Jul 2025 06:43:55 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-23507382e64so65884045ad.2 for ; Wed, 16 Jul 2025 03:43:55 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.43.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:43:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662636; 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=SjmLuh+DlRUfeTKtREJV51xIfLTERuINHBoXvkQH5G78R4o/uh6rnS3qg0Djb0kO9xnxcv zIJKXuYtfWTd0fBezpEaGDgczDSxvTxMGm5kdJrOl8z7wTtXf4qWeCr3t9Rj06bHjjpt2i FBAhSJlnMnx21hyDSZFb9FLyuIlALdw= X-MC-Unique: 5cGVAknNPLOjrYRGoOPbTA-1 X-Mimecast-MFC-AGG-ID: 5cGVAknNPLOjrYRGoOPbTA_1752662634 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662634; x=1753267434; 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=rWtmjVijLI+ndO56jVAgAjtqdyLZJlwV3KOyee+866qBc8KV4Gvi9FUITQeTQv7WnY 7rf2MNbavelqDT9NNEFgtc9jWASsMl+YHoy9aEjOPMFdM2rQwlh9rrQnbNaBYXfhhAtv AbhlfDayoFSze3PIPe715Mwyl7FhaMdFO6Vsi5eQrTs/ULVnAuXg14JU7CLby2Plbzeu 39vYFgdQp3HrhxPUSFEG15Ef4ZwBro9q5JOHXKTgnkVGVktNZkc/85f+Tlu0bZ6lSIOb ypzr0vx6b7uCcgG4N0ZpfpAXpGQh26cisgpVNqGGr905vp+yb69REqvrO2N/eCQHq3aI XiMw== X-Gm-Message-State: AOJu0Yy0mq3VjoIc293kZBgnFJbbi6SGKy9lRIiksl+S6DC9PXfSDRBg 7xgrOFAij+RGbv2oaONMeS1dExpXJRFHHidgpkYmrntLbhxHA5u3+Ss3RKUAE5sypYSEj2+e3WU hMUD4Gbf9FCzJxhhKFZMZYwUrwD0daxszE/+uvrtCadbFR/xguf7sLMWe X-Gm-Gg: ASbGncvo6REGqaIFHchVZ+2TfJSGWqNV3hBTYMiYdRriJqzbtf3gQbnsGVM7NcMPlA5 Xe/OAYkofJ+QwQ5BofJs3Hae5Hp2XD0oV18g+iu7b9wfS7u3GL4QlsTSNhrh2JWg1cWSKAmyI21 UHsviahFMGE3FAIuyzGcDE31keaw253Bc8FfhgvY661Pxu/qy8FO1p9WiftXm5YeRssdPLYkUEn nIK/W+BTqEQeocpWgtZUvihjmtLUj/BQRzpbbgwKxuFK5Fe7JaXpm2AVuiw4qbmwQ9sVGVFoKJH YYmqRMToxNGAU7v5iFW5DCCJwUeyqv3b4QpciZk3oYU95iuQTg== X-Received: by 2002:a17:903:1106:b0:234:98eb:8eda with SMTP id d9443c01a7336-23e2572aad3mr36240515ad.28.1752662634493; Wed, 16 Jul 2025 03:43:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH0q/MXUu+qdbL/fKEK3wHxt1cqJvPweE+Ec3XhQMCtP88+SCkU1PxvkSgtzbBGlGgCT8pFpA== X-Received: by 2002:a17:903:1106:b0:234:98eb:8eda with SMTP id d9443c01a7336-23e2572aad3mr36240065ad.28.1752662634046; Wed, 16 Jul 2025 03:43:54 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:12:54 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-4-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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/xtFoSQ0Z5k537zP2LDgTNr93dx879rbH6gyjbti9tklpsGrO12 ZxFOV93lLIwiHExyIopsjR8DZBtCiiMiLR9eR1mDisTyBAGLk4BmMjtZwz/LO03zO6ZzVut/F7I V/7wtZV/Z684HW2uX/hR4/S06NkLtjH8Tw87ssd/wrHaypntXYKeFzTmflySsX6luBzrn3Dr7Xu X8gIA 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: 1752662978529116600 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:24:01 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=1752662936; cv=none; d=zohomail.com; s=zohoarc; b=iQBvc9Hz3uOZrrwrALUO3rzPnNzCSPUBypvrUsE35ssPU8aIpKzOtIwWIHufF0gdDJ3Ylzu5h5+S2YI5kiKEUwn6M1RH4IuOH9BHJXsSrJE5GaLxnjJjz6y9GdMwFcszRLsc/gOgyerxpwpJVmvZC0ldr0qec/3QWKCKSe+XBUY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662936; 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=M9zZjL7vCbMbv7rM+56BkodMU9+6JleUevhf7ObuCSnQBIx5CrKmKvih0eDaMYzSKZD40aJs9dMK5d/J4OadmN/tG5aiqeHFqwdmUrvNXPNFZT5KtylLyFq8kMYhR+RICIZ/b/tb41BXBv4oPfwZ+o05qLJp50kYB8L30ywg1ro= 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 1752662936109472.9470632394599; Wed, 16 Jul 2025 03:48:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzfA-00028B-O8; Wed, 16 Jul 2025 06:47:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzcN-0006Ow-RP for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:08 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzcL-0000GS-QK for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:07 -0400 Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-557-Mzk2MY-2On23Z9F7GMzJag-1; Wed, 16 Jul 2025 06:44:03 -0400 Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-234b133b428so52877065ad.3 for ; Wed, 16 Jul 2025 03:44:03 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.43.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:44:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662644; 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=I0UY20ZoBQHYaWd07E8ubgDXOWD6zL/UVRn3N5Hfgs/F6IiNp8Sr+vAgWnI8ceBmCYPnH8 kO8ajqXAMxAgGYqcqe+CqxB9Ns6Y/k1TE2ML6MgQY7qf9/NQSxClRH0BhyROml0oZ1Lke0 j5tgB0SLYtJxaMZkb+n94RdGJYiHcOQ= X-MC-Unique: Mzk2MY-2On23Z9F7GMzJag-1 X-Mimecast-MFC-AGG-ID: Mzk2MY-2On23Z9F7GMzJag_1752662643 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662643; x=1753267443; 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=KLNZwwJhTY30TBo6LLU1bmj84AK+olWCT1jMsnFg59eBL//GHJisuwbFOyRxWweOqG N+yuANK99NMi7P9VHdIR2ozMIQe9KYKq1WMl1zwe7g6r7bqkclT6OCYe85qcKB4/SaC7 PjtdZ42yaa2PJfd/DP5GEv6pfugC6XpVrRpqP0FvBdDnxOP3nFYze22JFj04eh10sqc8 BzFSAgWLwuWBebtmMWISdEVMvVkNbrBqRN7dzbeaj0pvj9XtJ7VkYyrAFYMcDogMkQ/1 dbOGHUZCBgP5QBv7tuRVL7G280pv9GvU6xJ4qZGa839wejUZALuO/kbGZ7H0dEltcdnv 6lTg== X-Gm-Message-State: AOJu0YytB/7R/PxF3mxrcm5UKqfCRbSyKBqntO6+GL9sXIM/MyBZGuDQ O4vX/pGYcg+84Sa8iVKXOmtAe2+kbSMuv+VhRTujYXzy549M7PhRvu8v52PuwaJ5yEHi/YSxH+D nX5ga7KzC1Zy7QcB5t1Bi+OrrA0WRybiUVVCEeiUfGfljlgvL6rCLochf X-Gm-Gg: ASbGncsmpElgdWtG2PnRlOdt0Lv0302NNUlk+xB4LSY5LkyW117hkbVhU5Uyi4Ycg34 r23D+zL18dyZ7HJldAl9mLj/H+oolCqcUaRdBwDupVo3keW9z4H+0E7iuy+QkDFX7bDa0boyh0W iAwBS2roytvyq3//r3LhPICtvkcG/DKSH23/2xIfy407jLwVdIp2Qa/Zys563ywALUL6hCBzIs9 UtuwstgXakN8cEE2YdnPaJBK6baSzArV6Yw6fXEG8AHy2tsbXnKqM/s7vR9Hf4Twh9nHQQdQ6pq xeJNXlh6YHDjX4438uiam6yhSe/PHwSeCZu3gO6maYw/J8/roA== X-Received: by 2002:a17:902:f686:b0:235:ea0d:ae23 with SMTP id d9443c01a7336-23e24f366a9mr30574205ad.6.1752662642715; Wed, 16 Jul 2025 03:44:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFzrwIO4gM4nMTRoWC7ST9Crqh1pHa/6pFvIQyqixN7aI42wkCCEkG6gCVQ2oG6/z7nTN/4jw== X-Received: by 2002:a17:902:f686:b0:235:ea0d:ae23 with SMTP id d9443c01a7336-23e24f366a9mr30573895ad.6.1752662642284; Wed, 16 Jul 2025 03:44:02 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:12:55 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-5-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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/xtFoSQ0Z5kz3T9S0X63a5vX1xzDqmwIVdxvv1eTE+98t50ea9A r1qArs7SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATOSFJiPD+e796yY6qvQ96rt2 RatN4cIGE82TN/bXcn58OzWz/YDTRYb/Pr0H566veGLKwMsoYBP56/V+br7FAseq5vrFi/vo8PW xAQA= 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: 1752662938375116600 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:24:01 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=1752662863; cv=none; d=zohomail.com; s=zohoarc; b=Kakk8bbaWoON2nfo4nPvFBwF7Zbeuap7yQkXDdZg3C//tga9lfScZW6Q2nSYi2NTLik+ZhWXtfaJ3fHwzQrD0oB9YPKD09d7qZLDLl4iOBqeuXzAvz7bOUVcCiahpYEk4qslTrRgwnVRJm4OcEo0k0QwqZaTmRS9uslPBOdSQcg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662863; 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=XPYPOrSaRLssTie0Nx8dZhvRgt3oRd6voLAVYZ0imEzpDjoq82HgWPCcaiYNfmfXQwTgB6EsIiv7EeekZxn5S8B3tL6h8fJxh6civzTLf9GZSGKJSSqtdigsMdB7yjzivIYtgZHk6nv+CDBw/s6/i4jIpHtgf+JUNyGzzOLWZQs= 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 1752662863224678.8745139234728; Wed, 16 Jul 2025 03:47:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzfP-0002kC-U7; Wed, 16 Jul 2025 06:47: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 1ubzcW-0006aj-2F for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:16 -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 1ubzcU-0000IJ-C7 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:15 -0400 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-564-nicvzgbtOUq1PZl0WFRGTg-1; Wed, 16 Jul 2025 06:44:12 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2355651d204so63867235ad.2 for ; Wed, 16 Jul 2025 03:44:11 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.44.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:44:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662653; 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=GXbtNhun/eMdMxw+MxXJYsgbYEqhxeBu86GYxIqUqxZMl5Tyds1UoY3CRlE1Psq85R3A8k piJd3AdeOCsthmMRiHg6wKC+/Xudzq7w1TWnj4kaKdSl0m4ImzraCceHKZrjoPVSMytBj4 pweV/yYu+QStC8ZKTxNGXJ3sidOQ7bY= X-MC-Unique: nicvzgbtOUq1PZl0WFRGTg-1 X-Mimecast-MFC-AGG-ID: nicvzgbtOUq1PZl0WFRGTg_1752662651 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662651; x=1753267451; 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=IHUHhb8Bax5CP1MWCArGNL6+2mvqTkBzPOfXX4+5wAWdZppcJlCiBXkdaFqNR3GZs/ sC41JZRMH/Q0BPgfdz3u1MeMROmpL4L0E0GFjM2EDyEkOdrMwKRf5/6SIOdO/8Zp0c0P DhNmsaRbTlc5HGLjk2tfx7nAA/beMIqDPRNcgiIxsrfuc1XCli3eV/U5iyhjezoSuzhm OOKIZE/jyaCAzvfVzP0EgSmzjGZWvoltf5k1oQRypRd29UQbL9+yPjblwupHPL13h4D8 YbIGKUGXMwnS9TAAumY+nbFdEPbeBWkOQy3KFycbPGJQaKvDxNktHtbkRdrKyGi+qidN Qr8w== X-Gm-Message-State: AOJu0Yxdb7nxJct8CAv3XAGIzadqnvu7+a8y4O4DxfJcgi7/fIGdXNjl XaH5f1+ToqEBC1SAcPZEiO3/L1Q84fFIaetCJO5x23tPP3oJE4iQynN32UuuDBbp+tEp1DxmZTu E9iIolgOjx40KVfTHPYY6QzU9W9n1iQRUp3CyTSQa6h3YnaRZ7tdMNZME X-Gm-Gg: ASbGncv6HD+JyiswegU0dZCfc7NL0U/SvQ8ZGYE+G0VVtDnPAfNu9lhIRTFkxwfHOkk JxR4CCSqVPTmQiaJuGlraCWcHR0wfDwxMOGBRTo1C4jK2tNzeXDOFuZsCzEs1N8tPfapDbHgcp6 axImv/j0hLUZcD6CJWGIX30rukRM+efRggvFEq3ip1N902XskC87V8/vtonMjOE5ofUFXyWo4k2 JTaptPhhfbpOcQjwGH6Wo7a3Pkfe+6LPxy4+ynmFjRRlD2oKOm+YRYhvleI38tKhszuSDltvUsI q8w2ZH9OogS0wrjwxLW1LwZNSycUJg6gR0zdzxBmV8Kx5GJdFQ== X-Received: by 2002:a17:902:ef02:b0:234:9656:7db9 with SMTP id d9443c01a7336-23e24f4ae0emr38276895ad.32.1752662651041; Wed, 16 Jul 2025 03:44:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHmmmGIyFtA8nmr/wAJcagSTotYflHnuxMsZKKXcNRItmOwO/AZOjMvCKQ/KL4sRaMZqIVG+g== X-Received: by 2002:a17:902:ef02:b0:234:9656:7db9 with SMTP id d9443c01a7336-23e24f4ae0emr38276615ad.32.1752662650647; Wed, 16 Jul 2025 03:44:10 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:12:56 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-6-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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/xtFoSQ0Z5k/2G05NmuH9Vuy1yLpvzgVBkckbFg+sJSmXqJ3SeH cnecudZRykLgxgXg6yYIkvD1wDZpoDCiEjbl9dh5rAygQxh4OIUgIn4+DD8r9Tk/Jj6weJ7k8fE bkU2sZOKG0xjZjCemZ5bsHvCbyY9E4b/rhZny72mOHSvnPvU/cFSOc4JO97PlDiwoW/h3KA9qnG LeAE= 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: 1752662865629116600 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:24:01 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=1752662928; cv=none; d=zohomail.com; s=zohoarc; b=fMwBi9D7AyhMETJBvsPCZQ+6FsOpzLs8GDcWR701vxbNeMhZn/JXh3//hLB46vFuo1PusFNMclWqnf+9hvmiILi8TrzxLz1gOxKMgKis5oWrUKHiXerIePjAjtaEPLPsnj4krZY0xv39iW+Bz6T2jm6RmbaNOa4bRSi+h95BeFA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662928; 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=f2a5tw8IqJQkx1W5/iPw1LFqBppqgHUzfT4VAAtADvY=; b=DUsfFXWhZ2ggE41POEAIHeCNsesCV5Gixizy/4B4vYezvKWF+Y8nlt+GgEstITXamhFOlhy+qjHh02JrWczmcwwW6c9iiPUc57IrHCjuzF87MB5ILnPhFkBqoeLj72rR3hEfiHD3+RT96MtTYLT/Xp6HQtUFhAjVu8oHK8Ofyfs= 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 1752662927949467.67829389268616; Wed, 16 Jul 2025 03:48:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzfl-0003aJ-9o; Wed, 16 Jul 2025 06:47: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 1ubzcf-0006lZ-RK for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44: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 1ubzcd-0000Jt-Dg for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:25 -0400 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-654-lXHJbm-JMLqOvmY_499ylA-1; Wed, 16 Jul 2025 06:44:20 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2369dd58602so62880425ad.1 for ; Wed, 16 Jul 2025 03:44:20 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.44.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:44:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662661; 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=f2a5tw8IqJQkx1W5/iPw1LFqBppqgHUzfT4VAAtADvY=; b=f7/xFNGP1Tus+I1I3rLwcEbOGbeIkavCkh72OYCNlBqfGddQyKDPUpMg/uSf3UNH5m/v9w 8wv6TKfnSf/JDwVji4TXNq+12AyOIX3pm99HF9Gn+rHkKsu0upAAa/KO24L2VfrZDAQGr/ wqI3BtVzhGsdCx/BX1kJ4+IRuxibGWY= X-MC-Unique: lXHJbm-JMLqOvmY_499ylA-1 X-Mimecast-MFC-AGG-ID: lXHJbm-JMLqOvmY_499ylA_1752662659 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662659; x=1753267459; 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=f2a5tw8IqJQkx1W5/iPw1LFqBppqgHUzfT4VAAtADvY=; b=kQuSGr9ZFDAZ+otmfb2mmDLEJLUgBpwziySncRdx07C75VTARCOunngp2sXh/GHi4C x0v0HkH4GlKpERn1QhGVPVjM82aDaskdLxw6O9jasM1vh3NQTpUuoU9JABqUUuZjKsJJ TzSMmVtkO1npDvm2gKsSz6T6VCScOdxfNKmp5rhqvlkQcprLE6M5mQ3NwVOXTFktwALA MSrIkcQh9SOQ3J909IlOTddnjj7zBtztfmW+vT1S9smFHSsZxstkwT2k0KwtI+ePejFn saVA5mGQWWsvL62ZbcLGJ82nu+xUi5J/CyjfRnV+9gHW3mCM5SUOrwnyD0Npzx3UdKRA RBdg== X-Gm-Message-State: AOJu0YxUf1LfKFsenqbc7PgsSpCrrM0lGaZhuNKwQGCYEpxA6mXeNUfY HJHmkx+LIBMhtwRZ/J7GNiJ7j/rRt4mu2GiTVh1W/lXxMQEVNJvDTzVX12+p3BMVdynUD889inN C/KH5SOxYuxNxY+lpL2w1sawD6r2x7/ZPF2DXsfJE/16FaUGYSoPGJuIY X-Gm-Gg: ASbGncvPGcqFvwiXc2Au5TFFwF0tplN5I5Z6a9GdBTCtXjsL7VjfB0/eRUkXGmcxTFa iIn4lo16BN6rbjEzNkKg9+xKIZw1QhN0fruYPPTVIeFVK99Dl34BNEI2Ui5jBhXW982NjUdkf4z 1qiD8C6w8DDm8Jr80spL9Kewct5syKmnoeK+DJv4LQQ7m59PAaE7Oz+ayEpX/MC6QHBWHWI/CpS W44t0/riYMMMY2iPS8KeQ7wfLVNUZMdN6OIE+TdRSoXRZU4yS454CVKwtXKfXSK8HyzB3izzhF4 VFmJoqpL+40MAjstKJ/R/GXVy2eloCTloARQ25sa5MtCQFnK0g== X-Received: by 2002:a17:903:8c8:b0:236:94ac:cc11 with SMTP id d9443c01a7336-23e2566b0d9mr31442045ad.7.1752662659470; Wed, 16 Jul 2025 03:44:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHX/NX0a/DcLZP0ru60DXbcoablpNSaTwXO8u0ozgxChj1iB3TOoNoRQBxZBbBnHON1LSfrug== X-Received: by 2002:a17:903:8c8:b0:236:94ac:cc11 with SMTP id d9443c01a7336-23e2566b0d9mr31441325ad.7.1752662658848; Wed, 16 Jul 2025 03:44:18 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:12:57 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-7-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=6916; i=armenon@redhat.com; h=from:subject:message-id; bh=D9SdWZhMHR9koECrEazRfKMv4X4h0TvPBviqsW0QvPU=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k73KokNz3bj+Hg1e8TJCsfXw1P4fXXtm/gw5d+HV9 PwfO3crdZSyMIhxMciKKbI0fA2QbQoojIi0fXkdZg4rE8gQBi5OAZgI13SGfypNF95snOMnNNnJ 6uzRC7JM99P+R25gMDq+TtdeYtLhy1qMDH/K2EvWf191umn1RU6XSPnjU1Yl/9uw0u9ggcelTbe nKzIAAA== 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: 1752662930437116600 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 | 95 ++++++++++++++++++++++++++++++++++++++++----------= ---- 1 file changed, 71 insertions(+), 24 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 22d73999595384519c755c9416b74ba1263a8bb9..e40e67b43166d11cd417c17d1c3= 87a1effad41b7 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2540,32 +2540,35 @@ 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); =20 /* Check validity before continue processing of cmds */ - if (qemu_file_get_error(f)) { - return qemu_file_get_error(f); + ret =3D qemu_file_get_error(f); + if (ret) { + error_setg(errp, "device state stream has error: %d", ret); + return ret; } =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 +2581,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 +2591,10 @@ static int loadvm_process_command(QEMUFile *f) * been created. */ if (migrate_switchover_ack() && !mis->switchover_ack_pending_num) { - int ret =3D migrate_send_rp_switchover_ack(mis); + ret =3D migrate_send_rp_switchover_ack(mis); if (ret) { - error_report( - "Could not send switchover ack RP MSG, err %d (%s)", r= et, - strerror(-ret)); + error_setg(errp, "Could not send switchover ack " + "RP MSG, err %d (%s)", ret, strerror(-ret)); return ret; } } @@ -2602,39 +2604,84 @@ static int loadvm_process_command(QEMUFile *f) tmp32 =3D qemu_get_be32(f); trace_loadvm_process_command_ping(tmp32); if (!mis->to_src_file) { - error_report("CMD_PING (0x%x) received with no return path", - tmp32); + error_setg(errp, "CMD_PING (0x%x) received with no return path= ", + tmp32); return -1; } migrate_send_rp_pong(mis, tmp32); break; =20 case MIG_CMD_PACKAGED: - return loadvm_handle_cmd_packaged(mis); + ret =3D loadvm_handle_cmd_packaged(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_ADVISE: - return loadvm_postcopy_handle_advise(mis, len); + ret =3D loadvm_postcopy_handle_advise(mis, len); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_LISTEN: - return loadvm_postcopy_handle_listen(mis); + ret =3D loadvm_postcopy_handle_listen(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_RUN: - return loadvm_postcopy_handle_run(mis); + ret =3D loadvm_postcopy_handle_run(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_RAM_DISCARD: - return loadvm_postcopy_ram_handle_discard(mis, len); + ret =3D loadvm_postcopy_ram_handle_discard(mis, len); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_POSTCOPY_RESUME: - return loadvm_postcopy_handle_resume(mis); + ret =3D loadvm_postcopy_handle_resume(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_RECV_BITMAP: - return loadvm_handle_recv_bitmap(mis, len); + ret =3D loadvm_handle_recv_bitmap(mis, len); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_ENABLE_COLO: - return loadvm_process_enable_colo(mis); + ret =3D loadvm_process_enable_colo(mis); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; =20 case MIG_CMD_SWITCHOVER_START: - return loadvm_postcopy_handle_switchover_start(); + ret =3D loadvm_postcopy_handle_switchover_start(); + if (ret < 0) { + error_setg(errp, "Failed to load device state command: %d", re= t); + return -1; + } + return ret; } =20 return 0; @@ -3071,7 +3118,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:24:01 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=1752662963; cv=none; d=zohomail.com; s=zohoarc; b=Zj6Z3jfm4JGfc2Y0S7Al0JsPD6L/016pYMRIH3nM5de4NlqpjyVoJK7fVJuRfNTsG72ZrBXUnp0Un06Ik7DDCbsDRMu4NCCqKAbbA5QT0ye284puEofClBtlZ9dMQj+SimMAZJ2AwINkoujpaexoJzAXCBOm671iKNKJ3iAeWSs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662963; 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=px3R0RISbWrQLQtgKLUctsBD5ZgKayzzpEum6sB//t4=; b=F/+1zaMZNOFAOTQqwhOmwvHp5CrxWBluT7oxXF3GyDNkPo7R1FpUfZqu89yj+IRv9Q9bHF4qInzXVCs0HuDLEtVde2Ja78wWo9tZhUT5wYjLQrAQMRxkKlb6dMRe6x3RNID+mJ/pEL8R0r5xZWA5W30XKKeVNKR1EEJSaYwCEpU= 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 1752662963108842.3248073743106; Wed, 16 Jul 2025 03:49:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzh7-0006jg-9H; Wed, 16 Jul 2025 06:49:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzcn-0006r6-4p for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:34 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzcl-0000LR-5E for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:32 -0400 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-449-uQwskiaZP1ar54odcFC8vw-1; Wed, 16 Jul 2025 06:44:28 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-23824a9bc29so85687955ad.3 for ; Wed, 16 Jul 2025 03:44:28 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.44.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:44:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662669; 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=px3R0RISbWrQLQtgKLUctsBD5ZgKayzzpEum6sB//t4=; b=IRcRxDf8iMWtaZfdp1XXRdz1Uz0T+WJRKPm4mWy/NuaemtS6HnZb/LNqsYzD8FnClXi5/t vcjg0HgvucHxOtN4r3Zq5oisqi1HArqj2l/CSUQ0fX8kcWqwI8kYOHYn0uXu3PpmIOTARf /r8ivL1ez+QUYS/9lKtq8JpWRVHJoDY= X-MC-Unique: uQwskiaZP1ar54odcFC8vw-1 X-Mimecast-MFC-AGG-ID: uQwskiaZP1ar54odcFC8vw_1752662668 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662668; x=1753267468; 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=px3R0RISbWrQLQtgKLUctsBD5ZgKayzzpEum6sB//t4=; b=YINbhjS3z/qyvAzhveZhKLMv42k7vfQCwBWUeBnLPXiRz2oNDb1WR8gaAKFgNR5dSr Gpp6Ytx36dtin9Us3ejAu2vg7lMFrr52qxqIotN8QseYSj2jYk0LeffnC85z/9WZV7KQ Roy3Quf12pa3oIXjxodcIMRp4LjsOPNnJJhQRmL7g5/tWrfM+N5RqngER5xGVTM3vo5O Q8hkZlBgiQZ5ipH/vgaFVSC/aS0EceiWpg0AWt3NgIzhlyT8G2Mgv/QUgoK3aJzfuKlY X5Of1bFvIfJpL4xTO1TI/wgETyQ5GCMmo4IJ5bnYnA7DXBRgh56qGq0eZBmr9IU9r3gC nrCQ== X-Gm-Message-State: AOJu0YytsLSDrk4P7aRKLiBEcvPVWpgLtxVh7zwHxpCCRio0kewBLtZT ef+DsDHSZFNP/t3Xak/aNsCEF0f33wDStgr32dz20Lbl6RWW6Fc7JLbtQLMNAulB+ownu9dZT/y WJyxeo4n3S0YxTWlwgxzi5yfeMGfLOD5G0AYIzUZ107Kmvk0qLaW7nkA0 X-Gm-Gg: ASbGncu0ME5R5+TYlQ8N64EMEUAW+REtGkfBD9ATM2AYGwaR+HvLyRIsNJuXULl84ie tTdOIkvT+dog+q5Ux3/VtdCoNm/ATDa2yaB+GjLwsl3jCOKUchMJXNLj4V8744aS/sHrAdshhGM rH1qiAhgSr7+Xz7xvebaDLg5Aad64CawU7/9jW8pRmqhgjd8JTsJW5gqdpHiMQvQtkw5W4i0j6/ BgNRfsO824SEjj03V7hN064YWUhk9AqpLMhU+6FOUWPMBd+ZFA0zU4e3Pgze/P9shKKPyrlaloi oVbQaPFkQSQbncAfo7bN05rhXrk+vG74jqoaGkp6ASjFeUQelw== X-Received: by 2002:a17:903:8cc:b0:235:eb71:a398 with SMTP id d9443c01a7336-23e257a280fmr37599145ad.53.1752662667821; Wed, 16 Jul 2025 03:44:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFQ4No5ef+C/nXQVdFBvXGpeb7dCgpN1mwBQydV9qj2g0hnI3jtYQW85INopfmcZr0RbLgptw== X-Received: by 2002:a17:903:8cc:b0:235:eb71:a398 with SMTP id d9443c01a7336-23e257a280fmr37598835ad.53.1752662667375; Wed, 16 Jul 2025 03:44:27 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:12:58 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-8-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=devVsePfbg8OfEG7eObrBgRq/peOTZJY071zwuhog14=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k72n5udl7gtehH1PibzHLCbl/zR595knq6oyP3s3c Ap/PpLbUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCI8Dxj+aUwz9FRw5ry4JmZ9 5tPwSTdW9CirzfCxun1U7u4FG4uSjQx/Jfc9LylXUXrBN3Husu9rrE3+7y+y2T6x8sxUU/vl/Ql ajAA= 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: 1752662964464116600 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 --- migration/savevm.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index e40e67b43166d11cd417c17d1c387a1effad41b7..1953842177f03691b3f401a4ea8= b1425ef90ac9e 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)); @@ -2612,12 +2615,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) break; =20 case MIG_CMD_PACKAGED: - ret =3D loadvm_handle_cmd_packaged(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_handle_cmd_packaged(mis, errp); =20 case MIG_CMD_POSTCOPY_ADVISE: ret =3D loadvm_postcopy_handle_advise(mis, len); --=20 2.50.0 From nobody Sat Nov 15 09:24:01 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=1752663125; cv=none; d=zohomail.com; s=zohoarc; b=AEn7WRIPEjps7FZKM2N3Vk+F3EXinK2TKW8mmj7D/dgIBWMD/6ati8FwHs2UeZh9SC4DmbAgDzGWebtJMMhc+snzpcdoTxroeEKUwHAbHK7DVr8TpmdFIzpHlBGzBWxOGqgvOfSBtXhwsl0Ko1e2cxWGuA/4MCEfCg272Omfhe8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752663125; 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=zAxmSkHttozgNdccvGKZ4nR50Gke4h/XKAmd7tQ3IBs=; b=X68KA0Qh0uhQVifOjRgsTVbAiBlDjb0QOxZSXw5ARM9WtyCx0Pm1x6RH+xODsNJt2Qy2hNuN9wLFMyOqZxwcR/Ig6Ew+dnnEYp4p06dVOeWzMDBNuSSVywXLp8fH4o8tFXqWjYcH4+xNEpCgIO+hCPVif7PSWvg0+K72Zxvotlk= 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 1752663125585197.97162174318282; Wed, 16 Jul 2025 03:52:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzgC-0004aG-0k; Wed, 16 Jul 2025 06:48:04 -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 1ubzcw-0007AS-Kc for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:42 -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 1ubzct-0000Mf-8F for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:42 -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-400-ipUPg6FKNOWlVnl8ziVaBg-1; Wed, 16 Jul 2025 06:44:37 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-3141f9ce4e2so10598525a91.1 for ; Wed, 16 Jul 2025 03:44:37 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.44.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:44:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662678; 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=zAxmSkHttozgNdccvGKZ4nR50Gke4h/XKAmd7tQ3IBs=; b=ifAOHIuLcCaRGkJOBBVFyHexy5AKh3Q35Jvb1x26Ys60iwvn5q6Od1Y1bgwHn8dLXhJ9w1 IPzm/GtT7CauXmMqjj0164Lzq1Lw4UsgQKqzp7xJBknSLEmDlRffdgVzMGF6y9zCQ+6Ekb /WFGSxvalxQNgmkAlysLIoNXJ3i4K6Y= X-MC-Unique: ipUPg6FKNOWlVnl8ziVaBg-1 X-Mimecast-MFC-AGG-ID: ipUPg6FKNOWlVnl8ziVaBg_1752662676 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662676; x=1753267476; 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=zAxmSkHttozgNdccvGKZ4nR50Gke4h/XKAmd7tQ3IBs=; b=teH0NvG5kyRKNtdNXOlpxohiJY3DUAEveoUr4OATrFcCsvlrDbuD+HmoBzTr+OI5fV 7giTllZ1O8FUxWSiDV4VgojndxQMn4GzvpRRBroVEMU2SAK4KH+rIC1+z0LmM2eCIWde +LXJK76NoWfcZeLK1QA2KWAK6+/wxUX9Pi0yp1ItpTPg1sRRkqx/ZW8nzx1+KjFzKi8h ke/G0TNCcatCPhBwmT/zTUH7vQFHbxtnnMNU88Nnq0PF/v5sYzrOLVEOQtkS31OkuoWY iNvuCWATYnpZleu4ZAkb1I1ys0dYlVxnOg7jdPYf8d8y2ODZg2N3XZO34wDwILcLrzW7 BY1Q== X-Gm-Message-State: AOJu0YxVC41+hIsPBcpa5HU9G7XU4Lfert4GtpfVLtC1MDMjFDPNX0Yg 1F4sBss2529QOl8ASaalQYiDmMhmfSswkNwQsjgOjLsk0X6rhGYVWAPaiEPD/PJaELF6q1i6PbU pDN6P5PZxO0Tczxm6SiHoVLssYpSqnlxU/2YzeLwFlAK22rSlJsUBAZCE X-Gm-Gg: ASbGnct6ljburJBIJXSC6CQIChjlxTvMPrTljR5WGoSTZxO6ObaoL2P+/DRbM4DQYdN wgHa4rReq/dN6tA/zTJ+dMVN9060CK9NU8hgrb0yN/EZh6Ud9y4j2fAcvyPxa3zd6dCTRWlYCBH /i1i0zPu3Sq/jMiFRZt6joZj5kqM8MnBiPqdfVpRLJ8iv6QhEmLaesB+U8J+4BtjRvTU7qj1SAo /8wFVVInDKcgYt8RPeZMwkqaGxplqFYwFQxzixuUpawGs48vs0xnBJhE3W62V9427OWdau7WVCX gY/wvfkF84CusH3bsFD4V5SAxC+/tAs6xE59cl02UWgypOGKSQ== X-Received: by 2002:a17:90b:2dc4:b0:313:62ee:45a with SMTP id 98e67ed59e1d1-31c9f3c5de9mr2702356a91.13.1752662676277; Wed, 16 Jul 2025 03:44:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFRDmXF7FzYxT0/6ZxcCkRXvygWzHx04/JRLf0D3HlquF5nizPvxS8dU5IsP/vims6wqMiVcw== X-Received: by 2002:a17:90b:2dc4:b0:313:62ee:45a with SMTP id 98e67ed59e1d1-31c9f3c5de9mr2702316a91.13.1752662675865; Wed, 16 Jul 2025 03:44:35 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:12:59 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-9-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=5078; i=armenon@redhat.com; h=from:subject:message-id; bh=TwajBvD+zatrJRO4j0iPb+JGwx4gsnGk8Zv4fEigR3I=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5kz1zR3SMl3uKZHTrvLTKIOap757uWMd6xfODzpfv0 67+4X/QUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCKXZBj+Z75/cY/Z9vB8tnPX VZkk489w7m4sVvMI0wwxapi81u9tJMP/pJ1/77+SmfUiNqyG2+XDi2CHm4Z5fw5+ctn46fYnAQ5 FHgA= 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: 1752663127953116600 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 | 3 ++- 5 files changed, 13 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 1953842177f03691b3f401a4ea8b1425ef90ac9e..4abb3d8c84ee29de60912b4d589= 0074a39e87704 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1983,7 +1983,8 @@ 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)) { + error_setg(errp, "PostCopy RAM incoming init failed"); return -1; } =20 --=20 2.50.0 From nobody Sat Nov 15 09:24:01 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=1752663122; cv=none; d=zohomail.com; s=zohoarc; b=ChIsGn28+YvfopnA50q+tTlrelQ0y1v2cdj6EDX6iPZWYjAT+n2a1CkgCU7fNVq8lgEJEMl+OM5U2UVI0FvROKSMAIormlQA1TbONjmSM97Ow+kw+drv2okxWAG5jL0uXfwEzNxBnMcZvKm4/UVehHNWU34Ld0zri8jw0sX3IgQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752663122; 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=RH4zQZiGob42B10sEjomhzjaGX20xtgTQZfiov8CeCc=; b=NV5H+kKDBwXpTfiIpEz8K0FeiCJj0DHYosft9ttw9dHgh3iSBFGHGQXhel01hKS/0nkPtdZrIJo468S/vyzhkm+VFsVvMNck+F0aJVdn0PYzCvd/Vm2f3F8RRy8abuWQKN9/bixxp/OQACf8tUkVAYREdiU9qPlQMoaJtHzXeLg= 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 1752663121463837.6173387125374; Wed, 16 Jul 2025 03:52:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzgd-00054w-Mn; Wed, 16 Jul 2025 06:48: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 1ubzd3-0007YC-Vh for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:50 -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 1ubzd1-0000OC-QP for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:49 -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-421-jBClhl-7Ngmi0-t6mK-8PQ-1; Wed, 16 Jul 2025 06:44:45 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-235e3f93687so93256835ad.2 for ; Wed, 16 Jul 2025 03:44:45 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.44.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:44:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662687; 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=RH4zQZiGob42B10sEjomhzjaGX20xtgTQZfiov8CeCc=; b=GQE36lAPEq82txFDqT5km5NDLoJiWUVDddKDZEB9+ogBn7stKwbFWbaNw/VWJvMtjDo5ZT WuU+/n56Yt1NvWUijdG+6kfy9BkTkw5uMUQAE5tAeBV7U0bkBfuuUgAMdUOK6mXxNaDncN 0BmcP1zYAygzji5FxlhUb7ioIDeqt6w= X-MC-Unique: jBClhl-7Ngmi0-t6mK-8PQ-1 X-Mimecast-MFC-AGG-ID: jBClhl-7Ngmi0-t6mK-8PQ_1752662685 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662685; x=1753267485; 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=RH4zQZiGob42B10sEjomhzjaGX20xtgTQZfiov8CeCc=; b=WCVQ81LKgU+FI9uYoce6Y7Nxj6X6tSjninHSr7nbRuENhtXdA8j5GOOXQltuJDOqH7 I1vs+XuYfivZpPCZSrZI3c/gjIx4ePtp1n233Y0qj/S8uhoVhNgHQpqbFd4ihwnJPlt8 a9o9tzZ+rYBS0PUfUK36p4Ps0jjX0bXXTWitE5AVG/kLd9vHlbSlK3lwpi5lXdawvX1u e/GqgCGkrGK4RfUVyi73qUiIi9DyEtpjX5qDSyTopm5wOzvbnSUv51luNuUkch/3QyC6 B6qJhxABOoAJeyqmJad11jifwhdRRHEfTxaFibS9ZLoLhinPwux/LsSC1ZCSRHvzP6EV YJpw== X-Gm-Message-State: AOJu0Yy/KRz2eSR0H3ltOImsf+DtFUlP8468Yu3ie6exAAuUFoxQU0mw Nk4GsD1P8wlTo+v8i1pxTz3YHhXU/ahOUi7XsX0Y4MyMk7aRNWHaBwzsVeKk1BwpUHyaBPzTLdC Y2rg+6qX3+SdW7ek6+yOWaL9nCpAS+tDqeagFPhsXTkgq3NrwxjF4MCfe X-Gm-Gg: ASbGncur8p3xcMPUZDroo7ef2K4gBnwzv9ClAOnMJHThJasdudzYCXQsbm+9n4UYo3S 5wzXlNFfhT6o23I+WqHrMxX3MujI6w0xL4GkWEssPS+zFCvvYWKuTffit0lkJje+kJjoMlxoOrA Yp5LMeVSaL1T31BFWob7hCGlEMEY8Hufl3ovgHTt5BzRKSQ8zqfj77Nnp4vyHjOVufJ7Z43dVP1 jtHCHU+ls2wdOnuokrVdQysPY/S/w2wzvsmHVBJnHlIiVm1NkBUncfmMYYezpBwLt8ySwg6wQlI BKAhqlCxmFHharWCvXlsikbujLyLbba6sVVfEruI0USO3ykvVQ== X-Received: by 2002:a17:903:238e:b0:236:9402:a622 with SMTP id d9443c01a7336-23e2572ab4amr35627175ad.34.1752662684558; Wed, 16 Jul 2025 03:44:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGSCKfLrM8lhiLTWa/HyEulMZZasYUmYtxG4re9rnFpl7UWkYOHSXd0Kcsm076mFtAE2daJuA== X-Received: by 2002:a17:903:238e:b0:236:9402:a622 with SMTP id d9443c01a7336-23e2572ab4amr35626685ad.34.1752662684035; Wed, 16 Jul 2025 03:44:44 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:00 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-10-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=4720; i=armenon@redhat.com; h=from:subject:message-id; bh=jbKi25fcp5mQkx8LZiyzURjPs2y0Xokq93tE8MZBNOY=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k73vy6ZyZcGDDKqPai907ndZNuPLY65nQstFpzz8H KWn1tXeUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCLy8gz/g09bixRdkN7+6Z+J TcPivPP/p2/ziylgneC6mu2lEsuUG4wM99+8P86Xc+Pns4jiJRJFC1nWBoWHSGwv5eKv4Nj8c6I mMwA= 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: 1752663123765116600 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 --- migration/savevm.c | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 4abb3d8c84ee29de60912b4d5890074a39e87704..24ec721587564fa0432882d86bd= 5f71161f0aee9 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,18 +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)) { - error_setg(errp, "PostCopy RAM incoming init failed"); + if (ram_postcopy_incoming_init(mis, errp)) { + error_prepend(errp, "PostCopy RAM incoming init failed "); return -1; } =20 @@ -2619,12 +2618,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_handle_cmd_packaged(mis, errp); =20 case MIG_CMD_POSTCOPY_ADVISE: - ret =3D loadvm_postcopy_handle_advise(mis, len); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_advise(mis, len, errp); =20 case MIG_CMD_POSTCOPY_LISTEN: ret =3D loadvm_postcopy_handle_listen(mis); --=20 2.50.0 From nobody Sat Nov 15 09:24:01 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=1752663127; cv=none; d=zohomail.com; s=zohoarc; b=QL4ZTVwZ1j2VfjOKIha/dr1kVIKklPH97ZLJ36MOQuMWt3FExblSy7Puek1AylEhQxWv1x+oTmT9V7BMNAjNYXxOudQIBIImSsodYs6r7v2ud5aF9hxBewsKOtBCwDJocswMyXuOaPTFz7M8Z+Tnq2RE41Ee9YcaOxFFOtwvqVA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752663127; 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=XLZjV2l4Wf6Q+/vW5gTpE8hB78QEhHll6lKCkmb6uA0=; b=ZP8wCattqhZ5oXFxtQ8sIc430XLuKt05rTKNMGJiGVbDM+xjmS5G75NDm98RHK1Zhl1hI2BAD9dYWc2Xj8NjHscodlc+LBwvhFqRPnjahE2rRN4j/yGdjy5y8hlut5jgo4UDyo/9f+hXJHZ1y2tKcnFb9WskA097FTsop9h8GHs= 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 1752663127734938.5385179454616; Wed, 16 Jul 2025 03:52:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzhS-00008s-Ml; Wed, 16 Jul 2025 06:49:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzdC-0007pE-1p for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:58 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzdA-0000QE-8T for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:44:57 -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-629-Ps0okn4qOfqjhEt1ReZoHw-1; Wed, 16 Jul 2025 06:44:53 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-234906c5e29so75166865ad.0 for ; Wed, 16 Jul 2025 03:44:53 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.44.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:44:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662695; 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=XLZjV2l4Wf6Q+/vW5gTpE8hB78QEhHll6lKCkmb6uA0=; b=Ow/ni6nFYAulPRAEURFtFuvNQfAl5ulue5ljVX0y8TiWOINM5xB55PNHd+tIJL5pCj3/6v 078j963sM9bv/pTH/YiVdJHKhvQAR+IdRh22KG46pYNnlSwMlJYDF2++kvibs5lVGSkYzn 4hCYM7HdA/UrYmUKTLBV3Pvcr3vm6mE= X-MC-Unique: Ps0okn4qOfqjhEt1ReZoHw-1 X-Mimecast-MFC-AGG-ID: Ps0okn4qOfqjhEt1ReZoHw_1752662693 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662693; x=1753267493; 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=XLZjV2l4Wf6Q+/vW5gTpE8hB78QEhHll6lKCkmb6uA0=; b=vua+LGIqw/mwVCx103WWRRBCVcjvJIWnlfwB2EsG3T7OQel3Qt14QN3axEYnUtkEfr 4xBuBvo9JDsJHAKyQWEnEAlbUYjk37sP4Oax16iK1wsoJ74h+I3FLc12jhlspVH3QO42 zfQl73+K+GXtzDb9kJYo78hMhPM0cCwI/KhXZwlTWIiX7+tNGba5kU5zKx+o2YMJzpCv aK5DcH3G4QE7YZfu7f+BEjCbT9wzTcYMTL1vAL8E/yt8N7BGHDSkf4bIyj8bQXw/Uvh0 S6VbjPAiHJRfEdi+DO+KGdppXSxKMyXhI96BjyndNJsAYhJUUER3WwbC9AurS8bXv/9X doWw== X-Gm-Message-State: AOJu0Yzroe6Fp7Zea3sQ+lE0gyb/sEjS+HyqLb6cKO3rUQDHSU0wa2MT GzFYtxIKD4Fe0tC/l4Hjo3Pdg+yUnmw6yOUyOX3oL4SEH85ca62ZemesoK4edSTI3PYrtWSb3z0 KnZOFc8lf46lspdvgv+e3RF/JS1h/+AGrL4aUCCEq4Sr8+gTKvgGI6+Yk X-Gm-Gg: ASbGncvBQd7BbyKRFdw18jn9cUBobRspe1cL9+y2Mtn3qrtTNLX8/GUrN7v3LN+IlAx P0ksX3NfpU/XzxHhwMeUEA0rLpTTU39pVlRhBfPFWN7YoBM5MzZGTwWR4M7rlSb+aICw+Sz3/9h V0fU+i4nsDkzSnLI1+X4M8AjmsweqwBKyGJGCz3hWwSyh6l7eN0yPGbbfvmh/0kUZT9DdwKYsgh QcW8W1noIQ0Gbb4knfEauOUEDTwTgxZOX3lB2Bkwx4xBXrxGkjOWf0fd6n07mBChllEm8XLoJsw AgcTNyQu3mgBcQhLJideEKBZyrKAtrYN8MmhkEolanY+DUjWgg== X-Received: by 2002:a17:903:98b:b0:234:d292:be95 with SMTP id d9443c01a7336-23e2576c4e9mr30760355ad.42.1752662692773; Wed, 16 Jul 2025 03:44:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHiYgT4Wxv8DIavTSiOj+RgwwZ9a/uErDOyCKq5W1D4Pr1Mw0LCzNsT/wr9wQM/jPtX0tQq8Q== X-Received: by 2002:a17:903:98b:b0:234:d292:be95 with SMTP id d9443c01a7336-23e2576c4e9mr30759925ad.42.1752662692414; Wed, 16 Jul 2025 03:44:52 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:01 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-11-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=WG0DbpcviFJH405z4bZzYpqg3DN3q2mpu37lt8PpHMo=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k728nqZn9/wz67pmZLv15Zx5cnbOXp7+fLnmTxbGD +KmMVZ3lLIwiHExyIopsjR8DZBtCiiMiLR9eR1mDisTyBAGLk4BmAhfNsNfeTuHXjP3Yqm9XJvs Y2dl8L94opBt8E9bR+UHt134rQ/nGRnus+QveB4d2jAvPbB1u7xPqMSSBZqMgre3mqherFRflsU IAA== 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: 1752663129854116600 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 --- migration/savevm.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 24ec721587564fa0432882d86bd5f71161f0aee9..3ed399267af7ebc9746d81920ec= 58277485206dc 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 @@ -2621,12 +2622,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_handle_advise(mis, len, errp); =20 case MIG_CMD_POSTCOPY_LISTEN: - ret =3D loadvm_postcopy_handle_listen(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_listen(mis, errp); =20 case MIG_CMD_POSTCOPY_RUN: ret =3D loadvm_postcopy_handle_run(mis); --=20 2.50.0 From nobody Sat Nov 15 09:24:01 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=1752662997; cv=none; d=zohomail.com; s=zohoarc; b=fwYRgC8CPgjp3ZV5UGQ2Qx4myJf97avrKhLc4kkwiJ9DLk/8qoEto+y74bk/gnPA0qq9orQYedqFwhCxXjoyHsS3qXTxSY0OIP/rcZhxOPThovCPoC3dk3X9V0scLsjLic45G1R1SrPcsB36Iuxl19m4juxddC+fBOqVfqJLwEQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662997; 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=ujdVWy2rH2TqQ1lpfu7h+ecGhOShOixDP2mkaGNBTYI=; b=RGO4k25xnoVuH3UKFavvTWJzl6E93EdeJG7JK0XPxW6KmdPEVZBCTHKLOXYJWQm/yfI3GDF3H00/icl0dkqDrxLG2TOed5aRo/V8r1eURsfrtD3Gxw/1XaOJeGNX4ukSuV3cG0FS8wruSMb6Qhek1jbEfktDT7JpakYqzTcgtxU= 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 1752662997830693.0004979221259; Wed, 16 Jul 2025 03:49:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzgu-0005p5-1j; Wed, 16 Jul 2025 06:48:48 -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 1ubzdP-000888-L9 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:15 -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 1ubzdN-0000dg-UW for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:11 -0400 Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-627-Ij5GU4VTNHSDqB9dSZmbrw-1; Wed, 16 Jul 2025 06:45:02 -0400 Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-235196dfc50so9178755ad.1 for ; Wed, 16 Jul 2025 03:45:02 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.44.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:45:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662709; 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=ujdVWy2rH2TqQ1lpfu7h+ecGhOShOixDP2mkaGNBTYI=; b=FwYaQmhu4ZGRO1LpK48G7hO9dJYfgtcTimJDgNL4Rst9dnLW3tXtLH7IhD9Pc/+5KhxFjb J03EDXkf4RUjBqE14MEoc+XQEHcxTbJ6BJec+R5BtjQ7ISyBgDZNKQK1SABbZE4WildX2G BcEU86j9oVOSfPDJku4X9ieYlG/c26c= X-MC-Unique: Ij5GU4VTNHSDqB9dSZmbrw-1 X-Mimecast-MFC-AGG-ID: Ij5GU4VTNHSDqB9dSZmbrw_1752662701 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662701; x=1753267501; 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=ujdVWy2rH2TqQ1lpfu7h+ecGhOShOixDP2mkaGNBTYI=; b=o3g+9VAK4hCGYEG56da4MxTGuWqwmtU1haELL2E+O04jUejYwFjqF8XCXD3v8FB9HW NZrewuXlAs8z+DH9fuwpcTUD1njBwTmpRMdYBSvvy5XGcLEZ8L2zq/2Z8+yjXFo7LAmC O2dslHMFpY9PwUFMqNCGWhY4Y8coRE0Ba/PIZ48LQ1e2c9ceUNY6aJ7qNj155GELamAr t/ZzL5uL0DV8LIIpRNuSOsx7b/oyNY7BCNEhnJG/sYl9t4ttKOKWeAlGM5zsR7zbJicH auncopyuB/5STmKNrYKggAeQh+Zi6T3VQbgvNE4EbNjJjP4Y6u9FQ/SlJroMRoBqbWTo no2Q== X-Gm-Message-State: AOJu0YyYx7Fk3ntYC50J1m+9qffqhjrLHyN06Ej8K79mjUe6aQtx4qUx F6b7341VYTa6BSGok46ww8yJXYZ5qfNIJfynfupgjqD7wD9OTEFqpfqtIQSzidL3ua5Bqi4sQvK p1mOpsHUw98UFj/zt+kflHdwM7nqXdp/1OwG4LTAGkvELzYfAyLHSryT6 X-Gm-Gg: ASbGncu6MyCzqJ79E/bj7f4xt9mj8mWjuO6t18zOe6RYGPVcAnMY765AuJN4XTE7aRO SkNQHp79OpznRYxkAGcgQjBKfynaIa7q79+aOkQVaPqHu8quvWw/P/XYF+4Uj753uLoB0pbW8hG E7OzrxjRcfxhcJZta91DY5V5bc9tMFYH04AQT0Cypn3B7xKUYOKR6ZO9XNcBEETViDFCnTp3y84 G/MqxLlESxPlXDtUV9FoXdcSngWTY2FKzvIPpInlaw8izQ0qMEmxATeB1Oey2mTa5F/6MLq2Jx3 9OmBT85M1FbAPi8PF+SJkHidVvcQnKmkTzilEqgwB30zIvqxZQ== X-Received: by 2002:a17:902:fc87:b0:234:8a4a:ad89 with SMTP id d9443c01a7336-23e24974631mr37402975ad.1.1752662701151; Wed, 16 Jul 2025 03:45:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHUe4iqvtmplnsUcYLdD01H5nNfgU6s+vcAvatZ1JwEW5DNfCHtkGmeDkMklEbPOLMdqRKu7w== X-Received: by 2002:a17:902:fc87:b0:234:8a4a:ad89 with SMTP id d9443c01a7336-23e24974631mr37402485ad.1.1752662700723; Wed, 16 Jul 2025 03:45:00 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:02 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-12-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=pqon81xf7UTxZs8IxbE32QWAv4e6Je0V1F218bYc+1Y=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5kz3j6ZWTWx5rGz1Zz+xj26m0v7uQfd8Fl4jNV9cU3 dStPZDaUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCJBQowMf3aEHnk8/+EOMZa1 XCu3b1nW/WLn+tCVZtksf8pTOdxDfjIyvF3x7Y5rAFucUFcb8xffOetLaqbmNPX8vrFiuV4R4xt 9PgA= 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: 1752662998763116600 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 --- migration/savevm.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 3ed399267af7ebc9746d81920ec58277485206dc..d1e596045fe9b90f1037e14f84c= 92cc649cf8008 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 @@ -2625,12 +2626,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_handle_listen(mis, errp); =20 case MIG_CMD_POSTCOPY_RUN: - ret =3D loadvm_postcopy_handle_run(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_handle_run(mis, errp); =20 case MIG_CMD_POSTCOPY_RAM_DISCARD: ret =3D loadvm_postcopy_ram_handle_discard(mis, len); --=20 2.50.0 From nobody Sat Nov 15 09:24:01 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=1752662741; cv=none; d=zohomail.com; s=zohoarc; b=Foc/m7vQ8FJWG5iZQGlPiVP9TgN4YxUMudVAIh5IpIEsTpPIyS3oi1dVF2cF0lfJuM6I87EDWHIHue5l/4I/1cnNxmnaOqdGamGYzhqxIPcAvUt3hMzd1YXD+6YUp6Ok3L8KtgFt7Rri+/KoT3evhnte86MmDuIrSBfEnmW0z20= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662741; 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=gvyYpq9paFbRSHEAzpHUGCfYqPBFUVZxfNQh6SNxafE=; b=iR8w+04FOhU+6SPdYGBXlLggxS9j6sTDKRWxOonPgGjjIR4O3BmjR54c79Yf/t8DgV81n91EpoAGFIZ90jJcs0lTLqhNdqoOZzJi+irExqxHbyrD5PY9nWBzYhvJLbjfUjW7yJrO6HKjyJfCXfz2ECENmiO7Finfc/qSLPHTSA0= 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 1752662741427547.2903107973423; Wed, 16 Jul 2025 03:45:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzdi-00005K-If; Wed, 16 Jul 2025 06:45: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 1ubzdX-0008G5-6N for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:23 -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 1ubzdR-0000eW-Hm for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:18 -0400 Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-159-3Wl5XDVKNImFdFbKNH6Eng-1; Wed, 16 Jul 2025 06:45:10 -0400 Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2382607509fso38561665ad.3 for ; Wed, 16 Jul 2025 03:45:10 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.45.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:45:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662711; 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=gvyYpq9paFbRSHEAzpHUGCfYqPBFUVZxfNQh6SNxafE=; b=embbyUg1g3ix//KUDnIdysgomvAUCs+3yMtzgdXEk7iP5xjoA7dZcyk5k2wMLLBgqVTsVb LPwD0sSwoFrE8jvwoFN4DvlwU0hqNnufBD2ETWBlU9fUm0DEPnU1WgxF+oI+zP3iGyvUT0 kf4yMXDiUy/Wi6kDo7Q50sXNtvNXL3s= X-MC-Unique: 3Wl5XDVKNImFdFbKNH6Eng-1 X-Mimecast-MFC-AGG-ID: 3Wl5XDVKNImFdFbKNH6Eng_1752662709 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662709; x=1753267509; 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=gvyYpq9paFbRSHEAzpHUGCfYqPBFUVZxfNQh6SNxafE=; b=md0UfbIGKcz9tC+QobmT8blbzScim97Kij51x5BUYKR/7a+Vcvm5S+1ZYyT6+IXquL /5TfPvKmEbMwAzSMpnohw9eZhPl7UYrIZFjGil3zWOA8oHrPFGUa78N2uALWay4MFyBQ TpPTbNuLtYLD1dWHoxQTE7YgIUlFQSl5mBJ8CUxihqUPSHi55qINnfaPz4ZXTzYsO9hS lvH/OcpoSrcARSuUCrV1SqVg2yndRbYKWjNNUEZr8PhebYJnfa7NYM3KJEqKTGKYS0OL rUN2E5mJdHaMDu1cVbH7aq4fglkk5rE6econbppM82yDpgThtbwGjL7vCySQb+nE+IA9 Tgnw== X-Gm-Message-State: AOJu0YyGLhyaDSO7rOS2SdfyLgCDPt4gDMdBkVsB9OgbjQfYEtUiiDKN IkQs4VW4sb/1ivBIolD6QVH+vvPXpuBvYdHSBRqOGqCuzxCsV9+vBTGyFlQMZHEIGGWnCRh5YAH wwNdJi1+wfO4sG6AAoM4WSqh2/aaYUD/AK7zREeXHs2kGZDD2eqtdzhsJ X-Gm-Gg: ASbGncu1hspjl4jowW8ebsG4CkseIlRNU1DW/l/dLNPUJ9PV7LwkIbTkvSstCZMokUP hviAe8bFAGyWPFXD0gbDMXzNznEpd21pvtyFrXtT9speyI0wskZGknA6K0m+XIvNIzUwttfm4a0 8L4MdcNnapx8gDJnB2eMDxCT4qQhXdKOUrqZzflNVQ5ZlqJ4WeYX+RuH0wkx7UHq3VVHc4t6Xsi tayFeT5V6JTeL4oMHd8/PVxe1aigZxAFQUw96bzySuQw3VUbjvDTE+W4KFABPa5gNuevT2HFrsi WdZ3wbMGltVM15raeq1NE/LCbKi89pbuAXHoubvtuRpvwHZQtQ== X-Received: by 2002:a17:903:908:b0:234:d7b2:2aa9 with SMTP id d9443c01a7336-23e24f4a94amr36179295ad.29.1752662709372; Wed, 16 Jul 2025 03:45:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHyFVElchnE356aMDgibEtIvcJiOjdFoh9Oc7178iDjoLPKG7Ct+A0mLHeDeJIJcP03Z8Skfg== X-Received: by 2002:a17:903:908:b0:234:d7b2:2aa9 with SMTP id d9443c01a7336-23e24f4a94amr36178895ad.29.1752662708911; Wed, 16 Jul 2025 03:45:08 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:03 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-13-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=Ra+8kdatdmKEnRnAk6rCW3gE9dPy8Sy2kq1igPeI1z4=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k/225MSMkyWf23Lmzz16POjOatMznzhkon5PMXyYP MOy+YVsRykLgxgXg6yYIkvD1wDZpoDCiEjbl9dh5rAygQxh4OIUgIlc283IcFZ35qkbscdfqd9c Jm7i+ZL5zpUt/28+fnNq+URdlymfdOYyMnwOmc7dmC/G6L9eZRdz2ZSFIUff+Ww3CuDjmGB5r2C fEwMA 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: 1752662742024116600 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 d1e596045fe9b90f1037e14f84c92cc649cf8008..9843b359c2968098bef3c7c3ac3= 36a5cfffb9917 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; } } @@ -2629,12 +2632,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_handle_run(mis, errp); =20 case MIG_CMD_POSTCOPY_RAM_DISCARD: - ret =3D loadvm_postcopy_ram_handle_discard(mis, len); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_postcopy_ram_handle_discard(mis, len, errp); =20 case MIG_CMD_POSTCOPY_RESUME: ret =3D loadvm_postcopy_handle_resume(mis); --=20 2.50.0 From nobody Sat Nov 15 09:24:01 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=1752662989; cv=none; d=zohomail.com; s=zohoarc; b=d5hK3M126/vWlv/EMLG5nOFLvK/XHSav8wwMEtKzlCuBqgAQQdnA0OTjwugpwSokLvx4fX3CKkFyNFe30wY4heqFjpFxidFQ9H+RO6n/s7k0DenBxG1fxg9QN27CYc7bWtmaMcrNbjZQ7xMDaaGs3RDKRGKVfWEFm8GhdhG+5E8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662989; 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=pk7ECmEWBWCtqLQ5Fy/ewJ4UrlKpzE3br5jslXWi6+A=; b=FhFiRSKP6t7JaDOq80nKTsC957AQYF94xeueUH9ELcDJsxxNWowgTeBOQtOz7Td/0hq3Az+dhIopGN0fmtKCECCzxJVB+10FBGj41C0TbG4PiEF7QyHFgURwaXoHoSTazVNsWhnv7liueQcI0FIO4vmvy4Z9i+aKfdYhE2rmHRk= 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 1752662989952248.27472466036272; Wed, 16 Jul 2025 03:49:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzhB-0006vq-NU; Wed, 16 Jul 2025 06:49:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzda-0008Gj-T6 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzdZ-0000fj-9a for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:22 -0400 Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-220-SPqPsM5EP4WLzT5F_PQmIA-1; Wed, 16 Jul 2025 06:45:18 -0400 Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-235eefe6a8fso51241585ad.1 for ; Wed, 16 Jul 2025 03:45:18 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.45.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:45:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662719; 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=pk7ECmEWBWCtqLQ5Fy/ewJ4UrlKpzE3br5jslXWi6+A=; b=ZAqct4J5Q3FTNuwog509k7YQvEM3fSyQr/2Gvbp7p2an0TQfpzoWOhj/uwMVoh33GbT271 6CSEBVdGHdHQ5J9701f1bwq9kNSXEc4iVVDw4mkme+kM65jMBeHheCnmtvWi/13iFdUom9 7G6CeLmGTIh0aq6aCQDb/mV75yazeT0= X-MC-Unique: SPqPsM5EP4WLzT5F_PQmIA-1 X-Mimecast-MFC-AGG-ID: SPqPsM5EP4WLzT5F_PQmIA_1752662717 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662717; x=1753267517; 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=pk7ECmEWBWCtqLQ5Fy/ewJ4UrlKpzE3br5jslXWi6+A=; b=aAprnmILyQDkea4NmovIr/GxSN1Mb3EcR4AjniJitYjBasHEMpN+prQBtVzxUzwDkA vSWV/IS7nibyOyfexLbgHdfFHnfHkkAHa3KZB3tBh98CxhozZ4GZKe5VZ+L/n7l12aUY 9I2aDeFsYaAW5g1kEOgEBJH5x7vWsbSKPByiwf13mHmwJy0YoUGf0tKQBXNozenEAQ7k KHRRY0OMT1KryHlyDCZtrZpO9TsjXCVsxnmURVn+rx0m12ob1meOS/skQZkDuvWkPIZF O1QnFytbKZY73OVlHsPYNjnl7N4ZUff69dzZrjb1HrLWGTURPzZbj+fIzNTTom/HpJ5X jxaA== X-Gm-Message-State: AOJu0YyucZLp9+03yjUvX1h1RYRZ5HN0lfJpfaUmQslrg2Ikw08JERHe t/N00nnUTwSe0bOS6v/zT64AtjKEEoD/8IPEN741PGpgrvGC/VvaWrYjnn1TCUUz2L0EnNsuxHc i9xEwZm70gVTFcUhwi2qUg2ejs7XptKN9e434I6kQW24DHQP1gdMBCju1 X-Gm-Gg: ASbGnct87a/eWmfD9m37KihCdeoYDLK6zRmWkJgRqcCBK4I4XYhhym5e92sZ5FMjR/0 UI36srmDGQvmohWgT73C5QNaEhoRKhC+qEQ1EroOBxa9MoW+naaxSz0DWzinvsV8wAZ11XprQIT ahGcOng6TmJllkkhiERyhKJ5IhZ5hHpbQp6t9NM3RsxBmpmfKM4LVqVlGCWb6BokNQb8CkTbcq/ ys+RxJNSZ+O/BhvRy5/+KZj1ICedAWHtMXFw0uyJeXvtuqwuEQ32N38joA7dPF663QwjTGi6A/Z QcI+ugbUpcgtmTturu9OTmypeMqxya9XZVftKRbEP6XYKkqKYQ== X-Received: by 2002:a17:903:2c6:b0:234:c65f:6c0c with SMTP id d9443c01a7336-23e24ed62e3mr33721115ad.15.1752662717545; Wed, 16 Jul 2025 03:45:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEPL0viZl7YYhDsNJ9rZ4PhjiemP3bdYADqTwNHjMLC+Xo/fbJ8/4tsXLGqA32+i2zc+nWzYQ== X-Received: by 2002:a17:903:2c6:b0:234:c65f:6c0c with SMTP id d9443c01a7336-23e24ed62e3mr33720695ad.15.1752662717160; Wed, 16 Jul 2025 03:45:17 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:04 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-14-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=+X/H+PuaDcKnGLgxS1vHYslTov2C3HY+iFWJdSwjVr4=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k318ycWLj98+mm6/qfh4uB2H/e7Cz+7ytx0SxE8fC Ta/68/ZUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCLdtowMP29NtOdwr/MSkS4W NupTNxSwcLT2rFTrLJ0kFip2Si+ckeHC+5zKgFtuIlNeh7wVSo/5tau7RnpTQHm15bIW99Ybvzk A 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: 1752662990763116600 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 --- migration/savevm.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index 9843b359c2968098bef3c7c3ac336a5cfffb9917..b5cd6497cfe4eeb1a9428d4adfd= 52e4c8a7e7bb0 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 /** @@ -2635,12 +2633,8 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return loadvm_postcopy_ram_handle_discard(mis, len, errp); =20 case MIG_CMD_POSTCOPY_RESUME: - ret =3D loadvm_postcopy_handle_resume(mis); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + loadvm_postcopy_handle_resume(mis); + return 0; =20 case MIG_CMD_RECV_BITMAP: ret =3D loadvm_handle_recv_bitmap(mis, len); --=20 2.50.0 From nobody Sat Nov 15 09:24:01 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=1752662987; cv=none; d=zohomail.com; s=zohoarc; b=XgA6/oUBq2WAJMVAS9bmeBp4iLv2VEWHEctMFCq1FgiHra47ac3UwM/Kdsr3kWjtyGevPK8Pi69QHcDA2ciI6ZSvL5w516Nplb5G9I6AbFiIlxiN+R3X79YrvcSPAhgm4imTnuKPEq5PcB9VglSWbbJdzqYVgwI4+TPlP/T/6mU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662987; 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=Dng6vSqrufpXyR51i5KxpTr40UkIvxFqTj6xvsgMitU=; b=JQXhzr/hspP7oypJVTJeuQMH45yQr9hfBW2CS60yVNSRM+BzeKQAqtsCFwf5QUuRHTywMsE9WPa2g34HeG16+RYZDXmoa4zVeTSY84T4Ej6dUJWgkRDfLQAZbSoszvbFjvvaj+Qq5x569rqx4eo+TEbLFvegVHoslw01j10wenk= 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 1752662987615990.975799077861; Wed, 16 Jul 2025 03:49:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzhG-0007Yx-SQ; Wed, 16 Jul 2025 06:49: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 1ubzdo-0000M2-Ce for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:36 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzdm-0000iT-5E for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:36 -0400 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-691-rGQkpOSFPDOl0IeKDKDGYA-1; Wed, 16 Jul 2025 06:45:27 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-235c897d378so63935865ad.1 for ; Wed, 16 Jul 2025 03:45:26 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.45.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:45:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662733; 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=Dng6vSqrufpXyR51i5KxpTr40UkIvxFqTj6xvsgMitU=; b=DEZFL8ooheTqRc/yNezEEmXJcgL1WHDPn5E8QESrkGPaRglAyzs7rzTXhlXKvON4RVtocD 4YsqnYuii0U5m9ELSBkoNIlqt+F6m3lwiKFYDZuZ5q9VZ5nqz+ACzx7xMrYhNxU1pjVFli budS1mlZOiQiVnD3GPs4ANlx/P0kBP8= X-MC-Unique: rGQkpOSFPDOl0IeKDKDGYA-1 X-Mimecast-MFC-AGG-ID: rGQkpOSFPDOl0IeKDKDGYA_1752662726 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662726; x=1753267526; 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=Dng6vSqrufpXyR51i5KxpTr40UkIvxFqTj6xvsgMitU=; b=i7qdUwvIPko2t5eOv5K3FKSY/sN3rXKkyxDYorqGZeSbyJTJLs9b+R0AOp6WxX0v80 Nu4T3UG1tOmhx+uoIzdR1m2tTbgfKdn4sRP4L1fM50Q5CeGo5QUPJYcN27waKrz5PuAy kVVActmSinb6gO9TSho5FUqR/Wp2wTyiefFp33run3yEDwR48MZVEP8xqJDmMWcl5T8a StbIqlYnRCEW4XiDxbWhU1JfsshkbC2/V7oNN5cFzhf+pK38mzvI+lAqorTJOzQ9iv5r Pbr80iMOraA4rDBNfNEsWL3YA/Z0gxTdPYvv32huvQArnYg9Zraa0R9LOuATUFyAM5rW IIVg== X-Gm-Message-State: AOJu0YzfU3A0erQlWHDEmiT1myznYMWmDNB7rqr5o7/LTgdIMFqcbZMw ByrEGCwSYDzTRJg03/5NcaxyOeVgZhlbJ9cAcJsbBNScB9vM2GP9tZQuEJehGDpTZoLf3Q33XiH M5syt1HydXZUSUfqjIwK067eiWfDfMJ/UCa9UNeuiBv8Xtz0S3NSGEJ3t X-Gm-Gg: ASbGncuknBe1afZHN9Afvc7RXRBxohHzdzXjMpLMPyGerfzb4XBiPqO5xvXxUt1C6oG ZW2iU9KvBHswwN12UOm266Ot3TNI6t26SGFOaBMy0Zn/GbSM8XMPaTJGTKGQP1n0Tun7J7rhr+2 CVYd/OUy0PKcTsfdGyCXhcF4cGGG7EvKT2V7PFROAktf3ey9On/9hf4fo8pBlzDTC86gImIJzjD 3rsSV46P9jkP+DodTmgKOnSRp8DjKI4cwi4e5vWUeXCnFybvJkYmzUQNObWbMp9kwtq13KPGBhJ UozW73m9opmLRLKjAyw+n5yV65BbGpG7+mhK0VlO2foh5t0h5g== X-Received: by 2002:a17:902:db02:b0:235:e1d6:4e22 with SMTP id d9443c01a7336-23e24edad41mr30206875ad.18.1752662725958; Wed, 16 Jul 2025 03:45:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEQ6Ek2ylb1ki6V8tAoqqUg8pwGxoDspMOVIOiqZZaqEokUoT+Q95CAxKy6kqdUkttuGSPXyQ== X-Received: by 2002:a17:902:db02:b0:235:e1d6:4e22 with SMTP id d9443c01a7336-23e24edad41mr30206455ad.18.1752662725511; Wed, 16 Jul 2025 03:45:25 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:05 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-15-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=OK/G4eLMLYGNnFMdJVvuVUfN3MCT7LeUHUqNn4XjsoY=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k710zZtLfk+ef731dIr3xoiV1hZPDxav8vrzj//Ts dUTsj8e7ChlYRDjYpAVU2Rp+Bog2xRQGBFp+/I6zBxWJpAhDFycAjCRW98YfjJmRcrufBB9tXut wk3FarXTV14m7TmtOmNz8q8H23+/Mepl+J914IST6Ue7hS9nObNvWGQw13B14jd37YpbS60uX5T a+IsfAA== 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: 1752662988740116600 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 --- migration/savevm.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index b5cd6497cfe4eeb1a9428d4adfd52e4c8a7e7bb0..6f42ae111fd9c98c9b85e9b292c= aad737db0706d 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 @@ -2637,12 +2640,7 @@ static int loadvm_process_command(QEMUFile *f, Error= **errp) return 0; =20 case MIG_CMD_RECV_BITMAP: - ret =3D loadvm_handle_recv_bitmap(mis, len); - if (ret < 0) { - error_setg(errp, "Failed to load device state command: %d", re= t); - return -1; - } - return ret; + return loadvm_handle_recv_bitmap(mis, len, errp); =20 case MIG_CMD_ENABLE_COLO: ret =3D loadvm_process_enable_colo(mis); --=20 2.50.0 From nobody Sat Nov 15 09:24:01 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=1752663240; cv=none; d=zohomail.com; s=zohoarc; b=UiCmB8yVbwfmuphoRFIq+AcJmhxNyIMZZtMKK//tJpmY9PPMiADVjb1gGWn1IFxdN/BCPZTtnpxishaxD5wfOrpt4mHfL4cCft7dsPIB3E0829jdPYQEfa67GI/GFKJFOfLj5rcDV53imlQxYoYgUcDorQQ7Dkrt+D7umbRnh3M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752663240; 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=UJUnk8SbHicXLpcNeizMsdmVmWoSkURxjXg/ZmoasiM=; b=Ov8w8v5bLR8EMaze3z5/MMnh1/payfjHOIPJz3BfPpJoYtNceSdVYOQo7QyjPwDiJWzo1i5nM/hv2J1ftLQv7nH4h6nWFKWIsMKGb9N8L0JS1n6IzqN56KgrluunKffJ3B8VgcY3ad5F0dbsdkzzzRyJ8s6+H5Y2va23LHITY+Q= 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 1752663240340551.8637423957415; Wed, 16 Jul 2025 03:54:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzeH-0000u9-TY; Wed, 16 Jul 2025 06:46:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzdr-0000ZO-Mk for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:40 -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 1ubzdp-0000ir-SD for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:39 -0400 Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-375-L5XisO8KP8GVDdvXREQ26w-1; Wed, 16 Jul 2025 06:45:35 -0400 Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-235f77f86f6so62323455ad.2 for ; Wed, 16 Jul 2025 03:45:35 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.45.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:45:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662737; 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=UJUnk8SbHicXLpcNeizMsdmVmWoSkURxjXg/ZmoasiM=; b=KDdQa5Bj2aeI7fgFPiu9xm6NHkBMMTCKVD20wFl54mIeux0PxhHTmMYvqbxyXU0r2U++Xa xOtvixArovKc1wyv9S2Os49ao5rnF1bBs7GuCv03pnzPrXtbw8ZIIK2tA8IXg/W850BDDQ 6a7IZtXJtV41qb4aF8McFiAisCkU/CY= X-MC-Unique: L5XisO8KP8GVDdvXREQ26w-1 X-Mimecast-MFC-AGG-ID: L5XisO8KP8GVDdvXREQ26w_1752662735 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662734; x=1753267534; 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=UJUnk8SbHicXLpcNeizMsdmVmWoSkURxjXg/ZmoasiM=; b=Nfyzlpb8xDNSvFlD+vXpXaIje09gCQA/P1sOFSsp82aFcyJ1e0pGEtwS69GGzEsQkz UlZKousGblzAVKeGZnNpiDAPmD8hmkhdSWzY8qJ+r7ptGUHE7G6nNbumu6kdhSkTsj6x 1qGPTAkaa5HuywIJ/BtQp3Xnw4dfn4M6y7VMD7KP8tJ9hVdnhvELpH+t3IaDzerAqsAF s+80MAF44SbOshzrQtzZq6ZWxq00jwSFX/A2ITiw5UbtkG4GXDI/4PDF8BFu30hEclHO Lj1Y+wSub2NpkpU9L63gO3vhSXopcT3WR4/5m3GGCvubLTts/Z4YB0G3gauc5w3FWHSC jysw== X-Gm-Message-State: AOJu0YxOLWJYxF366jSvfXoaJSSFBEX99jjIVBNGiWqY2GackhxPgXSz M/ZtVn9DSM3wLZuXB1XjarPnfdRmYXmVykkw1sREVbunCkfO6aOA7qSj/vu67FzQ/gkjPXMScBR dP3bOz/WrLGm3+qQqfK6tsTy1+L/zRPoJuL/xtmYcV01aLPDBZvUpCHkV X-Gm-Gg: ASbGncs4JJXObCWyJkcp5ifyhdLYLMhGY9kKzQScVPTkQ7fxqnbcjUXwENFrClZmgv1 n3MAMYFtWQHzJ5C7C6TdZ0baxYcvLXQj2bn5ek+8ays7QXjkM6nfTgN49jvtTuL22W2NQzVC7Bs LXmEoNONy516Upl2pdL/pFUJ2wkGCf91E8r0zEtyCpA/Ebaw8qwe/XfvHSuop1u6cT58lGVb+Ps ZchCEXrD0GZYKvErBvHo7ZCOMRJPwX0irY3dLpNegKZThR9Z403rk/A5j0bvqsko3+ruOMx/E+y UHAbePRwY9gVbUGAfyHIYdt06epfwD+1E7JCpIC53Eo8USxdkw== X-Received: by 2002:a17:902:e885:b0:223:f9a4:3f99 with SMTP id d9443c01a7336-23e2572fbcemr35602555ad.29.1752662734502; Wed, 16 Jul 2025 03:45:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHzqxEKzTLJ5nOW3U86NICBS4cmT5Jw0X68sv51D9sumBVQNFJUwKZUYrXaMlGgKfzosq8gGw== X-Received: by 2002:a17:902:e885:b0:223:f9a4:3f99 with SMTP id d9443c01a7336-23e2572fbcemr35601975ad.29.1752662734054; Wed, 16 Jul 2025 03:45:34 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:06 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-16-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=BZ6FKJqahQF1gd7Pro769BmCrdc2KF3bTnabdXOwHRE=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k4PvlfigI9vPySwKKJ+jaPtx4jkFtas+H4wzqtedT d0jm7S7o5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwESSixl+MsqdcPG/vuyxjnjb Fm2hr0XcLMs1d2/R+JfFyHhqXcaRI4wMj10mhtZILfz0n1/H8XeF9tRp8/dsnatr21Mfz7RBqSi PAwA= 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: 1752663243029116600 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 6f42ae111fd9c98c9b85e9b292caad737db0706d..a4add82ca0f654bfe7252ae33fe= 80276f8ee5ffd 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; } @@ -2643,12 +2647,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:24:01 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=1752662821; cv=none; d=zohomail.com; s=zohoarc; b=YNR6ccP9DFqnLSt7majCcsclbamvEgMDPWWmWbUMppyyaujuOlUFRNa+aL/1lRZOo2DCJ7oIoLc2oVMqXhsu81RIEMVXkWxMi1v0ZB6IpgbTjLC5FO+NT1IHZNd5/XOwDOHlsik56pWDfOXGoSSI9Rax1/ivYJw0OEO2JTtyJ2g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662821; 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=NAF0noMQurlPmtqo1YEukseuZMatujPkgBB0tdCHQME=; b=JRRL5gE0vrj5pTSwx1uRlZti/h48nt6p4m/hxMRUtPyeJbqjRDcXAzB944qkwggRbyQxAuzR6ATsjgsKRR46+d5rhell04zqAXHdIF9zcKNGukhJqX67gKnnOpaxnlIu8VdhgGGXXi/HuYppUgWYWybUG5mPrddAj3zIuODcHNQ= 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 1752662821790698.9770899759872; Wed, 16 Jul 2025 03:47:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzez-0001o0-V9; Wed, 16 Jul 2025 06:46: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 1ubze0-0000n5-9E for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:54 -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 1ubzdx-0000kH-Ie for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:46 -0400 Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-651-tdm96dlvNne5NehGoQk2zw-1; Wed, 16 Jul 2025 06:45:43 -0400 Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2356ce66d7cso105079375ad.1 for ; Wed, 16 Jul 2025 03:45:43 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.45.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:45:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662744; 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=NAF0noMQurlPmtqo1YEukseuZMatujPkgBB0tdCHQME=; b=guf20WIns3o5ByICEJJpfr1v350WXAnucxeOcZpzBns+Ny+mndt2mgQw/2YMPJTbrTGNlO AOqKmTYngHmIoehRyYcUW0y2UBB/nrW/K9GpuPPSy8n5z2LuYHYOrQk5H0Y5GapI4tmS7V miG+YEjF+PtUVXjU/G4LKiBBUezsU1M= X-MC-Unique: tdm96dlvNne5NehGoQk2zw-1 X-Mimecast-MFC-AGG-ID: tdm96dlvNne5NehGoQk2zw_1752662743 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662743; x=1753267543; 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=NAF0noMQurlPmtqo1YEukseuZMatujPkgBB0tdCHQME=; b=wMGSmmQDtVAW+6OzAdEtV/cINay4Va2zeMB7b0TDx7UzZ2+GICZJzJRyNt6gDRMwXr YMQPSEPmPLIi3n9O5YvGqhQOmx9b9nn2KZEklEaBxYc8bvRurjgjKDvJ+2b6Ke87ONpf oNvZ5Toq6qTdqgscA2atpdfrIPBGlxteP6awNbCJhlkAZLD9yvQH2TFTDuF6CbdmAYBh SmNWGrwYj6L901SscDc7+LpcnF9wwRfrkcqe5VRM8k2fOTBHgHZPUkAwpKhcME66tu3F UsvrrRK+mWX4JIVIIUMWk9r88uouVMUTbH6IQXV5VeMGNGPSfpIza/rXICypAcW4dw/k SkDw== X-Gm-Message-State: AOJu0YzmYPZIfQHx0QcWkxPxK/HNBiTXAW00n4kIOuXzfG3J2j+fVop0 LTK07YAF2MVWUnA3oe03CX0i7vp2J7G1PcesaWc7m5tBMC5u6Ab4rjol4V5R05fEWxhw0jsENWa 6tR6fdHdql0mD+1oCaDeI9Zpb8jm3DFBRItKYCUi8HuPpkUiZKqRwV8up X-Gm-Gg: ASbGncuxa4XIz8DDOy9q7T/rngCFkkx8dkQEza+kv0j1siyUEuWRQimQZUfzQhNLGvw 1ciku7tpcHrhCfH1uNlPaZTignnPyOtkOYVwQz0sYTeZFXbzfRWCQfWlJJJOfHdU2+kAbO2OwMN 8Nl+TWwSBiRubX+t/lQWWCWIZhSM4wRFJ/bg1e/H4zgSXoBPk2SBt4KPxHwndas1b2VER0QBbuQ 1KTtr/IeTQ7WDh58fQMQqlEnPjHtd5du9zUPA0s7xcE6NyRgI0JM760pWHT1p5eJjSfgZdH59lD 2E+djGYnfxJiUxcv0gzKSY8RNQtaptMZp0sr6yJQuSXiNsvXUg== X-Received: by 2002:a17:903:2441:b0:234:a44c:ff8c with SMTP id d9443c01a7336-23e256cd198mr25672225ad.18.1752662742815; Wed, 16 Jul 2025 03:45:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEgXTnKwbVMwED7PWRJJg4zwTIoeB7824IhEhz7AqE61yP3H0zVEz/wCqPY4SxNtmvQ1du5Ow== X-Received: by 2002:a17:903:2441:b0:234:a44c:ff8c with SMTP id d9443c01a7336-23e256cd198mr25671635ad.18.1752662742413; Wed, 16 Jul 2025 03:45:42 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:07 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-17-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=i6EtI1EJtxgu7zEw9aw435DaWLJjjvNxIDw6J2FQGlo=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k0Pmipuzl82WrotT3Gps+FLcMkqZtSt0AlNIoObEe JuQixIdpSwMYlwMsmKKLA1fA2SbAgojIm1fXoeZw8oEMoSBi1MAJrLpLyPDMeM/PMp2BbXWi05c WFO4vbHkY1srm/qOltXfM++XFEmUMDJcfsU/uyPOMlfpzkmhlX9rt0sec1isI8CzMufGj0dGvZJ cAA== 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: 1752662822910116600 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 --- migration/savevm.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index a4add82ca0f654bfe7252ae33fe80276f8ee5ffd..2df266129f24d3d0d24ee84c3a8= d2f494e50d03f 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; } } @@ -2650,12 +2651,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:24:01 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=1752662838; cv=none; d=zohomail.com; s=zohoarc; b=W00qrJj/IfIkJwi32HoAHqzJAuwqgm/nTmZA0C3FRSR+4sj3sRjXziiuaP9/A+/IwRXdQJU+NJPVbVId/HDEGiCwDbMe5jmPYt+/1UolPUKaOvxE9QHM1uxCdArS09zGhL8MEQE9nE+hjX6Hl+5L5IENRSxxdSNoSRramv/cjPU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662838; 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=5Eulyyn+2otse9TUi4QH4UwFKsK7ykiSxsaBtB448HY=; b=fzaOanh2YNsBNBPTjD5wR1PmNAV/gkHciZoBoWNmH6tI59J1NaHiF3gBkiuaiOqgwdnK4ydWqMyOxAAJ9cEzZBx3BLdW/ToQ92qdYawkmFYjfeAB5RCVZWejPRw5Wqt+OAITk9o9lSJG+r/rr5/gFRmzTLIC4vaGFzZAuu/6pyk= 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 1752662838598648.3063208577013; Wed, 16 Jul 2025 03:47:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzfK-0002Sv-Ln; Wed, 16 Jul 2025 06:47: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 1ubze9-0000pG-Ds for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:02 -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 1ubze6-0000lh-7e for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:45:57 -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-5-dkqR6IfbOfaq721fnXUFpA-1; Wed, 16 Jul 2025 06:45:52 -0400 Received: by mail-pg1-f198.google.com with SMTP id 41be03b00d2f7-b2c36d3f884so5169600a12.2 for ; Wed, 16 Jul 2025 03:45:52 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.45.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:45:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662753; 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=5Eulyyn+2otse9TUi4QH4UwFKsK7ykiSxsaBtB448HY=; b=G5cvrpbDZkXDSoaHnQx5iqBZRywHEH77vy62mNGlRggSUoNccaTLmz3sfzfwKCckYksf7P vSG+8ul7j9kbat3acYvXQcR6xbx/GhVB56b1YajXR9U7BdlRO119TlKeBwfPIEsUTe+2TM Yzjjx+mMeUVYBQD4x2X9AogYJxq5vos= X-MC-Unique: dkqR6IfbOfaq721fnXUFpA-1 X-Mimecast-MFC-AGG-ID: dkqR6IfbOfaq721fnXUFpA_1752662751 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662751; x=1753267551; 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=5Eulyyn+2otse9TUi4QH4UwFKsK7ykiSxsaBtB448HY=; b=as2BF6E/vIPbWFeQESiQIYb/dKBwplnzMPY0vbLxZYz1fasFAleWnSUkf82y5P9ENh 6RxiEhRf6tcHzd/fxkxAp0t9ZLvkjqaDpj0M7zWFYVFbQCSYt1MtIamqJli3Iu5x8u1z BgKghq8iVpRtrBQ/wxWqPYz+V+9pw9r/f4aJcaB4boxnZvT3/vIos+lR+02UUUykV/Dw yb/4NnhGST4pj5wdmj/5imfn/yq51GcvYYBIdhGNIcFHjYpE6j3fuoOS18nUe3KvtL23 +z74Gvklx2zK0bJZcQOcKRXtQANcyZWax6FnSAUchDYHJk9fZOUM0fnxVZ7ikaYf8/Ix KEow== X-Gm-Message-State: AOJu0YxxbfLPvyGpwHoUrOxFoqu6gVAldkd9iA0kqY3H3wXHLZg6GHap HtXJGuhAxR6Bo44sdb5RCZOF/1UsmD8ljwebxpLo1g/jqpOCsZSThF0mUvoA2S6SPu5y9D8U3AX SW6PegkDYKMvJnKj3aRQDg1s1LlQN4iqJfnJhIhQJdL3uHgeHy+M0IvFf X-Gm-Gg: ASbGnctQo4rWS6cTnwzkJItHYO3dZG41KIRqGMBUMIKItNqhhTXrPx5YXEBz8eYa6yw FTGE5v3NIJ50mOxUH5gIchm57rsjhnbplH1qog+3vz9OBT53FAj+RzIjwVXtEdDTTZL5UO6jX+u 8SLy5kGXy0nqBmEBt7JOAA7VZP5tq0ZwU1AYIKP5aCLpx5V9yyJT/lzrLHlj3SwIyEMS2VNpEqn A2q5BhoK23nnVGDmgx3HANiKNkKqqHaxGlLmrRc5iXBCAFfWn7F72CPG++G0GtGbKu3cDVJ3omo HIFw8t8FO3diTX0fSc8z0gQBdBdXLkeE/8DHV2feOpVSwiwlAQ== X-Received: by 2002:a17:902:f602:b0:234:d2fb:2d13 with SMTP id d9443c01a7336-23e256c7a2dmr27263845ad.18.1752662751280; Wed, 16 Jul 2025 03:45:51 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEVVMO8orcya5GvtroxOq/dqGf6AG4KVNY5mvVx3XkLbS8xTyPx3vf9K+zSrJMSBglDpYoNmg== X-Received: by 2002:a17:902:f602:b0:234:d2fb:2d13 with SMTP id d9443c01a7336-23e256c7a2dmr27263455ad.18.1752662750909; Wed, 16 Jul 2025 03:45:50 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:08 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-18-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=8Rieh1unsscatlf5bdJzyn5v7vl9e6b6H7ZJQZUsVdk=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k0PQpe8m80U4THnPNLwvYTQWbzP5t+fLm5TZmv8Sh IU53Gd2lLIwiHExyIopsjR8DZBtCiiMiLR9eR1mDisTyBAGLk4BmMjxnYwMhxdPW/U6LsLMMdxX QCFxZ31s7bb735NKG0uOFKs6/VbgZfgf99/y+a3NEaEbVnGaxN+92iVuvP/azWaHZXvD3ayLMs7 yAgA= 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: 1752662839331116600 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 --- 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 2df266129f24d3d0d24ee84c3a8d2f494e50d03f..9752fad6e1aa2d677b68cb6ae91= 80d1059d54019 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); @@ -3057,7 +3057,8 @@ static bool postcopy_pause_incoming(MigrationIncoming= State *mis) return true; } =20 -int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis) +int qemu_loadvm_state_main(QEMUFile *f, MigrationIncomingState *mis, + Error **errp) { uint8_t section_type; int ret =3D 0; @@ -3068,6 +3069,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 @@ -3075,20 +3078,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; @@ -3098,7 +3101,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; } @@ -3162,7 +3165,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); @@ -3236,7 +3239,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:24:01 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=1752662863; cv=none; d=zohomail.com; s=zohoarc; b=SdGllmUAhHGHtuVlVkcftViQtkFUT1ianPdjsPR21CdW2/ujbQe4Fu2Lqy0o8ojiaSyoEimTejIj35bYIAcnJHoZLjZbTbyVoCajktXBg8ZlEihxHSL3oRCzfT1BXprdBNAmjMR7W/1W3mtjwx2EAv6ZIiHizoeKA7w4+u8P6lI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662863; 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=vH481x7IL588bR5xEyAd6GIH6MgLnEAsXHK0PE6cgeQ=; b=NFM9RNUkKFpFn/sSykAdnOCjZR1EPexF7kEvaR4MeJpalT0pbPblKOgyhQq03S5cYyf7WbJ4QTVd2qgxpPtDXnkEjxU4uqZveQHCdK9z8q8BazTjdmuW4cU/Ih9OhUoGR2dun1XfAmgR81HFVz3IWK8ft5WAzVO8xEA1juB5wu0= 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 1752662863492889.4272509857033; Wed, 16 Jul 2025 03:47:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzfQ-0002rf-Um; Wed, 16 Jul 2025 06:47:17 -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 1ubzeG-0000xG-Lo for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:05 -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 1ubzeE-0000mZ-Jy for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:04 -0400 Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-169-sroCXgGZP6WqBmAINqWN1Q-1; Wed, 16 Jul 2025 06:46:00 -0400 Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-235f77f86f6so62325905ad.2 for ; Wed, 16 Jul 2025 03:46:00 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.45.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:45:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662761; 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=vH481x7IL588bR5xEyAd6GIH6MgLnEAsXHK0PE6cgeQ=; b=VSq2t8fCAA5tUKcBEnafckL2aoBrK4a6nDywyGV4onSc2oSiD0UKq9PPRvLsnH4xITHNWd dbiJr7D5BmStMlkVOXz7EJq1cIFsNNsHjPJ+OD1kBjS1aMzkcqC7w7EysNKFfTBKkVScUr yTX3SOJTXf7I5wLoEmFVXgEet6vVj2k= X-MC-Unique: sroCXgGZP6WqBmAINqWN1Q-1 X-Mimecast-MFC-AGG-ID: sroCXgGZP6WqBmAINqWN1Q_1752662760 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662760; x=1753267560; 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=vH481x7IL588bR5xEyAd6GIH6MgLnEAsXHK0PE6cgeQ=; b=t8cFOtPvDc52hynbbXHFzrE1RacGKKi+tjxQtS8CdzYFycQ+Mb0r9kohcnWa9Zy1mV LWXLGJ32j3CLmXWfqnqUmNaMzVTYgoJiiZb55LNialdxxyxlJ6CbgqJN8rxoQaSN6qXw Wh403aS6918QfPN1BEvQJsXgff9zcbLh1xdCJjrb1hqcoRFpmRGmkIchEj9XfIlkbcqH c5/QhyjE5MMXFJWNNfyzQG9ArDe24nf1dt9x54Ivc3dqTbecfRJ/G2KXT8HnV2/7irlH 5R3lrsEMw07/zH0fIRYN4slfXsq7BEqwizNBb8reJrN0xy+JKimv+vp4/SBqXBiwbkSq gE5w== X-Gm-Message-State: AOJu0Yw9i6A37yTfgUm1mGbmWVncEn02YExYvv7dTpTHVJtPkuHIP0R8 /xaTosXseg93CM7mM9GXfcm3yakgpkigvrafSdXTS+NJfMDZ45iKhVrH1WjtD4putdNcA30Pj7K mk1lq2bev7rlxMb1ELBxDLYwirfQNli40LDcCoTqbqwVffIAuIVuRRcxg X-Gm-Gg: ASbGncv/oAJqnBah75tzguzc9alTZ8oqdfnvpJK4PzniZ7eQxHO1ZOWTZ98w0kAYSyg 462LfMN0XuOrg6FVruOB/SRYXvydmxZ/zYThI2G9D7xPSxP17fPkeSdbAQL0f5ZpUi0kkPKL19O BUdRYUauiaBGgh21OwobuwEUimqw+wrGBHeAj8gCp/v2kaOH940pG9u0PHnnRwEo2ZdZdNOhE5l d5kgKnvzFnYJ3m+lQhI++UQGHrk8NIQzsMIb2adhYikfgW+IpvHDN3jIuR8ijzair97qXR+/Jr6 mUKDqYCJJrKWEPfGZvNgEI8F52l+xEpXB0K9GaVSaBvnXATn0Q== X-Received: by 2002:a17:903:32d2:b0:234:909b:3dba with SMTP id d9443c01a7336-23e256c99b3mr34112215ad.20.1752662759568; Wed, 16 Jul 2025 03:45:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGO6hOGOr7TPe1XP4o3FDl27nnVTjRH1Di9/GCSgYoe2zFQGlsLUTbdUU7UxcZrxCdj9N4p/g== X-Received: by 2002:a17:903:32d2:b0:234:909b:3dba with SMTP id d9443c01a7336-23e256c99b3mr34111925ad.20.1752662759141; Wed, 16 Jul 2025 03:45:59 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:09 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-19-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=E0hcIDwqDrluQVykoDSAcYJmDhjKVCPSIYDY/GpaxOI=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k0Oqh1bKXKNg7ZdCvKXmFfu5J3yOiLmzLUn0o3B7W Ka1LFtHKQuDGBeDrJgiS8PXANmmgMKISNuX12HmsDKBDGHg4hSAicjOZfgr4ZktttfpW3lhjtw1 ZtFcpW51O1mL1X89lsxoOxd+Pa6H4a+U+bXjjPzy8Vuc0+e7np+XEv3lmfs1fsbj8lFl7i+yDjM AAA== 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: 1752662865701116600 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 9752fad6e1aa2d677b68cb6ae9180d1059d54019..7bdcf0f808fb07543fd62a679e3= 59bcb18c4ad35 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3135,27 +3135,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 @@ -3165,7 +3162,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); @@ -3183,8 +3180,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); + } } } /* @@ -3470,10 +3471,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(); } @@ -3544,13 +3545,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:24:01 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=1752662949; cv=none; d=zohomail.com; s=zohoarc; b=jA6ETXZysBqNXK92vcIE8uULXGr8EfFopdRZ2UEuCsKOZjY8Tk4Zz9GNWr+HFS+sUrE9eJ0FJLEQozlz2OLpBpDTlG7i8C1awdrbgiDEKARd2tR+m/SOF5jHX2EgSlcNWcb6HJQJQ7kjpOngR/pxx3R9sSJ+3kJbvxDIia15Z+0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662949; 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=yQDVkh0bj083qN9CjBSO0WSVA0XkDcSylaUeJoviZn4=; b=X7fUnoN/eEosyrzojVPIzYCbABMzEF7GHkVo3TewRUbLC3euLHHTzkL2nm8MeAtxBdNKCUeNCFpfPnUKzmCkuAnF4f/sjEvEz2XoGT+DOA00NEFAlGmd2ztDaNX4NxeBnSE6gKpwQnlym3WypkStsBEzHx4nae2rQARh2qQUQYc= 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 1752662949565910.8468372724637; Wed, 16 Jul 2025 03:49:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzfl-0003bj-BN; Wed, 16 Jul 2025 06:47: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 1ubzeR-0001A1-68 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzeM-0000no-T0 for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:13 -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-645-UMjIas7NOy6y_LNdpH1S3w-1; Wed, 16 Jul 2025 06:46:09 -0400 Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-23827190886so75493605ad.3 for ; Wed, 16 Jul 2025 03:46:08 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.45.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:46:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662770; 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=yQDVkh0bj083qN9CjBSO0WSVA0XkDcSylaUeJoviZn4=; b=fAdb7QtufCwn+Z7/ntRoBs5w9wMuoat2G0fW/DC9B/HJMbWptGPKff6L4Nl3S9VjdRsgPs QlkoDICxtgnmoXQZiN8pG1yOkGHxntDE8wilxeNhxzD0fpZhX3x2QGJQhtWVqypXi0tewC GOsDOvEkuk0gAkXnp59I0uCJ8H5OABM= X-MC-Unique: UMjIas7NOy6y_LNdpH1S3w-1 X-Mimecast-MFC-AGG-ID: UMjIas7NOy6y_LNdpH1S3w_1752662768 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662768; x=1753267568; 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=yQDVkh0bj083qN9CjBSO0WSVA0XkDcSylaUeJoviZn4=; b=d4nYX4a6HL1jn//mzn+YuA5DQ4sNvms15huoQ8cILnSfvEMSpo0hXRoN3kB0gFnF+J 2ktrMnszzQcQb5QQc/2RIZllPh6K70ZtSZpcaUvHhy/sPKZT7ynwoWeomv8R1iMQD6bu hloUDDqbL956pYMMj51WYvuxfYOK60x/Imk0CbrWRXqiX7M4h+4ahTfr6/R+3bUE/k2q sXJ/f1j7AEQnusD3oWJhcZm7QKLWPUGAFcQVpWnSwe1Y+II/6H18IdD/oQzeeWG1bqLo gJyUMr1FI50QiR3QeXPsAvS/LND7oVEwwni+NBdewAlXwagKXsM7x3a5mekpges7RTii rJzg== X-Gm-Message-State: AOJu0YxnewqH+oNh7Dm1WKpydNSD/oSlkltgeZy33F+acDaJVK5dAiXQ eS17fE+mtc0szkpD+0f8pAFM3QhOraAud6EJ/RbP/iLimKt1P8ZTTwdDJFc/s9mbie24nnt04f4 B0bKsxPdrkY7G/x7QkrrjEHq5W3ulca/o3NSrnQ+vcJpeqHWXV7fSKLAe X-Gm-Gg: ASbGncvY0wlnDses2gZNh/rxKjDw4n8vo2NkKAc0x405CTs56az1/Vh6c2SgJbzEVor l0mOm9qP/nUlMbxZG+BAeApGSNXGmbO9Ni61pc2/eMqHhmxSNVbTGViUXF6mbidYoiAlSvYOT6w rEl0T/ggUwNguJe1Pj8RH32cZqN8KQgEfhe0D8/j+M05IYwLQOKftW34N3mc2ZQoAZUY9vlzQFb btQGJ6Ld66aJCWky1FhMRs7MkCy+rxzln6xlkcFJ2TF5ytRZzwDJBkck94xS/TerAure0UwXZSm a1xbl3zkIB0PgppNUEt1+YueX5SCPTsbfudwUpSpVapf88Ub/g== X-Received: by 2002:a17:902:f650:b0:234:a139:11f0 with SMTP id d9443c01a7336-23e2566b058mr31793235ad.7.1752662768048; Wed, 16 Jul 2025 03:46:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGg9hJoOVzLCWiQlq2mZ3FN5NrnJdp5k5vdrqXwaHDnqXqMMRRK1flfCV0P3gpb85mbTRwLfg== X-Received: by 2002:a17:902:f650:b0:234:a139:11f0 with SMTP id d9443c01a7336-23e2566b058mr31792775ad.7.1752662767678; Wed, 16 Jul 2025 03:46:07 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:10 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-20-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=NHQbtE1Z+gXKZUt1s0S5v1y6t2YxU3nOML37/1rvyfk=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k0Mih7h/z/wPCcp877uMpodIyc7mXzCfa+8ne8EJW eqV3406SlkYxLgYZMUUWRq+Bsg2BRRGRNq+vA4zh5UJZAgDF6cATGTvIkaGEwwsgezrtA33zfwT /n4B05I9Rbt+6jM3LaoXbp73UD6NgeGf1s3Y1QctndV5zA7cWJM6L/VJhIHLxsV/tnzUOHEz6mU kAwA= 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: 1752662950391116600 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 7bdcf0f808fb07543fd62a679e359bcb18c4ad35..71cf69ffeb754c1657256ed9f02= 5aa257e82c00c 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -3234,15 +3234,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:24:01 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=1752662990; cv=none; d=zohomail.com; s=zohoarc; b=QiGtN+APDfWpwFCu+MX4fRINMf8j72LPPK9YOLboVBUQIHSjkmM3BX//PW24RaBfcm3l2P/i+75M+S//BMO8bNlnjtEYwrejr6tCzeQcz4+KlqpYmqYKizROpc7wsEfngFGdZFsW6OHY9JL4grYJPlUdb+/ep2pKFfBsGLEMmPw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752662990; 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=+s8VOtQBo1DDT5OJzSaKYdlzOG4iVU4H3ZmsSNzEGcc=; b=IPKu+BZJD517K1odJoYNvHvqtoFB6ZFIXLX/mhI0au1aRITllhNeCw3y2+4Os0XnoaCG/EDZO7ZYay2QjDJc7EgjBLmaCXpSMgDSG5P3l1T0H8MkwzYZCWOelXtWgIrywzGTcwFVIcifH3LcCfl6miuz7Q+cK2ZKciRhtDNDeLo= 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 1752662990155679.5300525986432; Wed, 16 Jul 2025 03:49:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzg0-00044S-Ab; Wed, 16 Jul 2025 06:47:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzeb-0001C2-1X for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:31 -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 1ubzeZ-0000pt-5X for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:24 -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-517-BsV97s99MjiW_iJUReE-8g-1; Wed, 16 Jul 2025 06:46:19 -0400 Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b31c38d4063so4634517a12.3 for ; Wed, 16 Jul 2025 03:46:19 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.46.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:46:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662781; 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=+s8VOtQBo1DDT5OJzSaKYdlzOG4iVU4H3ZmsSNzEGcc=; b=Pu9ZCSaZv7vUE23fUnm7D5lhesNLm56tcHWoCuT2l6QErAH8iOzfIUi5fwN7xMlbwwwCA7 NCEGFAase2W90aM/cYM/lDGcVvY6dW50DWf34dQxaCTh00S93Vb+3at/EsqZ1eaCFFLX8Z ZXyTqoV7K7bezDKea78PpS/L5Vg+NPc= X-MC-Unique: BsV97s99MjiW_iJUReE-8g-1 X-Mimecast-MFC-AGG-ID: BsV97s99MjiW_iJUReE-8g_1752662776 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662776; x=1753267576; 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=+s8VOtQBo1DDT5OJzSaKYdlzOG4iVU4H3ZmsSNzEGcc=; b=UkB0Q/sIxGpOp9HnPIIDb1jmB1wKkuj6Ji7gDxJ0ulh39irg5AQrujztMcjcIDxo19 z4nIvLXAwdC1xvGXZZQeAjUgCtq6ecRWHIlEHGtWPWF4FVOs4Rc+zas2AGndUSwgJwmp FTWtMbJi0FIbw0tYapj/55KQj8zr/1o6CyNkUWfAVeXtTKTulTSyTzmnVhDOhrQxBL+P PVufJRwM05W9QU+VVhIHxpgvX42vpqYq3Xh8mDCUlsur13xD/EHiTym2IJLeNUf/vqpv 4u0pOJJ5HPVdEsU6B47wCfFcCpTBRcmVcxQl9HNg4nYJsMCFyfKi3ZmrI7lbwj4bOVmo 8xLQ== X-Gm-Message-State: AOJu0YxKdIYG/FG6xdUkVSXRL+draDnRIrvVSGwFab4dSMgTIVrtCAbi 8JUjJEvgschZRNALyK+c9y7ONm3ztUQPF4fYvN6w8bT6vBSc0Wrx1tzN9pOuWe5cL9T5Fxk9Z64 mJQN6d3M+kivIaENpTt2hiDLrixq4WtB8k5k/lJKqyNG4oqvTzK0qD4KD X-Gm-Gg: ASbGncsEK3wKYiuozCP1yuvadJTbZ9dEyPhCRqsq+Y67JruziVHVaqJPBxrpeTbrG6N dIbP0wAatp+PoGngh6mTwEdYw+uZ+sAIqnF69qGiCQBlJJDzAzKZ5HiUG72dLGtvQfx4QIbbcBS yUlrmEHwK8ATtniUUVBfTMizJOhBQWAC2g73dzA7Zl9jSsB96a1kDbVwbDG4q8v9knZR4bjq0ua eMYETjfwwTX9ljDM393TvcVJc6n3gi0/NjV6p5TFwqjfQFYAmUOPdDbgsE56PZsH+hrWnt6a2A7 2PazQGGcJytuoMHZy00KkRJBzuGvYjuea9bMhR9hgOsO3kxZFg== X-Received: by 2002:a17:903:1b66:b0:23d:dcf5:4806 with SMTP id d9443c01a7336-23e257660b1mr32960415ad.39.1752662776307; Wed, 16 Jul 2025 03:46:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFruylMfKWUTkVhMLhwaq8Wv3c0tax0Czez8cQh6KwHXnFzKySKXUQPEkQNlLrwUtQQs23OgA== X-Received: by 2002:a17:903:1b66:b0:23d:dcf5:4806 with SMTP id d9443c01a7336-23e257660b1mr32960075ad.39.1752662775889; Wed, 16 Jul 2025 03:46:15 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:11 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-21-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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=lu7xXVtFHa1noBo1jhpSYKEZ7yIUkmDW0KN3tHXLHsM=; b=owGbwMvMwCWWVaVqcZPfqI/xtFoSQ0Z5k8PG+1rtkt+vK/2c+KGKyzzVN8p84ufqWWdbdzMeX RxaH1vfUcrCIMbFICumyNLwNUC2KaAwItL25XWYOaxMIEMYuDgFYCJKpxkZbtx1L1SaeOFI0stD J/0ftNzq437pO9382Fm26uLLBzbrsDD8MzNMTdHSfCQeVO4z583St/su+XIsYJZPOVtgYTCrPO4 HLwA= 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: 1752662990778116600 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 71cf69ffeb754c1657256ed9f025aa257e82c00c..62e7b58b2ed26837580eed804d2= ec12ff2e42d6f 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:24:01 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=1752663270; cv=none; d=zohomail.com; s=zohoarc; b=N7zxu3DXJaukwnydkWeYRi6c+5/N6fXDPTPAz1jqd+goE91wqRX+IAdwjTKw7qr5MKHDW1jZPNFCxzKVtNtDOG00qHSUUB7S2nLisUgN28/EMopBlmDPK50lPvuMihOq04lqlUkrQYxCI03XS6b52FusGi6O/EcXEFEQwv5cVjg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752663270; 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=LgOBULMDDS1dSqLEFQmsLH/AHS+x0YXXlV/KB/F32mT0Z0FUUwVHQGq4zHxrQZJunvl39JdEXeixkieB5OkdQb1JjeVXA9RHc6DciWg2l/+TKQwCzlXbxqVUw2lrYRmWo1Zlx5a+lZbaiFwJKBS1qm2sBfMfIjFrSioKeHlOEX0= 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 1752663270615255.25715765882217; Wed, 16 Jul 2025 03:54:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzhd-0001CP-Ub; Wed, 16 Jul 2025 06:49: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 1ubzej-0001F5-Bh for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:36 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzed-0000r0-NO for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:32 -0400 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-684-fmE3zf07MxuqqfYbSl4YXQ-1; Wed, 16 Jul 2025 06:46:25 -0400 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-23638e1605dso50030595ad.0 for ; Wed, 16 Jul 2025 03:46:25 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.46.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:46:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662786; 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=MxfL7eBYqidj3j+L8c6SOYneKNK2Zh1UZULsHXXk8K5e1sCilReTDMcbioS84XvLeAOqWT 9OuufH+alW6sdGtSiWaMSbTGD1GKTdkPBuWJM6It8pgSvW5cCzhImxq721nnPAYW4KDQXi Xyqeow3Pi1eiG7hx/6zcAVU22nDT+KE= X-MC-Unique: fmE3zf07MxuqqfYbSl4YXQ-1 X-Mimecast-MFC-AGG-ID: fmE3zf07MxuqqfYbSl4YXQ_1752662785 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662785; x=1753267585; 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=W1kpcjeNiosNIxFZSpDEp94C0pHEsgifU12bojkMF6Dk1Rn3Pv+zwCZcvglYg5StVW waDnRQ5GpbCrPLwaPLrsa5H1aO0r65LlaxTOLV3Ahi6YCwlkmJ3K94AwVpdFIOEif91c BMV/HPKNvE/WxqtYu8+CE1XM9JMRxs7rolBjULvuib9AH8u+6MT5RxSpQ0T7kOlTUJsu rV1hXyj6AMjEllYrpuKiIUtlSPlUMRd4396oVo+iscP/HnwNCfgzJR7YnJ0sDLVwn61p vlunH6K5aCnmAl7u5Q58pl5dTppe24mbPCV6pr+71Gbi8XtwbR4xfDxTk/UWgxvjleAO vb2g== X-Gm-Message-State: AOJu0YwqoLGMYkKPjFyobesgpsQSf7cWFUb89lQwPZQxsbDvwvnZbdP2 qMIqog+ExlcMigA2loaOdbwsV0YJc+5f9mSGq32wTWhR6uGm/eZwF7BaMb5WiS8mPuf2iMW2f5I NVM45n4q4izPTsRdivCfYfJjC/x5aUSsCPUl8mtnshX/ia/ijiKamwCFD X-Gm-Gg: ASbGncss9XOcdzZRcX8jXg8OLSNMyT65LVOpfTpIlZUW6a/eEnNvBj0ly23MNieCkHF P9oi3SEPKEKRo1IcWw3cL8ouo6UtqnvSqrUqPd8NNgY25SHh0Vj5ckpSgHNf3x24q5laBZb/wCG mAsFVcP5EZvxNuM6/pgOiUx6zHjlZOaOy0Jlc4YsuT5jEXxVz48nZBL7XO2oWQYz+xpZSlaVXtG 3OumodUPJoTNO4buMKi38gXzLTqkfAdIGgGy9HhlnHlyinQi3uKS9YpoH8rB7aqJNRYFO8+vlE+ m3hcwXQnKZ7psVwHaaD1MiruOhvA7vFcCRoxsqNsLs9dAYI4zg== X-Received: by 2002:a17:903:1b66:b0:23d:dcf5:4806 with SMTP id d9443c01a7336-23e257660b1mr32966565ad.39.1752662784749; Wed, 16 Jul 2025 03:46:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFhBDIAPUhmgSaKpaVe7juSppj1ep1XKXgbyLGtOu6LuQwU3v0LsLRHp/SYREuKCV3NAM6GrQ== X-Received: by 2002:a17:903:1b66:b0:23d:dcf5:4806 with SMTP id d9443c01a7336-23e257660b1mr32966025ad.39.1752662784356; Wed, 16 Jul 2025 03:46:24 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:12 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-22-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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/xtFoSQ0Z5k8Nh/QBXpgeJZtF3FQ7slUya+29zTXTR/TuK13jFF 7tJLxPoKGVhEONikBVTZGn4GiDbFFAYEWn78jrMHFYmkCEMXJwCMJETixkZnkudlJ0+P3j7/PVq hQ+mdRg2lOkp956p/FrlXDtj9v6ldYwMJy8bl2W8UrnkWxJ5yDftnXSLDovKu9ITN5YpVTSI2RX wAAA= 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: 1752663271419116600 - 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:24:01 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=1752663132; cv=none; d=zohomail.com; s=zohoarc; b=nTAy4ACUbv17pISvf5olYpkTWf42zwZP4ZZKDAvlWFRsd2upJ927V18qLNe2MTPZrAH6axtXuWCIq+E8kVs0sQgrXVykRamt/r1qeHCXyhigAMkj82m1vK9HLr2eWQEqUwv5hcsFUSTHZ+liHa3ACPNz1a8byv4Q4hBAXp5Z39M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1752663132; 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=P+CDMAOOOY4n1hUNQFbWpM3sPI2Tsq1Wue+j0nkJS+h1W+CkBa4QrXZDqdap0sg5PVLYcXLMpynmMKo4j3kI99u6xINkVbzcIqm764WHLMMKyMUWTMq4iLjJ8wlzy+dPEzcNOesqouLiXG6uNw7TKldfEZy6VPU+GzttD3TH+sE= 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 1752663132280819.2768532296017; Wed, 16 Jul 2025 03:52:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ubzi3-0002la-Jx; Wed, 16 Jul 2025 06:50:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzeo-0001NC-VJ for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubzem-0000sn-EF for qemu-devel@nongnu.org; Wed, 16 Jul 2025 06:46:38 -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-56-TgeZmAZfPmSvKT9iKcdRiA-1; Wed, 16 Jul 2025 06:46:34 -0400 Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-313c3915345so9298245a91.3 for ; Wed, 16 Jul 2025 03:46:34 -0700 (PDT) Received: from armenon-kvm.bengluru.csb ([49.36.97.1]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de435baccsm123363265ad.227.2025.07.16.03.46.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 03:46:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752662795; 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=CyU7tYKI4t7PE02+Bwk0DQRmX3VF3gw8vALIhAcy820rNe8LZUAgEFRCMAJ64xvlPhJbfM WNKAwtsMVT5yC8sCzaDxvLVVF7B+zj+1xZHUSdGGzrTdLeYZlP/OWU+Aa+9KVJsgxdHZWp Wppr/LwSYFRLquK+KdLEL6A9PlqJ9N0= X-MC-Unique: TgeZmAZfPmSvKT9iKcdRiA-1 X-Mimecast-MFC-AGG-ID: TgeZmAZfPmSvKT9iKcdRiA_1752662793 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752662793; x=1753267593; 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=gauyGRaZE33cBafRLpNNT2SgGCmxYwFtnKf+b+qW10AI0yPOp6cgkbZQ5stPQ77dsJ +WM+y9QDJ3tEUML8q1lrtLHzYpcoFjKGQkvHkMO/DwNlu6mx9eGY+4aJ8Pe5rQF9OB94 wy+BjZkT864klRoSXBjFeQEhIrv5aKiLw9snZwoz9huv+TMoopQe5Ylnm9NheY8E/eHy 7BPj1Z908KXfM42BDbEThMvbgleGbTJ43/BYbRl92xx8MmveebsU8jkmV4mUX9YU1W/8 h/Pivubs1o30ONt/gK0M+O3LEgi4T1g7WXpYrJZykjRnmLwb3llbOuQbaXisVoK444qe UO4w== X-Gm-Message-State: AOJu0YwfGrl9hXCaGtRpKvnAKckSfCo2jXRlmpxIYZFQJzb3JJAwcFjR cvUeXmkDAXKJWRrJ6z4P/LV1sKW4FLbmGX6Lv3+st3TsLpObC4nKvkgUKLCOtPtiuYEti3ACQKT IeIEbkbNpdFVIB3IYrCk8qhz8frR7rS1Xh3lEF2oDH7+yWzlSjTGAQcur X-Gm-Gg: ASbGnctmmrW5Nq08SwnDWKEOUTYSP2QiWFmfYmRuAYDy4jADM1C5hvBzuLY2j6zISJK 7C0ZoVKODbXFNyvcSnxCHPS0wY1wja42wsYcQpr4NJjpuwfVm+XzQA4ZH1mN9Lcaj0lPYXcpxAI 6iT9LuH2yN7mcDYe9SnFiSzWbWsX9ZCOoUMkvZCQUnxeS/ayisjf+Bz+RMWvupPAfrK8QTE/Dm8 M8Lc7ODuaycmC7KEV6OBLbovNIuAxxUCZ+RMB3DJPXAUH5nwV3jiHPZgxbGE7OBCijQHuC419tH rEKN1H5q1nXgms3v9SuMP9OTzbOnBfAdRYWxCDdmiY6tJ+Uk0w== X-Received: by 2002:a17:90b:2707:b0:31c:15d9:8a5 with SMTP id 98e67ed59e1d1-31c9e76aa99mr3565476a91.19.1752662793338; Wed, 16 Jul 2025 03:46:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEeWRxHIik1dK5kGqGPffuearQ/eEZrGtR6LPebeMcXg8zlsBfzfTrVidIomQs6pd3wSkpAtw== X-Received: by 2002:a17:90b:2707:b0:31c:15d9:8a5 with SMTP id 98e67ed59e1d1-31c9e76aa99mr3565439a91.19.1752662792805; Wed, 16 Jul 2025 03:46:32 -0700 (PDT) From: Arun Menon Date: Wed, 16 Jul 2025 16:13:13 +0530 Subject: [PATCH v4 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: <20250716-propagate_tpm_error-v4-23-7141902077c0@redhat.com> References: <20250716-propagate_tpm_error-v4-0-7141902077c0@redhat.com> In-Reply-To: <20250716-propagate_tpm_error-v4-0-7141902077c0@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/xtFoSQ0Z5k4P1WyddPseslZdZnNMXvI9a+avmwKsV0/SmTTN/2 i80IUG+o5SFQYyLQVZMkaXha4BsU0BhRKTty+swc1iZQIYwcHEKwETmyTEyzHm5Z+L9v7+XLeg6 NsGyYdHvEzlukil1Gaz+30ocxbbP3czIsOe3bMc+sYCtu1LakzsYsz9y616vXFBlyWD5rdf21SM uNgA= 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: 1752663134050116600 - 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 --- 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