From nobody Thu May 2 06:37:28 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; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1638797134; cv=pass; d=zohomail.com; s=zohoarc; b=VHWQBcoSgfkkzy1Aoyi2o8EKLqVuE4R4BuAgyGC8aB6cPb24DJz6zvJjkjmZuJezkvVx6XULqXknX07nk2+cODHMplEhzOlkP+Y817BE+N0dfUY7XpNHizXbI6cimdIHlXRsdJ+DsD04+bpQDIUuqXGg75Oy0nojMtzrQ45s0Tw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638797134; h=Content-Type:Content-Transfer-Encoding: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=qEsj9ndE9Q/guZXie3VtZKqzHbg+waaXmZENccFoZSo=; b=i1CaeVN/EkvskJqMEN8cRkluRAr6PLXvzI82gw2jLWWHkhT72JWoYFt1eDr3xHpZ4aj/dSzCVpHOa95wLNVQ9dyKhbMKA2lUPekRXa7FcIR7P69JMYTyk1U6rAPw7anTCzXn6FrpOahqWBPMLDrjsET59EO2VD7PBHeicfHOjEY= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1638797134161868.3787061227029; Mon, 6 Dec 2021 05:25:34 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.238897.414034 (Exim 4.92) (envelope-from ) id 1muDzc-0000Cq-0p; Mon, 06 Dec 2021 13:25:20 +0000 Received: by outflank-mailman (output) from mailman id 238897.414034; Mon, 06 Dec 2021 13:25:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1muDzb-0000Ch-TY; Mon, 06 Dec 2021 13:25:19 +0000 Received: by outflank-mailman (input) for mailman id 238897; Mon, 06 Dec 2021 13:25:18 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1muDza-00006G-2D for xen-devel@lists.xenproject.org; Mon, 06 Dec 2021 13:25:18 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id f3c4364a-5697-11ec-8a4d-196798b21f7b; Mon, 06 Dec 2021 14:25:17 +0100 (CET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2175.outbound.protection.outlook.com [104.47.17.175]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-14-v5fdYRZ4OUu7QHgtNCUuHQ-1; Mon, 06 Dec 2021 14:25:16 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB7024.eurprd04.prod.outlook.com (2603:10a6:800:124::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.21; Mon, 6 Dec 2021 13:25:15 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe%6]) with mapi id 15.20.4755.021; Mon, 6 Dec 2021 13:25:15 +0000 Received: from [10.156.60.236] (37.24.206.209) by AM6PR0202CA0069.eurprd02.prod.outlook.com (2603:10a6:20b:3a::46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.17 via Frontend Transport; Mon, 6 Dec 2021 13:25:14 +0000 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: f3c4364a-5697-11ec-8a4d-196798b21f7b DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1638797117; 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=qEsj9ndE9Q/guZXie3VtZKqzHbg+waaXmZENccFoZSo=; b=YQGjFPuf4p5k0i5fn5Yv6hFI9zSpAoOuAoaxMCHSO7N+pVY+HjIkN4p194yWTxj+IsaQBw HlGwyQvQD8+u1LJq8tXMyuNy1meEQt3kKfy81OnNOp17kUJAbKIP5PlXOPnswtVfCGUcYZ g22KU21wcHFtSYbPpwlLtEc8i5oitEI= X-MC-Unique: v5fdYRZ4OUu7QHgtNCUuHQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VUvRpZEW59XVzwhyslnO8WMGV104htmC65eSt+/sZGCNVoMDEJJ+ADgQwU63E1VUCjQHMEFbkmNGf5SxZoWjM0zLeLYuMinikRnvobyE0PB2klH+DTqyf8LX9pmd3udmxXNzNYKJBSgPM5SM/w18xtk0GCJYv7S+O6K49WGWH0LZd0CVp0GY5+K+xtxDzpw769dcRQtDVQ3qi+LSq7Csdd0UZjZG3LocsCfE6CrwjXzPCpy2f8y4H1+XbOMgDamUgr0aWvyl0vqv3+/hbBoZetdLa4cxwVdMZKPSxzOdJkaESez/rm4vbM2J46IkQgM5ifsvGyPZFUGzFS2JopUYbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qEsj9ndE9Q/guZXie3VtZKqzHbg+waaXmZENccFoZSo=; b=PvTXyMEY94dkfTY9uovKoxq62fORdCvx27G2ztMFZkpuBpjUAEzQDkX0Ky2Nxha971Ze0bJM1xzdoV6XLqAs19APak7EpDUU07rYTuB/EC2G54kDnNmoZkfFpqnKViLh36R0mGpb0RUKKha4ZQx2TTNhXdnmiZn/C3QkfUGKc/xxxL+LGQFfWAYcLaDqaf683snquApwfhEBNmuZK5lceSQsgcGiepmBmZNyTZZV/RujcLLa6mHbrpeEjAVp9QrbsbsKzH2z5y6pfsColqCSAB25jlunIF4yvVtrY95ryOd26LZ+LgR5hegkzRAA0bX7hvtyZBitPqgBF/0+ranC6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Mon, 6 Dec 2021 14:25:13 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: [PATCH v2 1/2] x86/paging: tidy paging_mfn_is_dirty() Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , George Dunlap References: <61c1d38c-65a6-e150-ed53-b565d30c18c9@suse.com> In-Reply-To: <61c1d38c-65a6-e150-ed53-b565d30c18c9@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6PR0202CA0069.eurprd02.prod.outlook.com (2603:10a6:20b:3a::46) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3785d258-9018-437f-83f8-08d9b8bbd6c4 X-MS-TrafficTypeDiagnostic: VI1PR04MB7024:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1332; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1ZPPKKrEaDGXpCFmOQdam3nCEmK5iyDKzROmE+B2LuaZKnPdHJ+byW0fxA1L8pCCHL2avmAZB1kX4yAnpK3FEWJ1tBohFkCqiiKzUJyauTOkKaWd0UUwXbRMucJVtRBMbtraNOPqNJ2irzIZXrYDeYefBRkTZ0wycfp2SUOIkPpUK+SfkexH9fsDYz3Sp8+IkD39NH9GdnRIpCRtKbRkkqFHfK09LNFqQVwzKLCtxHmW+yW4YsVY8cn71JUhdXrFtl9rkKhIlZbyHw0Us1h8JvuBaHcAGSioXtUrnvGz8KGpHg1wtlKZWxHE9EzVG89F44R/MwCotO10S0xF+xSHo2yEqEtRMknqvHrjyCyadZDGot6wGGpKUNH7M3/baC/9+K2OPxMIuqo31vgJi1RgbcWjTylmu1TRhP6pi2pq8T5mRMSoQAr64U6VFSrmbJ3HJ90AmAQA57pnpEbAbRhQxZpwxzTp+RU3KUyAFqNqFNZnmbO+udynj7clyOFIcfIh+iuK4/mQv4K7Ruk5ElNfBn6giKh9irUrZjJReTvsmNgE0qKvlUJ85AFl3scl0fcyQsLtKlVbxg21RTGoD2AVxMSJcJYzDFwLfi3YV2IXN0EQAf6fsSO7jsdHAJEeLpuNvAHginbYPxeeMN1D/aQcJtDOUl3EeJ85g53eq3Mzu9Vyq2DKaz7w3w+HASdhNymHTe7Rn1eN+DdPqZWDblsQt9/p8gd0uwMCsGSjokZug4TtSf2zYqYmwAKufmolf2qR X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(5660300002)(6486002)(2906002)(86362001)(31686004)(186003)(36756003)(4326008)(31696002)(54906003)(16576012)(316002)(83380400001)(66946007)(66556008)(38100700002)(66476007)(8676002)(6916009)(508600001)(8936002)(26005)(2616005)(956004)(14143004)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?K2tJRW0vNm5lekcwVGpLcnczOW1ZN1U4cWkxL2xWckdEUVRGc29HcFZkbkVF?= =?utf-8?B?RzVjTEdKQldFTXc5RnBUdjB6KytKd0dzbzBJY2xkaU5KcWNFNnRLTlg0M1NV?= =?utf-8?B?MVg0YlZyT0lXaFhaZ0pFQ1dYRnk3aExnUk12NFkxUXRMZUliMDVrUjZqdWNL?= =?utf-8?B?b0tYYjdjM05NVkN1QTJJbkJiSjkvcU1uQUZQL2hiS3BLZ0lCMWRoSll2K0Ju?= =?utf-8?B?K1RqVlByOUs4eVNvVHJTbTlOY0FxVXp2TmJFdnU1Tkc0ZE9ZYngwa3dkTFN4?= =?utf-8?B?RjBXOVlreml4TkNRYUVkREx3a0V6Wmpodzd5bVY3QTUrTktXRWtraWJzd3ZT?= =?utf-8?B?OVMxUkVDOGZTU050TUVOS0pJL20rL0kvOXFrQTAyVGE5Z09ZMDIvdEFLak93?= =?utf-8?B?RmczV1ZqY1hNcHRwN3JzL2lRSFVSSVk3anV2NGZMQ2ZibmV1emFDMEVrNSt5?= =?utf-8?B?Y3ZWOU9KbHBrYnZnRzVCMS9TbUlTTmFwL0NzQmhiVzVBblNTVWZjcDBTa1Ns?= =?utf-8?B?KzNJZ1dXZVNxUWV4VVIzUTdQRmh4dXlpOUhiVTd2QnlIZ1hYWU1WM2ZaVW9L?= =?utf-8?B?UXgrRmlmQU8rbWorVWhXY1cwWkh6VUp0OHptWEhoNUt6djlFSXZrQ3ZseTE1?= =?utf-8?B?THo0aGxPbllqRFBVSlBmOTlCVHYrQ1ZIMU1BVllxSi9BdFV1cVF2WXIvTklO?= =?utf-8?B?TTRZdUhscitJQS9BRWNVTk5qeFhzUnlrNjNvcXVvZXVWZ1Z5MjNaWFdOSE1r?= =?utf-8?B?Z2NESmpJbVo0V29DT1lWWklqWUFsUEszcXZBcmRwb3RTVEhYbW5IM3JROGsx?= =?utf-8?B?aklFYjIxRHNRci9aQXhPR3JtbXlSL3hwNUNvYUVYWHJuR2lWdmVWWlhla09u?= =?utf-8?B?dlNvcVZjcVdnb1JzYyt0WnZES2gxczk4WFVjR2tzbDF0dDNZM3RnbWdDTjdi?= =?utf-8?B?Wlh4TFRrdy81dW1sT3VmQlRoYTVJVTZTUHJWMVJBbS9ZNzVWL092MDdrVmFM?= =?utf-8?B?Tkh5b2s3dndUWVNmdFdsblQ4OHFlT3JEKzdUblVwMEs1dXJjTE1sR3NxL1lX?= =?utf-8?B?elFuOHlNQ1FxYW45aUl6d0UyaFkwNVNHZDhtZUc3MFUrQmlLNHVDV2RDS2lZ?= =?utf-8?B?M1Zxa2ZyR05pc0ZXM3BsRVZZSWl4cDhNcHVua2hNOEgyL1ZsOTVQZXFxcWNL?= =?utf-8?B?Yis5bWZRbmFtUDRrbEZ4VFpSUTZUcko1L2VOV3ovMm1tMk9hazhvNUNzNlZl?= =?utf-8?B?azVicENRWTRqcmc3U0FkU3dQeUM3YWprd2RIclJLdGR5SGpqWlo0VDhQYm5L?= =?utf-8?B?SngwZU5ZUjBZNi9kbDBBTVFqWkx4QjBBN0E5ZzN1N2tIblhrMnBnaGc4RUZH?= =?utf-8?B?SzN1OFlYUEhSNlZCMnFqTmdtdFp5THJNMkMzMUFWdzhKS2N2Rnphei96Wm5G?= =?utf-8?B?Wmh5Z2hjSURTc2MrUFdHTzZQZHlHbXE2S2xqK3d6R1VKdTdsNGhLbE5FR2U4?= =?utf-8?B?RUdBeFFWNWsyN0Y2UWRXWFBGM1J3TUV6S0I2WncrSVpob2grTDNyeUwvS1BU?= =?utf-8?B?Nm5sMHp2b1o5RXp5a1F0UERFRXZzcG9ZRG9JNGQ3b1lQaDFYWXVSL2txS1FM?= =?utf-8?B?czZRVWdmOE5FT1VVUVlnbFhLNVFpYWNrOGVUSEozY2tEMVN0TFIydDNhK1pP?= =?utf-8?B?clRrL1ZnUGdLVFh6a3FOYno4cUgvZVBNQ0RmOWk1Yi9RVUJCS29tdEF2K2lH?= =?utf-8?B?c2F6NU11aUM2Mnhsblp2Mk1DdkVzYk1XMVY3a2VlSlNlVmlvN1NCcWhIQ2ZU?= =?utf-8?B?c283b2VFTEZwNDJTaDBJRFJXUWd6cFVreVFYSFR4UjNBTk0zL0c1K2lVbll4?= =?utf-8?B?RmpqemNMK3ZNd1hCSHpwemM4YklwY0YzUHFzQUtEL3FyRzJpWWlSWDZrQ1BH?= =?utf-8?B?ck4yTllPMnlNMFVwTDdMeS82dG9WdXpYcmZYQnd2R0hIbDN1RnhpY1orWjBY?= =?utf-8?B?U0dmUkR0eWtFK3d4VklyMk9pT2JuRU5mZ3M1NGxybDFTWnF4RnY5OElIT0oy?= =?utf-8?B?c1hRZ3NmOWtFUFRUS25KMng4aHYwMWRZbTZnVmtWek1hTS9CNzNpWFBhOUx6?= =?utf-8?B?R2MxemZnQmIyV2ZOc3IwZWxLQWlacUUvMFMwa0xkOWNBRHRKVHBjOUNUOXdh?= =?utf-8?Q?Cq8rdZksaGGSEZq0jBpnDIY=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3785d258-9018-437f-83f8-08d9b8bbd6c4 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2021 13:25:15.3013 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sqIFL8fd6X1r+EElkR4K+8mzfZ1GOQDL1JwIeihL9scjbNA8Voy49iA8J3vIuCBmrY79AKUd36w11ArWU6pLHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7024 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1638797136549100001 Content-Type: text/plain; charset="utf-8" The function returning a boolean indicator, make it return bool. Also constify its struct domain parameter, albeit requiring to also adjust mm_locked_by_me(). Furthermore the function is used by shadow code only. Since mm_locked_by_me() needs touching anyway, also switch its return type to bool. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- v2: Change return type of mm_locked_by_me(). --- a/xen/arch/x86/mm/mm-locks.h +++ b/xen/arch/x86/mm/mm-locks.h @@ -40,7 +40,7 @@ static inline void mm_lock_init(mm_lock_ l->unlock_level =3D 0; } =20 -static inline int mm_locked_by_me(mm_lock_t *l) +static inline bool mm_locked_by_me(const mm_lock_t *l) { return (l->lock.recurse_cpu =3D=3D current->processor); } --- a/xen/arch/x86/mm/paging.c +++ b/xen/arch/x86/mm/paging.c @@ -351,14 +351,14 @@ void paging_mark_dirty(struct domain *d, paging_mark_pfn_dirty(d, pfn); } =20 - +#ifdef CONFIG_SHADOW_PAGING /* Is this guest page dirty? */ -int paging_mfn_is_dirty(struct domain *d, mfn_t gmfn) +bool paging_mfn_is_dirty(const struct domain *d, mfn_t gmfn) { pfn_t pfn; mfn_t mfn, *l4, *l3, *l2; unsigned long *l1; - int rv; + bool dirty; =20 ASSERT(paging_locked_by_me(d)); ASSERT(paging_mode_log_dirty(d)); @@ -367,36 +367,37 @@ int paging_mfn_is_dirty(struct domain *d pfn =3D _pfn(get_gpfn_from_mfn(mfn_x(gmfn))); /* Invalid pages can't be dirty. */ if ( unlikely(!VALID_M2P(pfn_x(pfn))) ) - return 0; + return false; =20 mfn =3D d->arch.paging.log_dirty.top; if ( !mfn_valid(mfn) ) - return 0; + return false; =20 l4 =3D map_domain_page(mfn); mfn =3D l4[L4_LOGDIRTY_IDX(pfn)]; unmap_domain_page(l4); if ( !mfn_valid(mfn) ) - return 0; + return false; =20 l3 =3D map_domain_page(mfn); mfn =3D l3[L3_LOGDIRTY_IDX(pfn)]; unmap_domain_page(l3); if ( !mfn_valid(mfn) ) - return 0; + return false; =20 l2 =3D map_domain_page(mfn); mfn =3D l2[L2_LOGDIRTY_IDX(pfn)]; unmap_domain_page(l2); if ( !mfn_valid(mfn) ) - return 0; + return false; =20 l1 =3D map_domain_page(mfn); - rv =3D test_bit(L1_LOGDIRTY_IDX(pfn), l1); + dirty =3D test_bit(L1_LOGDIRTY_IDX(pfn), l1); unmap_domain_page(l1); - return rv; -} =20 + return dirty; +} +#endif =20 /* Read a domain's log-dirty bitmap and stats. If the operation is a CLEA= N, * clear the bitmap and stats as well. */ --- a/xen/include/asm-x86/paging.h +++ b/xen/include/asm-x86/paging.h @@ -173,7 +173,7 @@ void paging_mark_pfn_dirty(struct domain =20 /* is this guest page dirty?=20 * This is called from inside paging code, with the paging lock held. */ -int paging_mfn_is_dirty(struct domain *d, mfn_t gmfn); +bool paging_mfn_is_dirty(const struct domain *d, mfn_t gmfn); =20 /* * Log-dirty radix tree indexing: From nobody Thu May 2 06:37:28 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; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1638797164; cv=pass; d=zohomail.com; s=zohoarc; b=Yw8isXJRhgVXsGa91NtlgDOoRVoLgMP0Ms7EWPzKPGJ3zljGqrsaJ/4W28/4t9DuttPeHWpbMzsFZ3V8l0GXozOAghi7/woD2th35IN9Cm6mRdthLu4TjadPbKqDNMj0li8p4TL5XV1mWFBec6pcfeHmkmG9AJeS239L/pJd0kM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638797164; h=Content-Type:Content-Transfer-Encoding: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=6gE0gFOUnMMz5JyRTUC/L9rSE2loRh2H07DZe6ZHJT0=; b=T7h01mMY3/F890WUr/dfT1l41seKfVIEmKK97W/7xOiqbyGvNgZ9W2gRi3BV2vrYSsg5IXLaNsHbL1ET9Dmis8KE1rrHtg/LK0lU/umcOe814Zq8B4JMr/5qej55GnYCEfQ1dvMRSpwd8EnnrJF46DFIelBrfYaSKDQKd8I3p6s= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1638797164402304.0513688749842; Mon, 6 Dec 2021 05:26:04 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.238900.414045 (Exim 4.92) (envelope-from ) id 1muDzx-0000jB-Ds; Mon, 06 Dec 2021 13:25:41 +0000 Received: by outflank-mailman (output) from mailman id 238900.414045; Mon, 06 Dec 2021 13:25:41 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1muDzx-0000j2-Aa; Mon, 06 Dec 2021 13:25:41 +0000 Received: by outflank-mailman (input) for mailman id 238900; Mon, 06 Dec 2021 13:25:39 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1muDzv-0000iL-QU for xen-devel@lists.xenproject.org; Mon, 06 Dec 2021 13:25:39 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 007edb62-5698-11ec-a5e1-b9374ead2679; Mon, 06 Dec 2021 14:25:38 +0100 (CET) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2055.outbound.protection.outlook.com [104.47.14.55]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-30-NzfYniWuOsyPEm1yDV4NTw-1; Mon, 06 Dec 2021 14:25:37 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB6176.eurprd04.prod.outlook.com (2603:10a6:803:f6::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.21; Mon, 6 Dec 2021 13:25:36 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe%6]) with mapi id 15.20.4755.021; Mon, 6 Dec 2021 13:25:36 +0000 Received: from [10.156.60.236] (37.24.206.209) by FR0P281CA0070.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::20) with Microsoft SMTP Server (version=TLS1_2, cipher=) via Frontend Transport; Mon, 6 Dec 2021 13:25:36 +0000 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: 007edb62-5698-11ec-a5e1-b9374ead2679 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1638797138; 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=6gE0gFOUnMMz5JyRTUC/L9rSE2loRh2H07DZe6ZHJT0=; b=cDx9psvM1o531StI9NxrEojqhQh4KCf9pt2EX9Fnfk7SYXXbbCupuo0dV+vPhS6HvaBtOu XkufHmmnR5rpDBDnnLHQIVx7Y7Us9l60Du3wnzqQpKPiw7BB6zuVyVsa+Zc1V5RRTQBytn L8ok7+BMdlnt+45hvmXyptAlT9+XVvQ= X-MC-Unique: NzfYniWuOsyPEm1yDV4NTw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kYXd/9OAYsq7kQVzWjWRcc3CDz1grDcbXCpknTmUpl17SaGVJshsZeTavCOCmGDMNe30as1GZugtnEgc7iTJFQMRH0CudLrx/KMpTY7oreZWwIQJUaRk9Rnw2USqRUKU2GSpBrfquVsz+dHs2aAmX5JIKuL95S4keTvyDTU78l0WSqA8auEg9BT11N8+JFZKcey0UGkiIefOIbcx95koMdWVyC3HHLvasR8z4NuFUC+wa9TsgGQQmqreMAw8zdmd7YTMGGQkvoSsV8pxy0N0MKMDF+blFTMYAqMRJsmmk0lhPh0vI7VVUmzQ7fy/roLGcEokSw4oFKjAzLDCt0xXtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6gE0gFOUnMMz5JyRTUC/L9rSE2loRh2H07DZe6ZHJT0=; b=D+HCphIiP77AqoxzaIgPIvGsxTTaIbFtrkggcLQe9Gx9CWIkYyeIFSbDafgv+uSy4DoqzdG+cpX0hzrmL6P10Fuf3mCbyIQe8IYrOmxrvCeRqROHLR+RJ+CHw1ewkeXpc2qiKnu6sOhJ/cJjyoeZrs0/tX08T16JK6zpRO/w+f2Ca77Eh4kGe+IczDb/OZcaOBko3dgS+uu6Nl09jhzNTkAqzdNH0kYPeTwHrwQKFyAFpbnLzGlIqqIUJYj79yDucx/A86SaYs42FzuMZSPYjzPCG2SM7bYBc8WTUoHN+KGXLDNKsbG4EbfO4hFJc+fSYj/s7kmdsahswgwQTH6IGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Mon, 6 Dec 2021 14:25:35 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: [PATCH v2 2/2] x86/paging: replace most mfn_valid() in log-dirty handling Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , George Dunlap References: <61c1d38c-65a6-e150-ed53-b565d30c18c9@suse.com> In-Reply-To: <61c1d38c-65a6-e150-ed53-b565d30c18c9@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0070.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::20) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d1bee3bb-4837-4d16-995b-08d9b8bbe368 X-MS-TrafficTypeDiagnostic: VI1PR04MB6176:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:243; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /fuYhG/LT1tcpXo9PFYUHZUEbKl9lzXxVYUt1CwPGjFN+EbhqLQ1nSrLwwRYcEEICUzz26E9JcIx8jL+gBoT2SUfmS/hzKs/qvhEM93r23Bz+nHNj0c12UxJaeKxtH3cQo2nfc9fbzy3au2NWhhF37s/omOzvy/QTW/FEG6Ciy4V04nV/RiNTZehOCdjKF4cnhHwGblzv8Umpy+XpU5GDWhlGkG7LUss1Sdw9d9ocBUo7KEDTlqeOHvJ/wG5E8Af12cmAcZKC2IiKJEz4aMH2WRNghUe7foMFlXGr5z1Pur108N4PtsSO0Ywnyl7rR1iS+BBZ2EMOy9pnUstTgsdc/qTERc4unXIAPRwD0udy6yTnwx09DklP9qKBQhxlP6UixPqlho4LZd9ZlxObVnF8h6egqlEXRxezym9RdpKoIB8De3j5OaYRyxtr5BUWSg8oM06cxLQe9tmvPm/qi/0KnJgL2/sFwb1ZtWNiNfDASwXuwSYyOM/qIHGVYPpUoZvWhcLYxTcXhhgyEqTuAcaQvlCP1zoURsqbvxlpyPBI3g+wMLAh2jA5UXqpWYjjuERJugPTsqQbk3nmwG3ZF4tt9hRxjSRW/dudMcfNUAku4l8+6J37iaSTnWEOaAdJ130lkyQ5OmWUmgT7M6qJhWa35j0RoYYFY/r4taLBD1gi+SW4OT+dGsz9kAfG067cr8LmjlzFZJ5Lvrmrf4Kq1IMIZB67NAJ9jvb8/f2Q88Im3hFrG5Y4HQTKdpesaI2S5q+KVSfoEqCzc4T2yl421kWKQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(956004)(86362001)(6486002)(6916009)(31686004)(508600001)(66556008)(2616005)(38100700002)(66946007)(4326008)(66476007)(54906003)(31696002)(8676002)(83380400001)(186003)(316002)(16576012)(2906002)(26005)(5660300002)(36756003)(8936002)(14143004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cnBrdXQyR0xRa2RGNXJuR09sRWhDMEhNbmYydUczTm1kRFdkY21TTjFWZWZT?= =?utf-8?B?UmpGeW8vMkwxeEd2ZHR1M2hod0J3bWxXVmtEYm9YWWVVM280bVZVaXVNSUt5?= =?utf-8?B?OFZLRXh6L25XTC8xWXBmZzhkUHl6OEpQK1ZMbUk3MytKWThzSytoYXpJaHZB?= =?utf-8?B?S0R1eGswUEV3YlJPa3ZLNlRWTjVKUXh4ZFVQcXVyNFJtcDVpSTVHby9vS3pr?= =?utf-8?B?YWNXa2ZLWEh1VDczZ09qWWR6Unc4T09ONlFnOEgraGNkVEtMVVV3QzI1bFps?= =?utf-8?B?dG5pWlRWV0pxYUlCTkZvRW9yQmwvWmFtMUVOQ1NEdUxDSWtPZHBhdjVSU2tw?= =?utf-8?B?RmF0MlNGWFoyWDVTeC9FK1BZeFZWbEpHaFNTVnhsSUgxMUhnWE11RnBxQ3JF?= =?utf-8?B?NUlKV3h4WllXVDJlRVJRT1dkUVlITUowaFY4Q0pqSjVua0g4UWFQNmtlSnBh?= =?utf-8?B?SWtlSmRLdVhBem5wU0h3YjBDbXBIRmR6a0xqR2p6YXVNQm5vcHBleUoybkZC?= =?utf-8?B?VENaUWdETGhLVytETEJzSGxPZHp4K2VuZ3R2UlppaHNvYTRJTWtwdEF6NjlW?= =?utf-8?B?N0trSTlqdG5FUGsraExUcDFVd2JnSElEUzdqRWF6K3JSOVNoVzVUYXd3UGFW?= =?utf-8?B?d21XWkR3aStDZ3RnSHdqU0RPb05GcFdSREw3N09LczB6aWF1TEJuMW16eHkw?= =?utf-8?B?Z0NNbUJ3Rnc4Q2hLc0dlLzdsN2RjYlBRZzQyR2dUSW1vOWxXVllYQVNtVWxE?= =?utf-8?B?cFhsbDBEdjZQeVVjeUpQU2p1aklRY1l3Qy9Ea1hBbmVHbk1nUTg0Q1Fhdjg0?= =?utf-8?B?UTA0RFczd3ZnbUlPNHNKRFdWcWhZbGNDYWc2dDNFRWZWT1ExbWJpTUNtNU8r?= =?utf-8?B?VmllcjZPS1hEYVJKNzNod3NPZDIyVU16bks4UnNBWU00YmJ0cWVzeXN3RWZI?= =?utf-8?B?SnRkcG1PSTFOa2dKaHdLb205clVYL05RNTBpT1FiOEZ1Z3o3RERxQnZQMjZt?= =?utf-8?B?eEpld0NHTFlhUlE4RVdNKzM1czNkUzc4LzRTL013QjExZ2xaMnVqeWZZUjFz?= =?utf-8?B?N0c4b2w1c2FWMjJmRXNxZStlNzZZbXdSZ1NUSU9oZEN4djhyN21HZGlScDk2?= =?utf-8?B?YnQ0TjExY3oxNHV5Qld5eEo5R25ZMXE2d1ZxWmQ2TGU3TlBRVWxmeDJrV0Rl?= =?utf-8?B?dzVaWFBybm9aQXF2bTRxY2FIbHdQRFNpQytMemRVeVpQYkFuNm1yc1RmaFhh?= =?utf-8?B?ai83VmV2RVZKMFZFbVoyUks0NEcyOE5VWlh2QlhzMHU1cCtRQVNhVERWcmdS?= =?utf-8?B?Z25jdEp1U1ZlaUZaU0x4dkMzN2RhL1NDSExXVEFlSXBENVlUYkxJOVZmUS85?= =?utf-8?B?SUUydDJINWcrM3lZNW1JQnRHd09sWTU5alREdkhSSWtwNDhjbUk1T0VkT28r?= =?utf-8?B?MlZ6b2U5eHE3cytjWjBwMlBWYzB3VTMyZlJRSGxaYWYxVVJUTXhZL1FvZi85?= =?utf-8?B?eVhRSHR2QldvZXdLTCtOZm5OU1VVbU1uNmMxMDBYR1hRUUlNOVdEZmhMMTA2?= =?utf-8?B?SGRCZjZBRGJ2bU16dS9kMzQ1bjR4azJpbTUxUEhoeDRqMEVYWFpqVVE2aFJ0?= =?utf-8?B?WkZDdWsvWnRpaTZpVjl2TVNDa0ZxVlZwRVVkZzZLMzVTVkdUTnBBZTAxVFZX?= =?utf-8?B?R3ZSV0JTVnZKY014SEpyVXpibkZqN2t6blk0Y0p3ZW5BaStFVkIzQ0pHODdz?= =?utf-8?B?UlIrNDl3QzBvQlZ5SDR0L0k2UW93Q2VyczczRUtDR09Kc0Y4SkdscGlibGEw?= =?utf-8?B?VVh0V2dRTUFFQjhkTlM4NXlIUG1jdmMvY3pNMUM0NXYyaitBbUora2RpZWE1?= =?utf-8?B?aVg4M2pUMFR4MFY3OUlkYmRMdFE4cWNVbU9ZcHhlTUZUdlM5YnczVUExbjZW?= =?utf-8?B?VFhBM0IxUXcxSmNDTmVSelF5UWpXNDdMVTBjUjdUbW42OCtValA5QzNON2tq?= =?utf-8?B?YlhwbWV6cFRFbWZ4NVBYY000RFhDTmt0SmFRWkNaeTFmeHBYUjVlamprdUZ0?= =?utf-8?B?STlZOU96REtPb0puQmV2d1hLeHVsaU4xa3NxZ0tieTBRTGZldUcvU0I0SklN?= =?utf-8?B?YXpmdjI4cFN2dnRRVGpyRFFYZm4xdFNMK2JPbXRkTGViNE14STZneXZCMSsx?= =?utf-8?Q?uePtL/meDc0PWzMZjoH17ro=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1bee3bb-4837-4d16-995b-08d9b8bbe368 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2021 13:25:36.4473 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NRNmn+2DA8uNRsTNpn2FP24qwh5oefY++JtlnzcwRi2+hmYCZRi2KmmSOdUc1LvZr5rvRgIxiz44ySKcjWTDvg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6176 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1638797166427100001 Content-Type: text/plain; charset="utf-8" Top level table and intermediate table entries get explicitly set to INVALID_MFN when un-allocated. There's therefore no need to use the more expensive mfn_valid() when checking for that sentinel. Suggested-by: Andrew Cooper Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- v2: New. --- a/xen/arch/x86/mm/paging.c +++ b/xen/arch/x86/mm/paging.c @@ -74,7 +74,7 @@ static mfn_t paging_new_log_dirty_leaf(s { mfn_t mfn =3D paging_new_log_dirty_page(d); =20 - if ( mfn_valid(mfn) ) + if ( !mfn_eq(mfn, INVALID_MFN) ) clear_domain_page(mfn); =20 return mfn; @@ -84,7 +84,8 @@ static mfn_t paging_new_log_dirty_leaf(s static mfn_t paging_new_log_dirty_node(struct domain *d) { mfn_t mfn =3D paging_new_log_dirty_page(d); - if ( mfn_valid(mfn) ) + + if ( !mfn_eq(mfn, INVALID_MFN) ) { int i; mfn_t *node =3D map_domain_page(mfn); @@ -98,7 +99,7 @@ static mfn_t paging_new_log_dirty_node(s /* get the top of the log-dirty bitmap trie */ static mfn_t *paging_map_log_dirty_bitmap(struct domain *d) { - if ( likely(mfn_valid(d->arch.paging.log_dirty.top)) ) + if ( likely(!mfn_eq(d->arch.paging.log_dirty.top, INVALID_MFN)) ) return map_domain_page(d->arch.paging.log_dirty.top); return NULL; } @@ -116,7 +117,7 @@ static int paging_free_log_dirty_bitmap( =20 paging_lock(d); =20 - if ( !mfn_valid(d->arch.paging.log_dirty.top) ) + if ( mfn_eq(d->arch.paging.log_dirty.top, INVALID_MFN) ) { paging_unlock(d); return 0; @@ -143,20 +144,20 @@ static int paging_free_log_dirty_bitmap( =20 for ( ; i4 < LOGDIRTY_NODE_ENTRIES; i4++, i3 =3D 0 ) { - if ( !mfn_valid(l4[i4]) ) + if ( mfn_eq(l4[i4], INVALID_MFN) ) continue; =20 l3 =3D map_domain_page(l4[i4]); =20 for ( ; i3 < LOGDIRTY_NODE_ENTRIES; i3++ ) { - if ( !mfn_valid(l3[i3]) ) + if ( mfn_eq(l3[i3], INVALID_MFN) ) continue; =20 l2 =3D map_domain_page(l3[i3]); =20 for ( i2 =3D 0; i2 < LOGDIRTY_NODE_ENTRIES; i2++ ) - if ( mfn_valid(l2[i2]) ) + if ( !mfn_eq(l2[i2], INVALID_MFN) ) paging_free_log_dirty_page(d, l2[i2]); =20 unmap_domain_page(l2); @@ -288,35 +289,35 @@ void paging_mark_pfn_dirty(struct domain /* Recursive: this is called from inside the shadow code */ paging_lock_recursive(d); =20 - if ( unlikely(!mfn_valid(d->arch.paging.log_dirty.top)) )=20 + if ( unlikely(mfn_eq(d->arch.paging.log_dirty.top, INVALID_MFN)) ) { d->arch.paging.log_dirty.top =3D paging_new_log_dirty_node(d); - if ( unlikely(!mfn_valid(d->arch.paging.log_dirty.top)) ) + if ( unlikely(mfn_eq(d->arch.paging.log_dirty.top, INVALID_MFN)) ) goto out; } =20 l4 =3D paging_map_log_dirty_bitmap(d); mfn =3D l4[i4]; - if ( !mfn_valid(mfn) ) + if ( mfn_eq(mfn, INVALID_MFN) ) l4[i4] =3D mfn =3D paging_new_log_dirty_node(d); unmap_domain_page(l4); - if ( !mfn_valid(mfn) ) + if ( mfn_eq(mfn, INVALID_MFN) ) goto out; =20 l3 =3D map_domain_page(mfn); mfn =3D l3[i3]; - if ( !mfn_valid(mfn) ) + if ( mfn_eq(mfn, INVALID_MFN) ) l3[i3] =3D mfn =3D paging_new_log_dirty_node(d); unmap_domain_page(l3); - if ( !mfn_valid(mfn) ) + if ( mfn_eq(mfn, INVALID_MFN) ) goto out; =20 l2 =3D map_domain_page(mfn); mfn =3D l2[i2]; - if ( !mfn_valid(mfn) ) + if ( mfn_eq(mfn, INVALID_MFN) ) l2[i2] =3D mfn =3D paging_new_log_dirty_leaf(d); unmap_domain_page(l2); - if ( !mfn_valid(mfn) ) + if ( mfn_eq(mfn, INVALID_MFN) ) goto out; =20 l1 =3D map_domain_page(mfn); @@ -370,25 +371,25 @@ bool paging_mfn_is_dirty(const struct do return false; =20 mfn =3D d->arch.paging.log_dirty.top; - if ( !mfn_valid(mfn) ) + if ( mfn_eq(mfn, INVALID_MFN) ) return false; =20 l4 =3D map_domain_page(mfn); mfn =3D l4[L4_LOGDIRTY_IDX(pfn)]; unmap_domain_page(l4); - if ( !mfn_valid(mfn) ) + if ( mfn_eq(mfn, INVALID_MFN) ) return false; =20 l3 =3D map_domain_page(mfn); mfn =3D l3[L3_LOGDIRTY_IDX(pfn)]; unmap_domain_page(l3); - if ( !mfn_valid(mfn) ) + if ( mfn_eq(mfn, INVALID_MFN) ) return false; =20 l2 =3D map_domain_page(mfn); mfn =3D l2[L2_LOGDIRTY_IDX(pfn)]; unmap_domain_page(l2); - if ( !mfn_valid(mfn) ) + if ( mfn_eq(mfn, INVALID_MFN) ) return false; =20 l1 =3D map_domain_page(mfn); @@ -477,17 +478,18 @@ static int paging_log_dirty_op(struct do =20 for ( ; (pages < sc->pages) && (i4 < LOGDIRTY_NODE_ENTRIES); i4++, i3 = =3D 0 ) { - l3 =3D (l4 && mfn_valid(l4[i4])) ? map_domain_page(l4[i4]) : NULL; + l3 =3D ((l4 && !mfn_eq(l4[i4], INVALID_MFN)) ? + map_domain_page(l4[i4]) : NULL); for ( ; (pages < sc->pages) && (i3 < LOGDIRTY_NODE_ENTRIES); i3++ ) { - l2 =3D ((l3 && mfn_valid(l3[i3])) ? + l2 =3D ((l3 && !mfn_eq(l3[i3], INVALID_MFN)) ? map_domain_page(l3[i3]) : NULL); for ( i2 =3D 0; (pages < sc->pages) && (i2 < LOGDIRTY_NODE_ENTRIES); i2++ ) { unsigned int bytes =3D PAGE_SIZE; - l1 =3D ((l2 && mfn_valid(l2[i2])) ? + l1 =3D ((l2 && !mfn_eq(l2[i2], INVALID_MFN)) ? map_domain_page(l2[i2]) : NULL); if ( unlikely(((sc->pages - pages + 7) >> 3) < bytes) ) bytes =3D (unsigned int)((sc->pages - pages + 7) >> 3);