From nobody Sun May 5 05:55:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1625512273; cv=none; d=zohomail.com; s=zohoarc; b=VoQu6J5XfkLtVYaUA2axg0AQDjDVINzoC9zxOsgLp7RDdDGpTcmkKVFrifAYntk98Gz4Y4f2iRP/rNaeV9EWifbMQX2w8sCAR9zCHgV/3dtYos/gGYk8s8iR8bKvX1+nMaa12NQ+Kbd8HWsHyZ2TnJgTSHGfDEQZcn1izSqam+M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1625512273; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bKMu0DNFSm3m6hiv9d2/97gk0PHUnEZ4RSnVS+ImHgM=; b=j92U3m2hN9sWzBjjHodI7x+DDrHQlmCxl8G+CcpVvegZBskw4WUYjH45lsTRviXlpiA/TIdSjOKhFI1Zt1kMxAmH9A3KupQHUAHT+x6mmb49fZS7xeliNPuHmEBnQ18+y00I6sa52i2rYLVYKKt3qcfgMlAf6OyMK6xZEoVzAPA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1625512273475353.32665385622863; Mon, 5 Jul 2021 12:11:13 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.150631.278493 (Exim 4.92) (envelope-from ) id 1m0Tzg-0002yN-Vo; Mon, 05 Jul 2021 19:11:00 +0000 Received: by outflank-mailman (output) from mailman id 150631.278493; Mon, 05 Jul 2021 19:11:00 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0Tzg-0002yE-SD; Mon, 05 Jul 2021 19:11:00 +0000 Received: by outflank-mailman (input) for mailman id 150631; Mon, 05 Jul 2021 19:10:59 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0Tzf-0002tP-RL for xen-devel@lists.xenproject.org; Mon, 05 Jul 2021 19:10:59 +0000 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id b9903b4a-ddc4-11eb-8459-12813bfff9fa; Mon, 05 Jul 2021 19:10:56 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b9903b4a-ddc4-11eb-8459-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1625512256; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=MYgc+W0g6DOuwBi3YuCpQOetNiKzFhp4dnXvQBYWZnY=; b=HH9cqdAy9n6Uhe+FJ+vwwrspTBpDlgTzIaRaKE6BRFjQOn1ddQ7LaZLQ s2HgsLGA7Yx+Ly+dQQH9oA88L16QQrbCf8xkPpsUf+s2edMU5MNOIaOkK oEhgzYwsFyM4iiLJ1rhKDqIywBs5+m/jOviUPWCWWCCUgzO/8K3hEhWqr c=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: kL+M67rezHidGYQ6Vr9YydkTRy00f8MtKIghQVumW8qNZnK8NSA449qEQuOij4TiFUa+PoT51S X9ZXuoWbMdekZzyQ6WLj41ufMthLif2sgMw8mriqQ4/v2enKDxzKHSARXCgUu5KOUDzNNm9KOq 6ZE6mMB5zzNxyzWTOG2S78ifqIGHlXmioZgv8eBmFEeuvynQFdpyDGuaSWVkYHMJRgf7ijzzbs zQhugJxMouo916tmFJjk7PQAs0D6wuO/OMpr/DiIX/wpF4TvJA4t7co8I1ZICGpoQ8pnRHTT20 u3Y= X-SBRS: 5.1 X-MesageID: 47662836 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:VLwU6KzZNyrW7ofCxFmTKrPwOr1zdoMgy1knxilNoRw8SKKlfq GV7ZMmPHDP6Ar5NEtNpTniAtjlfZq/z+8X3WB5B97LN2OKhILBFvAG0WKI+Vzd8kPFmdK1rZ 0QEZRDNA== X-IronPort-AV: E=Sophos;i="5.83,326,1616472000"; d="scan'208";a="47662836" From: Andrew Cooper To: Xen-devel CC: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Olaf Hering , "Juergen Gross" , Ian Jackson , Wei Liu Subject: [PATCH 1/5] tools/python: handle libxl__physmap_info.name properly in convert-legacy-stream Date: Mon, 5 Jul 2021 20:10:23 +0100 Message-ID: <20210705191027.15107-2-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20210705191027.15107-1-andrew.cooper3@citrix.com> References: <20210705191027.15107-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1625512280191100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Olaf Hering The trailing member name[] in libxl__physmap_info is written as a cstring into the stream. The current code does a sanity check if the last byte is zero. This attempt fails with python3 because name[-1] returns a type int. As a result the comparison with byte(\00) fails: File "/usr/lib/xen/bin/convert-legacy-stream", line 347, in read_libxl_to= olstack raise StreamError("physmap name not NUL terminated") StreamError: physmap name not NUL terminated To handle both python variants, cast to bytearray(). Signed-off-by: Olaf Hering Reviewed-by: Andrew Cooper Acked-by: Marek Marczykowski-G=C3=B3recki Tested-by: Olaf Hering --- tools/python/scripts/convert-legacy-stream | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/python/scripts/convert-legacy-stream b/tools/python/scri= pts/convert-legacy-stream index 66ee3d2f5d29..227e1b5c3fd3 100755 --- a/tools/python/scripts/convert-legacy-stream +++ b/tools/python/scripts/convert-legacy-stream @@ -343,7 +343,7 @@ def read_libxl_toolstack(vm, data): if twidth =3D=3D 64: name =3D name[:-4] =20 - if name[-1] !=3D b'\x00': + if bytearray(name)[-1] !=3D 0: raise StreamError("physmap name not NUL terminated") =20 root =3D b"physmap/%x" % (phys, ) --=20 2.11.0 From nobody Sun May 5 05:55:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1625512278; cv=none; d=zohomail.com; s=zohoarc; b=VhJxDSDixiNZgYzwsQVHkaarlhqPBKiBMaTJfkLKkMCyx5K5ufpR8dJQ51Cq7MTuUe5euWn82eu0ppvFVjEMnafULYJxsaOzFckIuVtVjTFr/VEfP+z7ruD9ATySLU7AH5gZ91/avzOZDydua+quSzwAoxuOywrVS4u0yydcR/I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1625512278; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=QIdQ2FwTTEOYVgILMl/7D52WpdwoV3V7OjgleFIPcJ0=; b=NhVNfxHksv9iHlj966QM4CN9cRsz6oBFGm9w6/9kDtoGn58bnIhmifE/+V5DjJK2Ol+tFG7urN+Px2caCkIVglbUqiaNBbFDW+TAQ8D0BkbiSAvm7Vn0y27FZWNlUld3F5tkCjRuj5Yx37FCeO196PKHxHevkTmSgUyCPPfkJLg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1625512278661308.4789880726214; Mon, 5 Jul 2021 12:11:18 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.150633.278515 (Exim 4.92) (envelope-from ) id 1m0Tzm-0003fz-GL; Mon, 05 Jul 2021 19:11:06 +0000 Received: by outflank-mailman (output) from mailman id 150633.278515; Mon, 05 Jul 2021 19:11:06 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0Tzm-0003fj-Ci; Mon, 05 Jul 2021 19:11:06 +0000 Received: by outflank-mailman (input) for mailman id 150633; Mon, 05 Jul 2021 19:11:04 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0Tzk-0002tP-RR for xen-devel@lists.xenproject.org; Mon, 05 Jul 2021 19:11:04 +0000 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id b9903b4b-ddc4-11eb-8459-12813bfff9fa; Mon, 05 Jul 2021 19:10:57 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b9903b4b-ddc4-11eb-8459-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1625512257; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=Yg5/TaytRdxEyL/8i1MtFxEb99X7krAsWD1gKRnJVZc=; b=AuWtHNe7smlbIpudLjdjd0HQoUizPx3cgl/g+3UnVc4bvtLaU69Qc7FM JvL98PMykhWwxNsyNKmMokpLGiCpE6dJH8hVDYY/iEnJpIStf+zPTnWtQ K/xFod8mvSX9OeFgnj7Xg/Q3lrP0Hc+n9Ot9p6J+MVEo2fSiyZDE/2EY0 8=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: 1c9I/CO3mklO3t3Sj43l5AUhdN1jpqz8bljjxBwAjER/X9xEmVrm9EAnunhK2rtWehTTOlpmz7 qB0jhsGU9KX+LIG9F4Vq3dxTAxoOk5mYtl79W/x8D2xpBE7odoEUpzNW4hfWFC8PM+USWwDeOD SLM7eMei7L4pc9+r3t2LHyn+44BWChEfBGSGHDDh0CVJoIq83i7yoSCtN0Is6TiSduyOLC+Xzp dZeP1NobtXmrAmwLqhBRpMN1jZGYHa91STJzeHNpnNYkZB6o4oJdlJW7Z+RdJKHeoIwSNR5DgX 1p8= X-SBRS: 5.1 X-MesageID: 47662837 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:VSWnXau4mLbJk92XYmB6z5J97skDYNV00zEX/kB9WHVpmszxra 6TdZUgpHjJYVkqOE3I9ertBEDiewK5yXcW2/hzAV7KZmCP0wHEEGgL1/qG/9SKIUzDH4Bmup uIC5IOauHNMQ== X-IronPort-AV: E=Sophos;i="5.83,326,1616472000"; d="scan'208";a="47662837" From: Andrew Cooper To: Xen-devel CC: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Olaf Hering , "Juergen Gross" , Ian Jackson , Wei Liu Subject: [PATCH 2/5] tools/python: fix Python3.4 TypeError in format string Date: Mon, 5 Jul 2021 20:10:24 +0100 Message-ID: <20210705191027.15107-3-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20210705191027.15107-1-andrew.cooper3@citrix.com> References: <20210705191027.15107-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1625512285213100002 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Olaf Hering Using the first element of a tuple for a format specifier fails with python3.4 as included in SLE12: b =3D b"string/%x" % (i, ) TypeError: unsupported operand type(s) for %: 'bytes' and 'tuple' It happens to work with python 2.7 and 3.6. To support older Py3, format as strings and explicitly encode as ASCII. Signed-off-by: Olaf Hering Reviewed-by: Andrew Cooper Tested-by: Olaf Hering --- tools/python/scripts/convert-legacy-stream | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/python/scripts/convert-legacy-stream b/tools/python/scri= pts/convert-legacy-stream index 227e1b5c3fd3..7fe375a66810 100755 --- a/tools/python/scripts/convert-legacy-stream +++ b/tools/python/scripts/convert-legacy-stream @@ -346,9 +346,9 @@ def read_libxl_toolstack(vm, data): if bytearray(name)[-1] !=3D 0: raise StreamError("physmap name not NUL terminated") =20 - root =3D b"physmap/%x" % (phys, ) - kv =3D [root + b"/start_addr", b"%x" % (start, ), - root + b"/size", b"%x" % (size, ), + root =3D ("physmap/%x" % (phys, )).encode('ascii') + kv =3D [root + b"/start_addr", ("%x" % (start, )).encode('ascii'), + root + b"/size", ("%x" % (size, )).encode('ascii'), root + b"/name", name[:-1]] =20 for key, val in zip(kv[0::2], kv[1::2]): --=20 2.11.0 From nobody Sun May 5 05:55:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1625512282; cv=none; d=zohomail.com; s=zohoarc; b=gxrayAAkm2X3b4QTa14TlTJFkojbty1po5xB2wEq5gl6hlwG5h1H/O3aBu+/qUB4dlFhX4pXWzPxokWtaUudxih4Jc3ahF/Q01pp06npMX1OiCslEjnNsEwHVx2P9dhNcti5Mq+0fpjb9Y7CzI84aUcU6boPECDyWcWx/dU3k5Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1625512282; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gHrt48KkA40/QPXKI2mhom26KorMGuvq2+KmJEkFnkg=; b=gEOSvliOIqyaHcUHSYuOx7QvqaPmNwABXA6SVaVjTMr0WK0/5v+Ary806PO2vw3F/i2u7SybwkuBnzjNCAasnCU8D2UFF0yGs6xs4j9uY4o1hcqMPa0jdUeLDxQGYnR52TKUYBk0UPJ9pdS1jOOGBI4hQi//tqiYMm0jJjvaE1I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1625512282703822.5214202994725; Mon, 5 Jul 2021 12:11:22 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.150636.278536 (Exim 4.92) (envelope-from ) id 1m0Tzr-0004Mm-42; Mon, 05 Jul 2021 19:11:11 +0000 Received: by outflank-mailman (output) from mailman id 150636.278536; Mon, 05 Jul 2021 19:11:11 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0Tzr-0004MX-0J; Mon, 05 Jul 2021 19:11:11 +0000 Received: by outflank-mailman (input) for mailman id 150636; Mon, 05 Jul 2021 19:11:09 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0Tzp-0002tP-Rt for xen-devel@lists.xenproject.org; Mon, 05 Jul 2021 19:11:09 +0000 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id bdab91df-ddc4-11eb-8459-12813bfff9fa; Mon, 05 Jul 2021 19:11:03 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: bdab91df-ddc4-11eb-8459-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1625512263; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=HyKLJg6+yF7ZQi/84e0KuLZSQO3s7SCQ3p1UsQyyXqU=; b=KvoYmYP7ugDGx1ef/7w3ljJ9MMAXYOaqpfB8sJ/4uN13jS20PSTqaIdv WtF52+GiqLFWDawhNbLAVqWWvpaUz+QlJILxNfWWMSkSGen56MhkruHq4 4rDh7Gf1h3Wc4JJZ4s5wyzHVtshJhtm3h2ES79dJ8+gMLwvpWdVaLsWk3 4=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: aPmwI5Ngmk9G7uDfJWPaX/ImIZHiG9VdNeTYMatZS81V2yqpbThy24moBXhMX3QSQWw+SWYBwV a211VBmA3Uc2XvqnhlyOkIDhAbRCq/28T2Lw7iT/SOTQiOPYrYPrxlxr8NAqB9QJRnHOQcvb7F og5TnnFVVF1z/27ocbN54SdWzTsvTfugfUJFEson3vnjKwXIQEBAb8e0sL02MAL9J73dw8tX7x G8l0kfZf9JCQ8K4ve5KzQqkLotlY/rYoPT98gK/KxjF22IKV+f8QMVErfbf6kxraOCB/reb1Tp Tkw= X-SBRS: 5.1 X-MesageID: 47973429 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:XhZIcKB7gwQjmWHlHemo55DYdb4zR+YMi2TC1yhKKCC9E/bo7/ xG885rtiMc5Ax/ZJhko6HlBEDiewKkyXcW2/hyAV7KZmCP0wHEQL2Kr7GSpAEIcxeOkNK1vp 0BT0ERMrPN5CBB/KPH3DU= X-IronPort-AV: E=Sophos;i="5.83,326,1616472000"; d="scan'208";a="47973429" From: Andrew Cooper To: Xen-devel CC: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Olaf Hering , "Juergen Gross" , Ian Jackson , Wei Liu Subject: [PATCH 3/5] tools/migration: unify known page type checking Date: Mon, 5 Jul 2021 20:10:25 +0100 Message-ID: <20210705191027.15107-4-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20210705191027.15107-1-andrew.cooper3@citrix.com> References: <20210705191027.15107-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1625512290289100002 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Olaf Hering Users of xc_get_pfn_type_batch may want to sanity check the data returned by Xen. Add helpers for this purpose: is_known_page_type verifies the type returned by Xen on the saving side, or the incoming type for a page on the restoring side, is known by the save/restore code. Signed-off-by: Olaf Hering Reviewed-by: Juergen Gross Reviewed-by: Andrew Cooper Tested-by: Olaf Hering --- tools/libs/guest/xg_sr_common.h | 29 +++++++++++++++++++++++++++++ tools/libs/guest/xg_sr_restore.c | 5 ++--- tools/libs/guest/xg_sr_save.c | 6 ++++++ 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_commo= n.h index e2994e18acf1..e8436d1abb14 100644 --- a/tools/libs/guest/xg_sr_common.h +++ b/tools/libs/guest/xg_sr_common.h @@ -455,6 +455,35 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned = int count, /* Handle a STATIC_DATA_END record. */ int handle_static_data_end(struct xc_sr_context *ctx); =20 +/* Page type known to the migration logic? */ +static inline bool is_known_page_type(uint32_t type) +{ + switch ( type ) + { + case XEN_DOMCTL_PFINFO_NOTAB: + + case XEN_DOMCTL_PFINFO_L1TAB: + case XEN_DOMCTL_PFINFO_L1TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_L2TAB: + case XEN_DOMCTL_PFINFO_L2TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_L3TAB: + case XEN_DOMCTL_PFINFO_L3TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_L4TAB: + case XEN_DOMCTL_PFINFO_L4TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_XTAB: + case XEN_DOMCTL_PFINFO_XALLOC: /* Synthetic type in Xen 4.2 - 4.5 */ + case XEN_DOMCTL_PFINFO_BROKEN: + return true; + + default: + return false; + } +} + #endif /* * Local variables: diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_rest= ore.c index b57a7875192f..508953fd3cf7 100644 --- a/tools/libs/guest/xg_sr_restore.c +++ b/tools/libs/guest/xg_sr_restore.c @@ -406,10 +406,9 @@ static int handle_page_data(struct xc_sr_context *ctx,= struct xc_sr_record *rec) } =20 type =3D (pages->pfn[i] & PAGE_DATA_TYPE_MASK) >> 32; - if ( ((type >> XEN_DOMCTL_PFINFO_LTAB_SHIFT) >=3D 5) && - ((type >> XEN_DOMCTL_PFINFO_LTAB_SHIFT) <=3D 8) ) + if ( !is_known_page_type(type) ) { - ERROR("Invalid type %#"PRIx32" for pfn %#"PRIpfn" (index %u)", + ERROR("Unknown type %#"PRIx32" for pfn %#"PRIpfn" (index %u)", type, pfn, i); goto err; } diff --git a/tools/libs/guest/xg_sr_save.c b/tools/libs/guest/xg_sr_save.c index f0e2bd048d37..c84a073e86f4 100644 --- a/tools/libs/guest/xg_sr_save.c +++ b/tools/libs/guest/xg_sr_save.c @@ -147,6 +147,12 @@ static int write_batch(struct xc_sr_context *ctx) =20 for ( i =3D 0; i < nr_pfns; ++i ) { + if ( !is_known_page_type(types[i]) ) + { + ERROR("Unknown type %#"PRIpfn" for pfn %#"PRIpfn, types[i], mf= ns[i]); + goto err; + } + switch ( types[i] ) { case XEN_DOMCTL_PFINFO_BROKEN: --=20 2.11.0 From nobody Sun May 5 05:55:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1625512277; cv=none; d=zohomail.com; s=zohoarc; b=glyWSkcosGPkzS4ph3LFThO60v4fxACDComqNWXbATJ7xjdPfBb+900HmiITl/uEE1XhgabPpBGLMOXg7gBO3wizjXkDLC+LfLm7O/y+jGoHNTpPnoPJl+PJCa2CJ7iBqdIBhgaxf+ZuoMXwZxlzJIT+44McT3OSZbEHYi3ywck= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1625512277; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1l4JIA/sNMMh5scGWXwlF9X+FOQzCNSNYd/TYFaT8Jk=; b=ic2MeqTVCplwCpZhYHctEu3Y3x3qpAZq+cusmByTN9UrvjTM57UssDXjj4UhADdw9UvMZWblPAZ420Wpwnw6wq2UiV3OZ1PeU4vAHGJzt0JJ94Z1h/TybQHlElIPRxloEMyebVTVnN12/Mj9I6cbiIwCq87iyFlge8gpoB7BXEw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1625512277733644.5277636255033; Mon, 5 Jul 2021 12:11:17 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.150632.278503 (Exim 4.92) (envelope-from ) id 1m0Tzk-0003IG-7Q; Mon, 05 Jul 2021 19:11:04 +0000 Received: by outflank-mailman (output) from mailman id 150632.278503; Mon, 05 Jul 2021 19:11:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0Tzk-0003I7-46; Mon, 05 Jul 2021 19:11:04 +0000 Received: by outflank-mailman (input) for mailman id 150632; Mon, 05 Jul 2021 19:11:03 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0Tzj-0003HJ-02 for xen-devel@lists.xenproject.org; Mon, 05 Jul 2021 19:11:03 +0000 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b5d8e537-8481-41c3-9533-1295432eb5e4; Mon, 05 Jul 2021 19:11:02 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: b5d8e537-8481-41c3-9533-1295432eb5e4 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1625512262; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=LyGR43uHEWb6t2bUOODNzpfUs/a64k/3YzkKZGB+u+c=; b=TdgK53jhLj0+ImqmTKRC0uZ7TQ7CGP93dFFfWy0c1ZJbHYHGW7YuKO4/ iB1eBZWIenNrwplvOJ4rYopxO29w/S0ZDfxX5LeTNQgoqb1yDTnLI/rrY HjOpYUIVWpnYepvvmNgR5rrV0uOmL5KNIreZIUcL7lDpZ8bxo4r51bGmQ M=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: zQgEcGNxfycW0ynA3O1Td4yotW/XnQR3ldkBfHRa0frV98SDnxaIICPEu81NmOM+lVMa48PQw8 HKKcCfkeajlNObbmcTrhwKkzMEVChahIxXjS+RM6QOgb3G/gCLGR+gL2hHbEtdAIp/Y7ZP5sGc Ii3iSjein3WaHlWizSucTl4grmtqXOkaJb/idT36E7oCRnkGW14LFQc1CMSjvW61vbL1hgfHA9 6B+wk91+yy8X+Y9Ce0+K9bgsqkS6osqGkiOJ/Tk0/cEkR3ckk5diqvu72sel5lmkvqtkcu/uHc u9k= X-SBRS: 5.1 X-MesageID: 47973427 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:jlPoQqGR/IwqK6/TpLqE7MeALOsnbusQ8zAXP0AYc31om62j5r iTdZsgpHzJYVoqN03I3OrwXJVoIkmsjKKdg7NhX4tKNTOO0ADDQe1fBMnZslrd8kXFh4hgPM xbE5SWZuefMbEDt7ee3DWF X-IronPort-AV: E=Sophos;i="5.83,326,1616472000"; d="scan'208";a="47973427" From: Andrew Cooper To: Xen-devel CC: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Olaf Hering , "Juergen Gross" , Ian Jackson , Wei Liu Subject: [PATCH 4/5] tools/migration: unify type checking for data pfns in the VM Date: Mon, 5 Jul 2021 20:10:26 +0100 Message-ID: <20210705191027.15107-5-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20210705191027.15107-1-andrew.cooper3@citrix.com> References: <20210705191027.15107-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1625512285119100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Olaf Hering Introduce a helper which decides if a given pfn in the migration stream is backed by memory. This highlights more clearly that type XEN_DOMCTL_PFINFO_XALLOC (a synthetic toolstack-only type used between Xen 4.2 to 4.5 which indicated a dirty page on the sending side for which no data will be send in the initial iteration) does get populated in the VM. No change in behaviour intended, except for invalid page types which now have a safer default. Signed-off-by: Olaf Hering Reviewed-by: Andrew Cooper Tested-by: Olaf Hering --- tools/libs/guest/xg_sr_common.h | 29 +++++++++++++++++++++++++++++ tools/libs/guest/xg_sr_restore.c | 4 +--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_commo= n.h index e8436d1abb14..7f4b0439f6bd 100644 --- a/tools/libs/guest/xg_sr_common.h +++ b/tools/libs/guest/xg_sr_common.h @@ -484,6 +484,35 @@ static inline bool is_known_page_type(uint32_t type) } } =20 +/* Page type backed by RAM in the guest? */ +static inline bool page_type_to_populate(uint32_t type) +{ + switch ( type ) + { + case XEN_DOMCTL_PFINFO_NOTAB: + + case XEN_DOMCTL_PFINFO_L1TAB: + case XEN_DOMCTL_PFINFO_L1TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_L2TAB: + case XEN_DOMCTL_PFINFO_L2TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_L3TAB: + case XEN_DOMCTL_PFINFO_L3TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_L4TAB: + case XEN_DOMCTL_PFINFO_L4TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_XALLOC: + return true; + + case XEN_DOMCTL_PFINFO_XTAB: + case XEN_DOMCTL_PFINFO_BROKEN: + default: + return false; + } +} + #endif /* * Local variables: diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_rest= ore.c index 508953fd3cf7..3d63442d4537 100644 --- a/tools/libs/guest/xg_sr_restore.c +++ b/tools/libs/guest/xg_sr_restore.c @@ -152,9 +152,7 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned i= nt count, =20 for ( i =3D 0; i < count; ++i ) { - if ( (!types || (types && - (types[i] !=3D XEN_DOMCTL_PFINFO_XTAB && - types[i] !=3D XEN_DOMCTL_PFINFO_BROKEN))) && + if ( (!types || page_type_to_populate(types[i])) && !pfn_is_populated(ctx, original_pfns[i]) ) { rc =3D pfn_set_populated(ctx, original_pfns[i]); --=20 2.11.0 From nobody Sun May 5 05:55:48 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1625512281; cv=none; d=zohomail.com; s=zohoarc; b=oBBqKcPnhbI3PW2polBmaFGAoi2Q6fHUIfAUIsCuYKCBQZGDCipQL9LuUvPI9Cywh770wF+wU4iKbBJpJ1ouNnnsJ3hbcMA0kvXb/WKG5n+1DDN+NLm/DIKyA5XBMufjJiEFFaB6ujllDCnz1X2cLg1V4UJzJQ77p+mIBSB+EQA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1625512281; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ewbD3AeI0LUfGRxPb7EpAmguy0aIwZrSbj/n2N40A8c=; b=e2QoHDnI6bpY2GS9Z5JL9ARGNeuGPiagGf+VWFqVg9eJ6WQQhc9dpdLNovuL5G+lH3jpNO/JhJcNswWaF4UmJfbbdvGdTY1e1EsDckLMiF1an5h3ds0sYj0CPELMbe4ywWKr+F9NlNrKIe09HyuskCTVjWr7jjavLkXQ2qlLdr8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 162551228170028.921950521736676; Mon, 5 Jul 2021 12:11:21 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.150634.278526 (Exim 4.92) (envelope-from ) id 1m0Tzo-00041S-Q6; Mon, 05 Jul 2021 19:11:08 +0000 Received: by outflank-mailman (output) from mailman id 150634.278526; Mon, 05 Jul 2021 19:11:08 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0Tzo-00041F-Mf; Mon, 05 Jul 2021 19:11:08 +0000 Received: by outflank-mailman (input) for mailman id 150634; Mon, 05 Jul 2021 19:11:08 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m0Tzn-0003HJ-VP for xen-devel@lists.xenproject.org; Mon, 05 Jul 2021 19:11:07 +0000 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 87e402e1-75f0-4030-a371-3c0f098e4869; Mon, 05 Jul 2021 19:11:03 +0000 (UTC) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 87e402e1-75f0-4030-a371-3c0f098e4869 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1625512263; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=CuqCxukAEpPEZu8tBseimenOnd4UdwA3oGVYBaKS/xI=; b=fkMu09vEWcwInWDIZsXOfmQKXrLAYqtayIUXN2/72ZwXONSHgXsp/sF2 Wpo/YZfa+CQ6hpOHhxNR0FBrsljgW3Tn23RNef6YJF+iDwhlN6kgq+sUp 5Aa9WHNK1m9LW97zYBauMB+mbE3BOJSIAV7oTmxAw9lQ859qB+Zm5WGrf A=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: jiN/OOdM2xnlx3gY/d/CG7XM8wTwfwWvWPS+MAsXL7Gm3No1PHOeUaWSWb0Mq1AOpYGW8rSTSl msxvTpSLcyY1biRw+UdnZRFI8AoDD/OdqXqEwz119JxX/VeoSXOLDBzrhiar5/IU62az87wY7Z /Jf5HLScEpAuACqzJESHnjK7f/jIWlIFYyO3vVVFCR3UjDBPCB2jqw1vU8briqHE+95FZjCOXz Fkx81lk7h8Hpb2hyc9V1mhDx1Rl6ve09aZ/iGqCts+NOsjvSTxMuIEM2skmnvZSGLnn+Y4zods XW4= X-SBRS: 5.1 X-MesageID: 47973428 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:3JsuValfXQZvYwm7I6hXzZdos+/pDfIo3DAbv31ZSRFFG/Fxl6 iV/cjztCWE8Ar5N0tQ+uxoVJPufZqYz+8Q3WBzB8baYOCFghrLEGgK1+KLqFeMdxEWtNQtsp uIG5IObuEYZmIbsS+V2meF+q4bsby6zJw= X-IronPort-AV: E=Sophos;i="5.83,326,1616472000"; d="scan'208";a="47973428" From: Andrew Cooper To: Xen-devel CC: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Olaf Hering , "Juergen Gross" , Ian Jackson , Wei Liu Subject: [PATCH 5/5] tools/migration: unify type checking for data pfns in migration stream Date: Mon, 5 Jul 2021 20:10:27 +0100 Message-ID: <20210705191027.15107-6-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20210705191027.15107-1-andrew.cooper3@citrix.com> References: <20210705191027.15107-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1625512290239100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Olaf Hering Introduce a helper which decides if a given pfn type has data in the migration stream. No change in behaviour intended, except for invalid page types which now have a safer default. Signed-off-by: Olaf Hering Tested-by: Olaf Hering --- tools/libs/guest/xg_sr_common.h | 27 +++++++++++++++++++++++++++ tools/libs/guest/xg_sr_restore.c | 29 +++-------------------------- tools/libs/guest/xg_sr_save.c | 14 ++------------ 3 files changed, 32 insertions(+), 38 deletions(-) diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_commo= n.h index 7f4b0439f6bd..36d45ef56fb8 100644 --- a/tools/libs/guest/xg_sr_common.h +++ b/tools/libs/guest/xg_sr_common.h @@ -513,6 +513,33 @@ static inline bool page_type_to_populate(uint32_t type) } } =20 +static inline bool page_type_has_stream_data(uint32_t type) +{ + switch ( type ) + { + case XEN_DOMCTL_PFINFO_NOTAB: + + case XEN_DOMCTL_PFINFO_L1TAB: + case XEN_DOMCTL_PFINFO_L1TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_L2TAB: + case XEN_DOMCTL_PFINFO_L2TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_L3TAB: + case XEN_DOMCTL_PFINFO_L3TAB | XEN_DOMCTL_PFINFO_LPINTAB: + + case XEN_DOMCTL_PFINFO_L4TAB: + case XEN_DOMCTL_PFINFO_L4TAB | XEN_DOMCTL_PFINFO_LPINTAB: + return true; + + case XEN_DOMCTL_PFINFO_XTAB: + case XEN_DOMCTL_PFINFO_BROKEN: + case XEN_DOMCTL_PFINFO_XALLOC: + default: + return false; + } +} + #endif /* * Local variables: diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_rest= ore.c index 3d63442d4537..aa4113d7f679 100644 --- a/tools/libs/guest/xg_sr_restore.c +++ b/tools/libs/guest/xg_sr_restore.c @@ -231,25 +231,8 @@ static int process_page_data(struct xc_sr_context *ctx= , unsigned int count, { ctx->restore.ops.set_page_type(ctx, pfns[i], types[i]); =20 - switch ( types[i] ) - { - case XEN_DOMCTL_PFINFO_NOTAB: - - case XEN_DOMCTL_PFINFO_L1TAB: - case XEN_DOMCTL_PFINFO_L1TAB | XEN_DOMCTL_PFINFO_LPINTAB: - - case XEN_DOMCTL_PFINFO_L2TAB: - case XEN_DOMCTL_PFINFO_L2TAB | XEN_DOMCTL_PFINFO_LPINTAB: - - case XEN_DOMCTL_PFINFO_L3TAB: - case XEN_DOMCTL_PFINFO_L3TAB | XEN_DOMCTL_PFINFO_LPINTAB: - - case XEN_DOMCTL_PFINFO_L4TAB: - case XEN_DOMCTL_PFINFO_L4TAB | XEN_DOMCTL_PFINFO_LPINTAB: - + if ( page_type_has_stream_data(types[i]) ) mfns[nr_pages++] =3D ctx->restore.ops.pfn_to_gfn(ctx, pfns[i]); - break; - } } =20 /* Nothing to do? */ @@ -269,14 +252,8 @@ static int process_page_data(struct xc_sr_context *ctx= , unsigned int count, =20 for ( i =3D 0, j =3D 0; i < count; ++i ) { - switch ( types[i] ) - { - case XEN_DOMCTL_PFINFO_XTAB: - case XEN_DOMCTL_PFINFO_BROKEN: - case XEN_DOMCTL_PFINFO_XALLOC: - /* No page data to deal with. */ + if ( !page_type_has_stream_data(types[i]) ) continue; - } =20 if ( map_errs[j] ) { @@ -411,7 +388,7 @@ static int handle_page_data(struct xc_sr_context *ctx, = struct xc_sr_record *rec) goto err; } =20 - if ( type < XEN_DOMCTL_PFINFO_BROKEN ) + if ( page_type_has_stream_data(type) ) /* NOTAB and all L1 through L4 tables (including pinned) should * have a page worth of data in the record. */ pages_of_data++; diff --git a/tools/libs/guest/xg_sr_save.c b/tools/libs/guest/xg_sr_save.c index c84a073e86f4..3fce41b6cfff 100644 --- a/tools/libs/guest/xg_sr_save.c +++ b/tools/libs/guest/xg_sr_save.c @@ -153,13 +153,8 @@ static int write_batch(struct xc_sr_context *ctx) goto err; } =20 - switch ( types[i] ) - { - case XEN_DOMCTL_PFINFO_BROKEN: - case XEN_DOMCTL_PFINFO_XALLOC: - case XEN_DOMCTL_PFINFO_XTAB: + if ( !page_type_has_stream_data(types[i]) ) continue; - } =20 mfns[nr_pages++] =3D mfns[i]; } @@ -177,13 +172,8 @@ static int write_batch(struct xc_sr_context *ctx) =20 for ( i =3D 0, p =3D 0; i < nr_pfns; ++i ) { - switch ( types[i] ) - { - case XEN_DOMCTL_PFINFO_BROKEN: - case XEN_DOMCTL_PFINFO_XALLOC: - case XEN_DOMCTL_PFINFO_XTAB: + if ( !page_type_has_stream_data(types[i]) ) continue; - } =20 if ( errors[p] ) { --=20 2.11.0