From nobody Wed Nov 27 09:59:57 2024 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=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1699270951; cv=none; d=zohomail.com; s=zohoarc; b=f1J51jXTUaVsTCSRUuyZTfTEkyf4RmOuzMCtRzuH/ZnLP1HAiyCX4tzjlsk/JVjVOdn/A/tf3Kqqa+jvx02Fv6j/1Xw8YRZh1HL/jUDj9NsMGBv9kHQ4MUjtG2M2TE0+0oz/OqgvOyt3HEu2vHUyt/n4Av5kqWng1iXZC6ORG5o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1699270951; 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=HFJfX2UbdUONwAiwbnWDg/Z2Ma5pzUtKmwKBZ6J1/3g=; b=S+5sIBPf+d5oQHoo7nsIizy4M33FC3V+KNN0k4+DXoUV+5Pq8hbF7Ow6QfwfmIhUVifj+3Iqu0l1uLaYbeo7Yd2oKg3M5AP0NRMi6VQcHONqxaHZ9BGoxsINMuRmXD4e7oQBs+g40ghc1mm6Cxr/1f7MM+HJSJg/+XPG9biXSFs= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1699270951049984.3689067860231; Mon, 6 Nov 2023 03:42:31 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qzxu6-0003Lb-Gx; Mon, 06 Nov 2023 06:36:27 -0500 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 1qzxtx-0003E7-3I for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:18 -0500 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 1qzxtv-0003LH-6f for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:16 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-534-ZJiXxc5rPzS6MI6yfxlwlA-1; Mon, 06 Nov 2023 06:36:11 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D9C56101A590; Mon, 6 Nov 2023 11:36:10 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id CDEFC2026D68; Mon, 6 Nov 2023 11:36:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699270574; 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=HFJfX2UbdUONwAiwbnWDg/Z2Ma5pzUtKmwKBZ6J1/3g=; b=g8LxuVGd4VNqn0KVEWywkEpm7lyUAFvzzeu62QAX38h98EH9qx+y6s4F1zJ7/KrIbxz3RL 8nQB5tHAId6v+fNtEi9No9IR+eM6V0bu1mVD8ZzcniEQt/lsUnd/r9YnnW7KpoxCICa9s4 Lo0Uj2Q83S+3M4skwduMcius8cn+uQs= X-MC-Unique: ZJiXxc5rPzS6MI6yfxlwlA-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Peter Xu , Samuel Thibault , Kevin Wolf , Juan Quintela , Fabiano Rosas , "Michael S. Tsirkin" , Leonardo Bras , qemu-block@nongnu.org, Hanna Reitz , Jason Wang , John Snow , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 1/6] block/fdc: 'phase' is not needed on load Date: Mon, 6 Nov 2023 15:35:55 +0400 Message-ID: <20231106113601.2052601-2-marcandre.lureau@redhat.com> In-Reply-To: <20231106113601.2052601-1-marcandre.lureau@redhat.com> References: <20231106113601.2052601-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.4 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=marcandre.lureau@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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1699270953239100003 From: Marc-Andr=C3=A9 Lureau It is reconstructed during fdc_post_load() Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Michael S. Tsirkin --- hw/block/fdc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/block/fdc.c b/hw/block/fdc.c index d7cc4d3ec1..fc71660ba0 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -1005,6 +1005,11 @@ static bool fdc_phase_needed(void *opaque) { FDCtrl *fdctrl =3D opaque; =20 + /* not needed on load */ + if (fdctrl->phase =3D=3D FD_PHASE_RECONSTRUCT) { + return false; + } + return reconstruct_phase(fdctrl) !=3D fdctrl->phase; } =20 --=20 2.41.0 From nobody Wed Nov 27 09:59:57 2024 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=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1699271591; cv=none; d=zohomail.com; s=zohoarc; b=nIrGwQpT7hXQJCsEzS7Cop8sp03OZFceXIleJPGpx7gWT8ahJk/iEuFarQlG0HjWrwa0SLi+/LW4Uq3yo0SBTxg01KXiPRTOJv2v/Cdj8XVfCcJWpWHXATeUnMYgsi7yutwGHdcNB7bmNsMkPOu04FAL+2lnydrpuRgif2tq1fQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1699271591; 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=HJUvqWW9yoZqCljtAReh0jRJiy7SYpKqsreR0+FkXW4=; b=hWYH4Hr/oOXbn90VHFEHGKygPoHgvEAs1NbhHcy6yR147ezi2bhBn0ZlQ16KjEXbQu48iLNoaXF2HMQfUTEmHZLEmSvqJYmnuxyFbSN7SJdunpUKHMRklxqy3rUqdUNV3eZFAgKpZU405ltYo6NlnMgfLNtwb3rmkuXIBUicOJs= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1699271591669581.3023506523524; Mon, 6 Nov 2023 03:53:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qzxuA-0003Pe-Kq; Mon, 06 Nov 2023 06:36:30 -0500 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 1qzxu3-0003HB-C6 for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:25 -0500 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 1qzxu1-0003MC-Ry for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:22 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-629-ox9--JsOOjq-WEXRYBy-vQ-1; Mon, 06 Nov 2023 06:36:18 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CB18C1019C88; Mon, 6 Nov 2023 11:36:17 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id DDF632026D68; Mon, 6 Nov 2023 11:36:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699270581; 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=HJUvqWW9yoZqCljtAReh0jRJiy7SYpKqsreR0+FkXW4=; b=KaPHOoE7iWaooOjFb89+rnz/kOusjMabVKFJYTumyAtLCDl41PhqYwStpsAy+IAozuurSc 7THUQ8IOunQe7tZFMpTRoxO3PVwgIDjJATF8TOpUdICt0mQg+mYWB/iav3UClepidAYbn3 7Hd6k3t4sF+jiqfIpyI850R26cGKMvc= X-MC-Unique: ox9--JsOOjq-WEXRYBy-vQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Peter Xu , Samuel Thibault , Kevin Wolf , Juan Quintela , Fabiano Rosas , "Michael S. Tsirkin" , Leonardo Bras , qemu-block@nongnu.org, Hanna Reitz , Jason Wang , John Snow , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 2/6] virtio: make endian_needed() work during loading Date: Mon, 6 Nov 2023 15:35:56 +0400 Message-ID: <20231106113601.2052601-3-marcandre.lureau@redhat.com> In-Reply-To: <20231106113601.2052601-1-marcandre.lureau@redhat.com> References: <20231106113601.2052601-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.4 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=marcandre.lureau@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_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1699271593384100003 From: Marc-Andr=C3=A9 Lureau There is no simple way to distinguish when the callback is used for load or save, AFAICT. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Michael S. Tsirkin --- hw/virtio/virtio.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index e5105571cf..22aeb88235 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2517,7 +2517,11 @@ static bool virtio_device_endian_needed(void *opaque) { VirtIODevice *vdev =3D opaque; =20 - assert(vdev->device_endian !=3D VIRTIO_DEVICE_ENDIAN_UNKNOWN); + /* On load, endian is UNKNOWN. The section might be loaded as required= . */ + if (vdev->device_endian =3D=3D VIRTIO_DEVICE_ENDIAN_UNKNOWN) { + return false; + } + if (!virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1)) { return vdev->device_endian !=3D virtio_default_endian(); } --=20 2.41.0 From nobody Wed Nov 27 09:59:57 2024 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=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1699271370; cv=none; d=zohomail.com; s=zohoarc; b=f9Zf0wg3xqXDCqbafKkVfYloWFw5Mt7xuBUuJ5dOneKcftXoENQ5nl4Y8uTMgTufkCx1VAxo54K72KEL0o0v06UAPB2Gt8tcK7cX9ZMxLohETRKQga1IaezSmTTO0bfD1AWkSFEoA6QqH+tgwwCKsPJu5/0bVsMBG1sjXMH5H0Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1699271370; 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=ykzcK24toXYFXZThqkyiXwFLo9+xNpodTrpRFNx/j/U=; b=TQW5VRKtusLwZnZ524i/9vBtEpSPkJnnmEuMqK+eM0hnfsAd+3nYGMuWtTMdDoEtpnAdBgsrL2k8kMjMjMTfCeZG1IHyn20K6IIbZF7JxnTjShMvfgJJ3ETti1SFNNP8nVu8KBjwA6fWvbHhrPVzAD0Z+guoaiDxtsXsnXe4zVk= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 169927137088991.61236927929554; Mon, 6 Nov 2023 03:49:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qzxuK-0003Y6-8Z; Mon, 06 Nov 2023 06:36:40 -0500 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 1qzxuI-0003Vg-Av for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:38 -0500 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 1qzxuG-0003Pb-Pp for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:38 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-141-zg8EtDQ6PjWCsEam_tXmeg-1; Mon, 06 Nov 2023 06:36:22 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6D01481D82E; Mon, 6 Nov 2023 11:36:22 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5F959C1596F; Mon, 6 Nov 2023 11:36:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699270596; 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=ykzcK24toXYFXZThqkyiXwFLo9+xNpodTrpRFNx/j/U=; b=NvJ8U5Pyur2fOmnJjqdTEKSc0qruie9PTLfZFCYF/EoAOKjGUW0+8QYnuqn9iZZGRWEaOC eGl4YZd+vkxszF4Mpwuj4CDP6DK0C0uT3jPQI7LM0BwmoMRsdKOn5QaLD3reLOVlCmv28Y VqkALUWXBBXpblUXEeXbwpGaIvauccg= X-MC-Unique: zg8EtDQ6PjWCsEam_tXmeg-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Peter Xu , Samuel Thibault , Kevin Wolf , Juan Quintela , Fabiano Rosas , "Michael S. Tsirkin" , Leonardo Bras , qemu-block@nongnu.org, Hanna Reitz , Jason Wang , John Snow , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 3/6] migration: check required subsections are loaded, once Date: Mon, 6 Nov 2023 15:35:57 +0400 Message-ID: <20231106113601.2052601-4-marcandre.lureau@redhat.com> In-Reply-To: <20231106113601.2052601-1-marcandre.lureau@redhat.com> References: <20231106113601.2052601-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8 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=marcandre.lureau@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_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1699271371825100003 From: Marc-Andr=C3=A9 Lureau Check that required subsections have been loaded. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Juan Quintela Reviewed-by: Michael S. Tsirkin --- migration/vmstate.c | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/migration/vmstate.c b/migration/vmstate.c index b7723a4187..9d7a58d26b 100644 --- a/migration/vmstate.c +++ b/migration/vmstate.c @@ -452,22 +452,51 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDe= scription *vmsd, } =20 static const VMStateDescription * -vmstate_get_subsection(const VMStateDescription **sub, char *idstr) +vmstate_get_subsection(const VMStateDescription **sub, char *idstr, bool *= visited) { + size_t i =3D 0; + while (sub && *sub) { if (strcmp(idstr, (*sub)->name) =3D=3D 0) { + if (visited[i]) { + return NULL; + } + visited[i] =3D true; return *sub; } + i++; sub++; } return NULL; } =20 +static size_t +vmstate_get_n_subsections(const VMStateDescription **sub) +{ + size_t n =3D 0; + + if (!sub) { + return 0; + } + + while (sub[n]) { + n++; + } + + return n; +} + static int vmstate_subsection_load(QEMUFile *f, const VMStateDescription *= vmsd, void *opaque) { + size_t i, n; + g_autofree bool *visited =3D NULL; + trace_vmstate_subsection_load(vmsd->name); =20 + n =3D vmstate_get_n_subsections(vmsd->subsections); + visited =3D g_new0(bool, n); + while (qemu_peek_byte(f, 0) =3D=3D QEMU_VM_SUBSECTION) { char idstr[256], *idstr_ret; int ret; @@ -493,7 +522,7 @@ static int vmstate_subsection_load(QEMUFile *f, const V= MStateDescription *vmsd, /* it doesn't have a valid subsection name */ return 0; } - sub_vmsd =3D vmstate_get_subsection(vmsd->subsections, idstr); + sub_vmsd =3D vmstate_get_subsection(vmsd->subsections, idstr, visi= ted); if (sub_vmsd =3D=3D NULL) { trace_vmstate_subsection_load_bad(vmsd->name, idstr, "(lookup)= "); return -ENOENT; @@ -510,6 +539,13 @@ static int vmstate_subsection_load(QEMUFile *f, const = VMStateDescription *vmsd, } } =20 + for (i =3D 0; i < n; i++) { + if (!visited[i] && vmstate_section_needed(vmsd->subsections[i], op= aque)) { + error_report("Subsection %s %s missing", + vmsd->name, vmsd->subsections[i]->name); + } + } + trace_vmstate_subsection_load_good(vmsd->name); return 0; } --=20 2.41.0 From nobody Wed Nov 27 09:59:57 2024 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=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1699271154; cv=none; d=zohomail.com; s=zohoarc; b=iY+90k11pCjuJYf/rbyTOcVkelopgIQ1gHggEOpi0qHkplXSJckt8pi+kXZTDgKDtOGIefTTPMlVfS4K4wvXzSxGRt9GAzMxiBoqQ4mE6QVcp/tKABJcB/6U0vyTxpKXXlWiDwb0Vs3egCFKd345/Q+TKoKz6tCRKQirQ+flWJA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1699271154; 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=zxz4CKuoDceZoulGqF2DZo3Gxh1pLSHJIFAuQk+doJc=; b=fF0BduEDPpsVTFasED79GjGpPVt9axhH4mzCHn71LI58cERXN9NtT+2q6lcDG4gLOlzkq6jA+IwEwPKNgMK49w+xlZoX6PffgsRKeG4+vbvD6qoSP/Aq+Rlmp9ox4qdI0XMEstcRn1t2lJnWOjTqW/xGUCFs6eByf3qDyxhB1Qo= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1699271154441732.8850361539379; Mon, 6 Nov 2023 03:45:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qzxuG-0003Ug-AX; Mon, 06 Nov 2023 06:36:36 -0500 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 1qzxuE-0003Ss-8f for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:34 -0500 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 1qzxuC-0003NW-NP for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:34 -0500 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-373-SN3Em1GNOqGOPJa4gsv6rQ-1; Mon, 06 Nov 2023 06:36:26 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 517C638130A6; Mon, 6 Nov 2023 11:36:26 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5F492492A; Mon, 6 Nov 2023 11:36:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699270591; 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=zxz4CKuoDceZoulGqF2DZo3Gxh1pLSHJIFAuQk+doJc=; b=IvGFSH6WZtnJ+OpY1cQsJv5mRSSODsdkdErlvcCbqhRNAIWKnT0Y+QWBg8eOKrBC0ZegIS lTlG3fO6O9fzNHXoPSAv7iGvqPE35z76Y7A48uqlT1o1qmRCA0tsJTndJvua9z9pdu7pbd y0UsN0LagKSx0PmYfryX7GxpVF+M2uI= X-MC-Unique: SN3Em1GNOqGOPJa4gsv6rQ-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Peter Xu , Samuel Thibault , Kevin Wolf , Juan Quintela , Fabiano Rosas , "Michael S. Tsirkin" , Leonardo Bras , qemu-block@nongnu.org, Hanna Reitz , Jason Wang , John Snow , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 4/6] migration: check required entries are loaded, once Date: Mon, 6 Nov 2023 15:35:58 +0400 Message-ID: <20231106113601.2052601-5-marcandre.lureau@redhat.com> In-Reply-To: <20231106113601.2052601-1-marcandre.lureau@redhat.com> References: <20231106113601.2052601-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.1 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=marcandre.lureau@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_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1699271156674100003 From: Marc-Andr=C3=A9 Lureau Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Juan Quintela Reviewed-by: Michael S. Tsirkin --- migration/savevm.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/migration/savevm.c b/migration/savevm.c index bc98c2ea6f..2ae65b8088 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -217,6 +217,7 @@ typedef struct SaveStateEntry { void *opaque; CompatEntry *compat; int is_ram; + bool visited; } SaveStateEntry; =20 typedef struct SaveState { @@ -1787,6 +1788,36 @@ int qemu_save_device_state(QEMUFile *f) return qemu_file_get_error(f); } =20 +static void savevm_reset_visited(void) +{ + SaveStateEntry *se; + + QTAILQ_FOREACH(se, &savevm_state.handlers, entry) { + se->visited =3D false; + } +} + +static bool loadvm_check_visited(Error **errp) +{ + SaveStateEntry *se; + + QTAILQ_FOREACH(se, &savevm_state.handlers, entry) { + if (se->ops && se->ops->is_active && !se->ops->is_active(se->opaqu= e)) { + continue; + } + if (se->vmsd && !vmstate_section_needed(se->vmsd, se->opaque)) { + continue; + } + if (!se->visited) { + error_setg(errp, "Missing entry '%s' while loading VM", se->id= str); + return false; + } + } + + return true; +} + + static SaveStateEntry *find_se(const char *idstr, uint32_t instance_id) { SaveStateEntry *se; @@ -2592,6 +2623,11 @@ qemu_loadvm_section_start_full(QEMUFile *f, Migratio= nIncomingState *mis, idstr, instance_id); return -EINVAL; } + if (se->visited) { + error_report("error while loading state for instance 0x%"PRIx32" o= f" + " device '%s'", instance_id, idstr); + return -EINVAL; + } =20 /* Validate version */ if (version_id > se->version_id) { @@ -2629,6 +2665,8 @@ qemu_loadvm_section_start_full(QEMUFile *f, Migration= IncomingState *mis, return -EINVAL; } =20 + se->visited =3D true; + return 0; } =20 @@ -2950,7 +2988,12 @@ int qemu_loadvm_state(QEMUFile *f) =20 cpu_synchronize_all_pre_loadvm(); =20 + savevm_reset_visited(); ret =3D qemu_loadvm_state_main(f, mis); + if (!loadvm_check_visited(&local_err)) { + error_report_err(local_err); + return -EINVAL; + } qemu_event_set(&mis->main_thread_load_event); =20 trace_qemu_loadvm_state_post_main(ret); --=20 2.41.0 From nobody Wed Nov 27 09:59:57 2024 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=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1699271486; cv=none; d=zohomail.com; s=zohoarc; b=n8ysrFqyo/UvmXB2DJJvrPY/5XquwBgfqtF0YLZP3whZ3NdWvCnTb0bs6SjBrGBUMZA1D/tXDNmVYvqEZp3kzowbyBuW9cFMh9yHLZlzPHuQLG7CxyGQQjP7ehC/IZYhbcRGtxYQKBZsfJuT4rniJRInbk2767t8vrAoqNqsxDk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1699271486; 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=7zBtay+FXHfC62zOoHOvwVv9aq/hIRy7K1YGyquZqPM=; b=O4y0IGQiibIY+5PtrWUTSkpsUKgwdlI9mGVyfc86Uz8GGqDTRAKn2Kp3VQxsAkxVA6+0eMNxYvKwyAMB28BgR/jo/IZamhV1OcC35M4d3+9jHX3Cby5b0hAUPIGLzHD7v2BjN8dKg6KyKNU3lBUukmsKYTQjh0nhmFl8pSuZmtE= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1699271486258887.9661771406143; Mon, 6 Nov 2023 03:51:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qzxuG-0003Ue-3n; Mon, 06 Nov 2023 06:36:36 -0500 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 1qzxuE-0003TH-TQ for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:34 -0500 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 1qzxuD-0003OU-7y for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:34 -0500 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-178-S2YWS4NqMumuYrT-d6SS8g-1; Mon, 06 Nov 2023 06:36:31 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D36B528B730A; Mon, 6 Nov 2023 11:36:30 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5CC981C060B1; Mon, 6 Nov 2023 11:36:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699270592; 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=7zBtay+FXHfC62zOoHOvwVv9aq/hIRy7K1YGyquZqPM=; b=XT+EDaqikpvUBN6PzGtjrqpsqQk90BDSDEtGgOrokwO0oswDfeaYwcRMrruUQo1OYikHFf OuOeGwJ3SKtObiF6r0StvyMNsQiLo+AzO68k1CVN799KTwe7867vKr+gIhr5aeiD5PimHZ me+0FbvCE65Y8Aqt/Z2YlL1EfJLR+Uw= X-MC-Unique: S2YWS4NqMumuYrT-d6SS8g-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Peter Xu , Samuel Thibault , Kevin Wolf , Juan Quintela , Fabiano Rosas , "Michael S. Tsirkin" , Leonardo Bras , qemu-block@nongnu.org, Hanna Reitz , Jason Wang , John Snow , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 5/6] test-vmstate: add some subsection tests Date: Mon, 6 Nov 2023 15:35:59 +0400 Message-ID: <20231106113601.2052601-6-marcandre.lureau@redhat.com> In-Reply-To: <20231106113601.2052601-1-marcandre.lureau@redhat.com> References: <20231106113601.2052601-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7 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=marcandre.lureau@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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1699271487057100001 From: Marc-Andr=C3=A9 Lureau Check subsection support, and optional handling. Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Juan Quintela Reviewed-by: Michael S. Tsirkin --- tests/unit/test-vmstate.c | 116 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) diff --git a/tests/unit/test-vmstate.c b/tests/unit/test-vmstate.c index 0b7d5ecd68..d60457486c 100644 --- a/tests/unit/test-vmstate.c +++ b/tests/unit/test-vmstate.c @@ -1479,6 +1479,118 @@ static void test_tmp_struct(void) g_assert_cmpint(obj.f, =3D=3D, 8); /* From the child->parent */ } =20 +static bool sub_optional_needed =3D true; + +static bool sub_optional_needed_cb(void *opaque) +{ + return sub_optional_needed; +} + +static const VMStateDescription vmstate_sub_optional_a =3D { + .name =3D "sub/optional/a", + .version_id =3D 1, + .minimum_version_id =3D 1, + .needed =3D sub_optional_needed_cb, + .fields =3D (VMStateField[]) { + VMSTATE_END_OF_LIST() + } +}; + +static const VMStateDescription vmstate_sub_optional =3D { + .name =3D "sub/optional", + .version_id =3D 1, + .minimum_version_id =3D 1, + .fields =3D (VMStateField[]) { + VMSTATE_END_OF_LIST() + }, + .subsections =3D (const VMStateDescription * []) { + &vmstate_sub_optional_a, + } +}; + +static uint8_t wire_sub_optional[] =3D { + QEMU_VM_SUBSECTION, + 14, + 's', 'u', 'b', '/', 'o', 'p', 't', 'i', 'o', 'n', 'a', 'l', '/', 'a', + 0x0, 0x0, 0x0, 1, + QEMU_VM_EOF, +}; + +static uint8_t wire_sub_optional_missing[] =3D { + QEMU_VM_EOF, +}; + +static void test_sub_optional_needed(void) +{ + sub_optional_needed =3D true; + save_vmstate(&vmstate_sub_optional, NULL); + + compare_vmstate(wire_sub_optional, sizeof(wire_sub_optional)); + + SUCCESS(load_vmstate_one(&vmstate_sub_optional, NULL, + 1, wire_sub_optional, + sizeof(wire_sub_optional))); + + /* this will print an error, but succeed nonetheless */ + load_vmstate_one(&vmstate_sub_optional, NULL, + 1, wire_sub_optional_missing, + sizeof(wire_sub_optional_missing)); +} + +static void test_sub_optional_missing(void) +{ + sub_optional_needed =3D false; + save_vmstate(&vmstate_sub_optional, NULL); + + compare_vmstate(wire_sub_optional_missing, sizeof(wire_sub_optional_mi= ssing)); + + SUCCESS(load_vmstate_one(&vmstate_sub_optional, NULL, + 1, wire_sub_optional, + sizeof(wire_sub_optional))); + + SUCCESS(load_vmstate_one(&vmstate_sub_optional, NULL, + 1, wire_sub_optional_missing, + sizeof(wire_sub_optional_missing))); +} + +static uint8_t wire_sub_dup[] =3D { + QEMU_VM_SUBSECTION, + 14, + 's', 'u', 'b', '/', 'o', 'p', 't', 'i', 'o', 'n', 'a', 'l', '/', 'a', + 0x0, 0x0, 0x0, 1, + QEMU_VM_SUBSECTION, + 14, + 's', 'u', 'b', '/', 'o', 'p', 't', 'i', 'o', 'n', 'a', 'l', '/', 'a', + 0x0, 0x0, 0x0, 1, + QEMU_VM_EOF, +}; + +static void test_sub_optional_dup(void) +{ + sub_optional_needed =3D false; + + FAILURE(load_vmstate_one(&vmstate_sub_optional, NULL, + 1, wire_sub_dup, + sizeof(wire_sub_dup))); +} + +static uint8_t wire_sub_unknown[] =3D { + QEMU_VM_SUBSECTION, + 14, + 's', 'u', 'b', '/', 'o', 'p', 't', 'i', 'o', 'n', 'a', 'l', '/', 'b', + 0x0, 0x0, 0x0, 1, + QEMU_VM_EOF, +}; + +static void test_sub_optional_unknown(void) +{ + sub_optional_needed =3D false; + + FAILURE(load_vmstate_one(&vmstate_sub_optional, NULL, + 1, wire_sub_unknown, + sizeof(wire_sub_unknown))); +} + int main(int argc, char **argv) { g_autofree char *temp_file =3D g_strdup_printf("%s/vmst.test.XXXXXX", @@ -1519,6 +1631,10 @@ int main(int argc, char **argv) g_test_add_func("/vmstate/qlist/save/saveqlist", test_save_qlist); g_test_add_func("/vmstate/qlist/load/loadqlist", test_load_qlist); g_test_add_func("/vmstate/tmp_struct", test_tmp_struct); + g_test_add_func("/vmstate/subsection/needed", test_sub_optional_needed= ); + g_test_add_func("/vmstate/subsection/missing", test_sub_optional_missi= ng); + g_test_add_func("/vmstate/subsection/dup", test_sub_optional_dup); + g_test_add_func("/vmstate/subsection/unknown", test_sub_optional_unkno= wn); g_test_run(); =20 close(temp_fd); --=20 2.41.0 From nobody Wed Nov 27 09:59:57 2024 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=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1699271572; cv=none; d=zohomail.com; s=zohoarc; b=mM4q9KJxvltCcsNDeT/LbLhEp2PLDD4xLD2MxAk48ZaJrT84S6d6tfRWga0Txo0PLMTWMygzS+g8hDwjddDLE41DN0gNWBcVUjRpY2tAl4RAiurJ0yF66rdIdMGWtMWQg94VMzxqNyfadr3rnvKAlV0/wUFZLwpganY4lqm08uA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1699271572; 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=svaPW+rZPenlPAj6lm7d9unZr33RLfmLMwt20wLjubk=; b=FF1OlUeSkVnDnz6jc2GAw+xrkSjNxhmTlzgyM8OURI/k3r0kLO1n/0Le83sC5iKzcogy39ZZm2sjTCs7cNJy56pdaih6Px7J7uvsWIr+y6TtI1KqXjlkUSZ2JedvVOaS+mMnXAR9vf2rARtajrwpD/vXCUBdAhXGVe5ZaihQbJU= 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=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1699271572400131.50915894480227; Mon, 6 Nov 2023 03:52:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qzxuJ-0003Xi-VT; Mon, 06 Nov 2023 06:36:39 -0500 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 1qzxuJ-0003W9-1c for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:39 -0500 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 1qzxuH-0003Pr-Hd for qemu-devel@nongnu.org; Mon, 06 Nov 2023 06:36:38 -0500 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-501-m5Mjh_RZPammzu2xEslPVA-1; Mon, 06 Nov 2023 06:36:35 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B20F11C02D45; Mon, 6 Nov 2023 11:36:34 +0000 (UTC) Received: from localhost (unknown [10.39.208.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id A66F025C0; Mon, 6 Nov 2023 11:36:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699270596; 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=svaPW+rZPenlPAj6lm7d9unZr33RLfmLMwt20wLjubk=; b=WQqJnm9XByh9hyECQeryB99QilM0Y782Iq9mUfCTp+ieL7LVCiu5CQ8B7pVzcIdXkJtlYW iegmBEUBCkfKT6TS9FsDMpYSzwz8T07vxrU2fZAaHradSPARuzkNORHOTm0dndDi3D0u6i qr7+0MUtWLXqm6+gbXMA4TBROKVehFo= X-MC-Unique: m5Mjh_RZPammzu2xEslPVA-1 From: marcandre.lureau@redhat.com To: qemu-devel@nongnu.org Cc: Peter Xu , Samuel Thibault , Kevin Wolf , Juan Quintela , Fabiano Rosas , "Michael S. Tsirkin" , Leonardo Bras , qemu-block@nongnu.org, Hanna Reitz , Jason Wang , John Snow , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PATCH v3 6/6] docs/migration: reflect the changes about needed subsections Date: Mon, 6 Nov 2023 15:36:00 +0400 Message-ID: <20231106113601.2052601-7-marcandre.lureau@redhat.com> In-Reply-To: <20231106113601.2052601-1-marcandre.lureau@redhat.com> References: <20231106113601.2052601-1-marcandre.lureau@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.1 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=marcandre.lureau@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_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1699271573322100003 From: Marc-Andr=C3=A9 Lureau Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Juan Quintela Reviewed-by: Michael S. Tsirkin --- docs/devel/migration.rst | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/docs/devel/migration.rst b/docs/devel/migration.rst index 240eb16d90..22875ac40c 100644 --- a/docs/devel/migration.rst +++ b/docs/devel/migration.rst @@ -246,17 +246,16 @@ a newer form of device, or adding that state that you= previously forgot to migrate. This is best solved using a subsection. =20 A subsection is "like" a device vmstate, but with a particularity, it -has a Boolean function that tells if that values are needed to be sent -or not. If this functions returns false, the subsection is not sent. -Subsections have a unique name, that is looked for on the receiving -side. +has a Boolean function that tells if that values are needed or not. If +this functions returns false, the subsection is not sent. Subsections +have a unique name, that is looked for on the receiving side. =20 On the receiving side, if we found a subsection for a device that we -don't understand, we just fail the migration. If we understand all -the subsections, then we load the state with success. There's no check -that a subsection is loaded, so a newer QEMU that knows about a subsection -can (with care) load a stream from an older QEMU that didn't send -the subsection. +don't understand, we just fail the migration. If we understand all the +subsections, then we load the state with success. There's no check +that an optional subsection is loaded, so a newer QEMU that knows +about a subsection can (with care) load a stream from an older QEMU +that didn't send the subsection. =20 If the new data is only needed in a rare case, then the subsection can be made conditional on that case and the migration will still --=20 2.41.0