From nobody Sat May 18 23:55:14 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=1660290266; cv=pass; d=zohomail.com; s=zohoarc; b=JC5yQ8fpWKG7J+Lqc4G+GIQGMDSLafUHaGt22Bvbq6yLDM4qfKCQeG9kklfnLNLphxYXZv5aNly9O9wFpTw7beEChrevL3DPXGhAfiXzS9qrqa8e+QMw/vr5NyiTJst53MPCQ1dFDTDpC0mQUHZOkuRnrAtNECwUNmAbrRzE7hQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660290266; 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=paHBxFxNPQQaCR96HVsNx65Tk5J0VvsjBSY4OoT4Sio=; b=b9lkE89N4J59MBPoXCHWASPchSRDkN0n4JFJsnLXtk4oDclOMJ/PcOh/OVC5WhD6ntweRjqwl+KAQYhm3Nezi8QAYWq+CSW6lAf8YwX2/qu12ERqSAmyYU2FXnF5cuNQ4/bddPXxr4mtA8q+lbTr/3jCpURWSbWcc0SUxxYimts= 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 1660290266440324.807322686931; Fri, 12 Aug 2022 00:44:26 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.385350.620962 (Exim 4.92) (envelope-from ) id 1oMPKz-0008N3-Ce; Fri, 12 Aug 2022 07:44:09 +0000 Received: by outflank-mailman (output) from mailman id 385350.620962; Fri, 12 Aug 2022 07:44:09 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oMPKz-0008Mw-9b; Fri, 12 Aug 2022 07:44:09 +0000 Received: by outflank-mailman (input) for mailman id 385350; Fri, 12 Aug 2022 07:44:08 +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 1oMPKy-0008ML-HS for xen-devel@lists.xenproject.org; Fri, 12 Aug 2022 07:44:08 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70088.outbound.protection.outlook.com [40.107.7.88]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 8bc558a4-1a12-11ed-bd2e-47488cf2e6aa; Fri, 12 Aug 2022 09:44:07 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DU2PR04MB8646.eurprd04.prod.outlook.com (2603:10a6:10:2dd::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.25; Fri, 12 Aug 2022 07:44:06 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5525.010; Fri, 12 Aug 2022 07:44:06 +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: 8bc558a4-1a12-11ed-bd2e-47488cf2e6aa ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ve0QKPbzJcgIbaYkhss5zZTtK7/e52sm3KcxdnJjJOJQLRO1fuwBTUkrbMtXwn+zqPau4Ed3pOP4P+IDprhl7y036IiAt2PXvVdYBCPs+6oxlZUiDnq06aSWgRCBNhKpQq7h5kE4Qymit2VPDSbfcOnJyvTs30GesaDfAY/k4E/D0yaL5o30ego+tlu8QxGDA8yPmpqHKdjmDL3+S+LMYOdRNFoQezOIu9U0EHuYo0LEedSZekpEz3+lhtTM7x1xCwyI2g/uSjFb/0GjWexN7XWPjSwvbya6W4zO0gklKKNhKxpN/WU/3loNRS0IcBAj0/KQavZ3SHg0OOPckLek8Q== 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=paHBxFxNPQQaCR96HVsNx65Tk5J0VvsjBSY4OoT4Sio=; b=Tp+H6IiCm/RMBQHmEMAZ64bSPuUBOHzBzAAkADHCYjNuwxDcBGkwCBFj35PO6eMoDg1quRd9Cmuu/y+46y6SkwLwzsr5g8TQzaElXFnIZSUx75qDOzFNPE2tQ3/yDpIkH3rbEanXgwfHpUlYWdMEtcH4nSMMbzy+8waAZFmC/ii4P8QydEjkMCswufCCQNWsSTKm3wseA29EpsX/33tHli8V+SvCzVEStE5f7g5NnXbELRf+S5j5xcCkDaRm99Qtc99cD/uysuiHA4WydfyjDSN/7rRSsI7qr7Z0Me3XyGkAFZyJkSSayKNm+1UTaInb0GnVCUoTIJa/5qjzAm76Rw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=paHBxFxNPQQaCR96HVsNx65Tk5J0VvsjBSY4OoT4Sio=; b=3aYZzOyX53glqxRnjRfsi+BJiEZ73Om+n6ZY0hN2JjrI+HCBz+bKjUv6kYz3C+Q2VjOlGMTiSiZYLsa1P6SqEkZiMeAvGGCrOyw8ugoqmKsM4SRkVHsIFPObavxuBmViWG5NQ6hqP5x4iHunB6ljIqvBGpdSM5AEGmCopuQYhrqqm0SyAaxJDsM9e0iu2HomANOyRjO3ily2f5ojgGgkyE6ozfiU2qmdj13Q06x1H1UevnV/jd52slmixFFR35o8BD1jM6oWyRDp3Cc49Q3f7OsGWPVkL/LGWpnmBbCNn2dY1uJWvryv18YJwtgsBvfX2C3LaSQ4BpAyDJL0b/sEmw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <9c642811-0b63-72e6-3ef0-6d6262b5975c@suse.com> Date: Fri, 12 Aug 2022 09:44:03 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: [PATCH v3 1/4] x86/shadow: slightly consolidate sh_unshadow_for_p2m_change() (part I) Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Tim Deegan References: <1522137d-cfa9-22e5-64e8-b1795ddbce21@suse.com> In-Reply-To: <1522137d-cfa9-22e5-64e8-b1795ddbce21@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS9PR06CA0018.eurprd06.prod.outlook.com (2603:10a6:20b:462::11) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e8135757-7fe0-46a9-b4e2-08da7c366f23 X-MS-TrafficTypeDiagnostic: DU2PR04MB8646:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: G4nAliDYlbaGrrSrMJFCzmvlxKcq1+IgIqd1gvJFj9PdUMmGGN+WKJixPB6e5PwR4xlyXzvMZZPupQndmrTmftDK59+UTZWCVTLwylLj0ffBaf1cuOr7t/t8YKLrHhHUL10muT+3/qiRuWDlTcIC3XcHMFFoHU2sgQHAYb3/GexB/hTrhSUUx4mgpvJs3qHwEkxNhOhQKPSMIjhQcAWK2kJWHwq464cZ8qYMWUYiD+jqOIMmunRoENI8g43jNtwzFBRe11OWgsuVvqxD0zM1EQI2z1PfrThJWuJ5D2qKqILaxmBN+mIbVF9DZOIpYGO4tqsOFYksaGleI39IycK1Xp4H/q1xclMGTX+llaDvR4zH4B+XZenPMJnXFkgqFOYpgEtDHm1EZ63/5lFlm1db8yvZHD33Gl6mss07CH3Tcm09xjld/NaBbGiDifw1noWJWq/WCwj0ryeS4Z9djzkWHNXnfBkxTkm986BEHnDKanmMtVt9K9uULQin4HL/m3T0S0P9aGdUYAosKz5aSMFrHVAkEVROTS4I5NI9LxbrGlT0uj8fI5XUwSvpiKZoeQre9luXgbE4D6tF/rFAhMfFes06AF6Hnd0+9DC1mEFydHEPn+48uZ9dExLelkCuZqf1Td3mPo7sLN6EjhoNtOxtZxPu5/vswmUG7m/rTQYiH/+4NuIXRKE+8VW9p1XRoff17ugS+Pbl1GBLooYqoi/SXfT7SntiZR76vFiDS3/ms/l1mToSVLR9VrmWTKyrPAsEPEgys+ATkTE7WH4yHV4vAe61MkWecpUgF4iFRdbS/FfXIQC0Ron+ookc10plBCRRAuAMYeTICarddnz3r0f+MKn7NtjlxnF2VClgIBiTtJ/EhB67FEo5SSDV17EREBOq X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(376002)(39860400002)(136003)(346002)(396003)(366004)(6506007)(8936002)(26005)(6512007)(54906003)(6916009)(2616005)(5660300002)(4744005)(41300700001)(6486002)(86362001)(31686004)(6666004)(36756003)(478600001)(186003)(31696002)(316002)(2906002)(38100700002)(4326008)(66476007)(66946007)(66556008)(8676002)(70780200001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QTYycWFqNnIwQ1NEUGRFMnZ2bjMyc0dmZVhRRkNGZHdSRHh3SDFQZDdtMDk2?= =?utf-8?B?NFQwc1hhS0ozQUFZd3dVV2wzcjRmK0UwUk1sSTE1VUtvM1lUUDZHeXY1c3Q1?= =?utf-8?B?R0cvZFk0bUQ2aUdaK1ZkNkdDVS9JOXk2bjZPdzlwMVBYYXBjNnozS1ZBR1J5?= =?utf-8?B?c2x6YmY4M2pET1Rxa0h3VUVGSEZZNTVLdldETmJqdlNvK0F0UmhSODVnSlF4?= =?utf-8?B?bnpKeGdTYWhRNzlhWFdrMDliSmNXU2s2NUpGb2tBbjJndjNGa2l4Z3VMbXpj?= =?utf-8?B?em5RVkFacll0U3pkYUl2YXZLSGg2d2ZmMVdwOUl3TmtaMGl4czROQUtoMnF0?= =?utf-8?B?S1J3YlRCeUlTS2NjbGZwSThvVDhvYjZ3SnREcndQSkNCTzZlZkRGM283OUVZ?= =?utf-8?B?WGhzM2FnbXUvZy9NSkFMVHBBaTdUTkNNTEhzSDUvSHRHa2VucFBXM25zNGlE?= =?utf-8?B?ZXFkcWd4cW93c2xoNnF1MGxQVko3a2RhQm1jaWo0YzV3aCszemdBZWZMZW1y?= =?utf-8?B?YmhmZ3pDcUE3QTVoTnRlYmZWeWgyekNScmJualZxT2JLM2dxbEp6bk15WGlD?= =?utf-8?B?d3prOHpyTU1FQ3FJR3ZQK2tvdUh0Vkt1bEc0T2NKbjI4UHU0SEZrMmRjVy8x?= =?utf-8?B?TEdiS2pzYTVZcUtXaVVwOE1RRUp3LzZKdk9CRVJBTHhHNkkveW9PaWlURjRY?= =?utf-8?B?WDZKdU93OE1UQlN6clZLa2dXNWZ4czlJQmtKNnRVYWVCakdPU1VNL2FNM0k4?= =?utf-8?B?clZ2SGdnTDZYUnB0S0F4UnRyU1piVXdyNzVMZ1Z0d3ZELzNCYW81T2x6Y2NF?= =?utf-8?B?RDhtN0pZTjhNV1QraU15TTg3TGZlN2dHNS9Fa2wzTEZvdHUraWpEZ3pKOTcx?= =?utf-8?B?RXBHem5LMFdSQjc0UjhKVXhwdFVLWlN2dUFsVDMxZWQ1TFRtUWVRcFJnck9j?= =?utf-8?B?Y1ZlNTI2aUJlL2NzelJ3d3dSRWhKQ3lyWnBwYkVNNXVVbzdQc0pDdFJCQlpE?= =?utf-8?B?dEpaRStoZGdXNUxyNEVsS2pGNUtoWGpoMG04YmhoTWtzK1dZTUs2c05UOENp?= =?utf-8?B?bkN4RnhJZVNVWlBwV1pUK2VsUXU1ZEtqcVIvQUZ3YXNrTGxZOVlqQVdMV29q?= =?utf-8?B?SEtJazFSbllpNUg0V3JNZm96clR5L2FSaEw4amlaWWNxMHF6RjduQkp3a1ly?= =?utf-8?B?OHdxTjRpTVFEcEhiV3V0KzUvQlZ0M1VlK2NEMHRSZitNQlZJNmg3Qk1WMUV1?= =?utf-8?B?OE51S2pCSUpHeGZkY0d4azNDb1VZeU9MejlhZ1JYR1NMYzZWaTFjRzU0Kzhh?= =?utf-8?B?bkk5cTZIQzJCeWlFd005UEdCYVlSRHFpYW5WOCtpdFYwVUdleUhuM0RIK1dK?= =?utf-8?B?ZHVwUHZRUXJuSGpCMG5RM203dzFvN3B4N3E3VG5zU2EwM04xMEQ4cWVaN1Rw?= =?utf-8?B?VU5lZ2xnYWJkcm9oVFR0a3M4QjJDRGpyY3dsamg4b0RZTXZMWm42WVh3NHJ1?= =?utf-8?B?OU9sY1p3VjkwMUVGMFQ1ZTRNdTdqVlpPSXVjT3lFSzdsTjhKMWxkcTR3cG1i?= =?utf-8?B?YlM1a0t3WmhDc0E5Y20wbGdFNVB6VTcxZUNuY01CSEE4ZkVqZlVCbmFha1hH?= =?utf-8?B?S3VTc2hVTUZpRTM0UDg2eG4xUE8va204Z3hyN1B6Tnpadi93bVNyRWdnRzda?= =?utf-8?B?cEo2Ty82TlFkcVBwN1JsdHZraGJ1T2gyRXhnbWtVR2VWZHJzSU1SZmN2c2R6?= =?utf-8?B?MnR4SkZ6WDdldmtybVgweDVyMndhYWdqelcvMVVTVlhoajQ1VGpRakw5S3N0?= =?utf-8?B?am1hMkJMYWNVdE8wa1ROZG1kSEdmOUZNdFZGSGI5bm1RWS9iQVNETnBvcXc2?= =?utf-8?B?dG9UblRxejRmR3hJQTgvb0EvMXVBZjljN1pUeDRkSUpUb3hEeFQvU2xKYnhy?= =?utf-8?B?aytDZm0xSWsyLzREaG51cDZTdjFJbnNWbEUvWVova1JLbVF6VGtmR0pkSi8y?= =?utf-8?B?U1ZwNDdQVVlIMDVsckFacUdlNGQxY0NYemNCTldJd3RBaFB3NHgrM1R1S3Zz?= =?utf-8?B?RjhMM1FGUG9oUzYrMGphbG9nZkVXczhHYnEzbjNVRUNybHVmRXM5ZnBSbnlv?= =?utf-8?Q?/Fn+gHKJknTSIuHvdkR+fR3/H?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e8135757-7fe0-46a9-b4e2-08da7c366f23 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2022 07:44:06.2129 (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: A3+Sf9n/9tzHiX+KsXPemUOc+ROBhK7NDcizRVChfZDsxU7ls/uJ7x6UZQ+kJlE1mLTkJGLq3IOjy/W1OvHudw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8646 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1660290267570100001 Content-Type: text/plain; charset="utf-8" Replace a p2m_is_ram() check in the 2M case by an explicit _PAGE_PRESENT one, to make more obvious that the subsequent l1e_get_mfn() actually retrieves something that really is an MFN. It doesn't really matter whether it's RAM, as the subsequent comparison with the original MFN is going to lead to zapping of everything except the "same MFN again" case. Signed-off-by: Jan Beulich Acked-by: Tim Deegan --- v2: Split from previous bigger patch. --- a/xen/arch/x86/mm/shadow/hvm.c +++ b/xen/arch/x86/mm/shadow/hvm.c @@ -856,7 +856,7 @@ static void cf_check sh_unshadow_for_p2m for ( i =3D 0; i < L1_PAGETABLE_ENTRIES; i++ ) { if ( !npte || - !p2m_is_ram(p2m_flags_to_type(l1e_get_flags(npte[i]))= ) || + !(l1e_get_flags(npte[i]) & _PAGE_PRESENT) || !mfn_eq(l1e_get_mfn(npte[i]), omfn) ) { /* This GFN->MFN mapping has gone away */ From nobody Sat May 18 23:55:14 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=1660290300; cv=pass; d=zohomail.com; s=zohoarc; b=aHZZl1vWUwbF2dluGLpxSdoNwwapSWtTr/GJ5baibyQ+fqPrF4vtanonX8qsotyIl0XJXhJZj0UMgcyKNEd99dX0QFxTWdVttndkFIVgH9Zq9PnODF8du55JlsqRPR/SsipbkdIzD/pFE1LMoNQZfHwt+SAx0oV5RkqhMVr5VLY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660290300; 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=UgSRP2it2VqWEJo6oUkdTTXnRcYc9p6ImxEtjea60ng=; b=LfFa0gSqyH+Tpt0B2o03pOrGU1O8xjd7edNitnCKHFds2KP/T+/3KiuhJca9jrPc/AY8EmGGn6ZgJX4x0REifY8IviHl/4+O0oI1UCpNHLCDpxbs5aBsk1Hc0Shnwk2SUodt17vqAQGH9+1CiWqtKlYLPuNKeG/7egNwM7woKVw= 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 1660290300651982.5320067684081; Fri, 12 Aug 2022 00:45:00 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.385356.620976 (Exim 4.92) (envelope-from ) id 1oMPLQ-0000Ts-M5; Fri, 12 Aug 2022 07:44:36 +0000 Received: by outflank-mailman (output) from mailman id 385356.620976; Fri, 12 Aug 2022 07:44:36 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oMPLQ-0000Tl-J2; Fri, 12 Aug 2022 07:44:36 +0000 Received: by outflank-mailman (input) for mailman id 385356; Fri, 12 Aug 2022 07:44:35 +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 1oMPLP-0008ML-2a for xen-devel@lists.xenproject.org; Fri, 12 Aug 2022 07:44:35 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70089.outbound.protection.outlook.com [40.107.7.89]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 9ba7631d-1a12-11ed-bd2e-47488cf2e6aa; Fri, 12 Aug 2022 09:44:34 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DU2PR04MB8646.eurprd04.prod.outlook.com (2603:10a6:10:2dd::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.25; Fri, 12 Aug 2022 07:44:33 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5525.010; Fri, 12 Aug 2022 07:44:33 +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: 9ba7631d-1a12-11ed-bd2e-47488cf2e6aa ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jpmFUc3IEYUirhBmesxiieNu1VaXZAczi4+U+ymiv/5fUvGK3EahuU/Kzt3CCo4zBOL7xxOXJvgiba6gz81D/lamHTQa1dboBFSGIY88Z54tiVN5pVvZy1yRbe0ThH+g4P43B76QXCB7TypZz0Vu3L1HF0ynCasYdkXyZ6n8mROmdiWDDBV2gNa0ezztlaHJonKPQKwAdjpRUDhDd9skHwT8qYbsQ2sCJBXUUhACWOXg9NUKLGZ/vxJ11iAOelVBut1UJoEzh9nT2mtgYe1RZZdlF4YKNXzt7KRV3daDt/UqP1m1f0Xa0/Joe9rRIhzbjs2DffHeoEpbcQzJnVLtRQ== 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=UgSRP2it2VqWEJo6oUkdTTXnRcYc9p6ImxEtjea60ng=; b=K85+MdPWaCC8DIrWspuFMWqoU/Usc1/Q7PHigTDJ3CSdIcK4ZmZj9hw9w6DMqX+cHgAv06/Blx3qtJw+degMXbBRe1o4nfu6d1miAIHkdMX7AJpuYEP4hFzP4Ys1UbQbvJLwfxUMLrpxu6i+lnvyCMHAIceYMNuo7c/cA/vZLh1OWqj2T0La/DeiHSGouZDhXpISu0P2LqaqCxvKxYikVPIP2n6X4+YoW9zeA2nJuUicCr0LDEMeQpkYXkrV2PV7j1CRWqEqfUfY7HATBlXT2ypTb3KkdidVRlOZmuDnG/0OgCf/ABXzW/lxXKauLk4HeZP4Grx0OTUnNe2Z1Pb1KQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UgSRP2it2VqWEJo6oUkdTTXnRcYc9p6ImxEtjea60ng=; b=JmhYVtyfXpz5ZEkKAleJUE7aK6ZWD4XgEbrYV4/2eLZCBaYPU5qZq3vA9uwP9NrssrWROdCStxmUYvGuIOdT06ZtkEkFV3TvGxeK90xqoDFC395LEG676ylS9EH07KFuzf6C31mpNHWaBe5yiUyoSCyZqhcEcoUFWiPsZZYGyee6trjTp4PsfDhzYMtvpKCpRMqTXvgBSmYS/khx8CvIFmoBAJOSzVYqm527qd7DUDCZiXxvWebKQVqzbM+5EerhAq4dhh9CRVag3pWkjSYE0NskGACjtumf+t2Dfutm2pnaJuF2K0ewfTz4MMbQOmUu2cBs4ononcFls2I1Oq8mlQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <5e516159-906e-a8ac-7e4a-30b007245d29@suse.com> Date: Fri, 12 Aug 2022 09:44:31 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: [PATCH v3 2/4] x86/shadow: slightly consolidate sh_unshadow_for_p2m_change() (part II) Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Tim Deegan References: <1522137d-cfa9-22e5-64e8-b1795ddbce21@suse.com> In-Reply-To: <1522137d-cfa9-22e5-64e8-b1795ddbce21@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0091.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::11) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0395a9f0-a5e1-4d5d-dd61-08da7c367f44 X-MS-TrafficTypeDiagnostic: DU2PR04MB8646:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4TiC/c0KnyCZtD9I3t6kz4xmz6rL0fJBQFe52NvTzbIyxLgbpLULexUaInG5abdf1hqdUZ5+96qJsEdjSjXxrvu9VOiD3dROB3G+Xnf2zAc/TvgE2RjKkWsTt08yS6KmzNDjyHqxs8yv8JEadGsaGkK6ma20bTJ9ypurMbjMANoqqAh9CWAmNPaCECV5YNsVxB7UD6cU8QFsKA+xBWwqwoYJ5KeuKkDuHxfAymnHx/dqulvqFQRsaDS9kHxBDeQ0DRkVHbNNoszX0YXa/TE3WCGDKdUurz+/15cDPSaWbxC/Pkg6idG2epzxvoHAF4rj44d9hykthxxteitQl/MK3JTWy56GhD5qxWFyAlD/vO6ABkapUdXwmTIaEA/oyWuzPb18780RV0/Thge392kDCHGFnjvidxuB1yE44CyDo3/GJa7qDTmGYP5egOeVehhmSPvKgjHnqbcP2wt5Z4FDcB8TwLWDZAmoCxOsZaRgeSZLzlUARB8B+ZBqFiWppZ3HG9HN/GHLlwrVzxk1QY6/IJ83qvJlJdmdC4tB+0DpNPv1gqukPfwCygLdzeaStzM8oZEZy1qXjSoAoIaaEz8icoVCMFlzSL0prFtPNNjZDbuO5IzPul68HErTiPOENTsSUb628FWhVpd6yM9VMRgVsXfXKHjfxr4vw/b6ec6/uF7uUkj1FzgJ5dfBcoyH+swGc3CCUi1K4oMZKBsrZbBYyMHhJoGseUlIfVngA2cIWXwI4OjD9WIhGf3T88Fk/XK8JlpOTg2Hk4fZaIsB92Z4RvkKBgzQTapWD/q021bNaadTyQe8FRdM83tCg1GVJE7lCZERXZVTdr5ziIDZ4RBfogqRARCEBlQx5vcbiaTnHxv5nJT5U9WOtwAix7Oocz5W X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(376002)(39860400002)(136003)(346002)(396003)(366004)(6506007)(8936002)(26005)(6512007)(54906003)(6916009)(2616005)(5660300002)(41300700001)(6486002)(86362001)(31686004)(36756003)(478600001)(186003)(31696002)(83380400001)(316002)(2906002)(38100700002)(4326008)(66476007)(66946007)(66556008)(8676002)(70780200001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YUY4aVZ1cGFkVFJlQ1BRc2wwbG84Y3N0RHJ6bThGSU01ZytKVUtxYkZhRHJo?= =?utf-8?B?N3BnY1RxeVRENFhnRzhWdmhzdDhjV243N1NDSlhpd214dE5oMnNNWGFIZTZQ?= =?utf-8?B?aThnOGFuNGFHY3JEaElMSmVac1BsU3lsVFFsaGRpeHlwcTMvRy9XOVc5VDh6?= =?utf-8?B?YVJGYzhvRkUvSWtuQnc5NGthWEd5Tm5rNll3RGZ2WVRGM1d1eWR6blNyc1cx?= =?utf-8?B?TGlCUEZOR1J1b0oxMXlqSEZwWU1seGJMbndhWlBONVZpZHYzbUZDWUJKUEpn?= =?utf-8?B?ei95V0hsMjlaaloxZGJHU1pSVUJqTUtlMjkxMkJScTBsVnI4dnBkbjJ1YnZV?= =?utf-8?B?TjBRaWdmWFhJdXBsS05yY2VCR1Q3Lzc0QkFpMmpEUkpyYWF0c0VueENjVFI1?= =?utf-8?B?K1ZTZzBnMmMzNko2N3Z5ZkxkakNQazRLUFQzQnZQY2lsYVZYWHd4RzRNUC82?= =?utf-8?B?N3BFVkJxd0hlSUV6WUF3cnRHZlExbmMrKzgwaG56ZUM1bERIVERxelExS0ZD?= =?utf-8?B?N0tsOFhHSUpQUlphbTMrdzlpUGZEQ29KandGb3ZCeXBjMmc1d0x0bUlQYlZN?= =?utf-8?B?SmFRK1lXcTJtSUduL3lOTmdRVHNEZlArbjg1eHZWbDh1OWpFT1RaUDcvQ21s?= =?utf-8?B?ZXZ3QU5OK3p0UFp5UDdIejhkQ2tkZytTdFhVT2lFVkoxRHh1Nm5mNm1tNjBO?= =?utf-8?B?OWxFK0p4WVJVTXZPSkdaSEhORTk1eWJxVE5YU09Ra3BEQ0FjMmFhY1FiSEZm?= =?utf-8?B?ZFlYODlFb1JlYkJ0SDlsVWZpMGN2N29ycEhNMmdoUThMK29ZUldxdCt4VHRK?= =?utf-8?B?M0dsQkhseGN3bUJWTDdqVHoyNDAxYUdDZjlYYUZOZXFvVDFudTloOXBHQU0w?= =?utf-8?B?ZXMrMGowZ0VPd1Q5QWdjdmx1LzlZeEl3TVdFN2wxTTZiaC8vMElETWp4dzJm?= =?utf-8?B?WWZ1N3J3OGNXSjBPc1ZqUzVJeWdSa1p2Z3B5SXEzdW82bDd3K3J1WXo0RVBu?= =?utf-8?B?WWVSNkliSFIxVXZDSzR6YlE1cUZEVzIxRDNyS3lZWG1yYXd6T1dONDlPYWtu?= =?utf-8?B?SDVEUGdoSHpGRG1UWjJDOUZDTm5sd3J5bHRRcEZGUHpqZWtRYi9RaUdXK0Iy?= =?utf-8?B?bGZZL0R6Ynkrc2VJcTRQYjRGZHFSQ0RiZ1cxQmxpV1BvMzc3b2FOY0x6TFlX?= =?utf-8?B?M3ZGckcxNmpaNmtRUU14MVkzNkZudnhpMU5POUNVVjZYcXpxNTJFSk1ZeUlG?= =?utf-8?B?Rkp6SUtFTHJYT0J2anAwS1VPRG1YSTEwK0lMeER5NklXZzRTRFluVHNNM3M1?= =?utf-8?B?dTQ5ZStSTjA2LzhEa1ZwcnJxVXUyVStSa3Q5K3lCVlZxbURTR2E3YS91aWRp?= =?utf-8?B?R2NYSHZkU2xCaXhyRTZSOUtEazZXaWdqckRLYXZ3U1FpRGhZa1hTVUtXV1Jj?= =?utf-8?B?aFhxY1l5MTFZZDFMNGdaWWlYQUtSSXFoeHV4N2NNbFBhU3hKQ0RoQXZ0MzVE?= =?utf-8?B?ckk1eFFJZHFVZlFpbk1sTXBUSkdvSzJlWTBYQ2tXWE8wRENuS0lxeldKOHFw?= =?utf-8?B?TWg3eXJlOWlZME5zVS9wVmpqTVNoR3FSZmhvQ3YrSWlpdzdHdWlqbEwzeDMw?= =?utf-8?B?b1hJKzB4V0JEOTRkaUszQmtwZlRVZDkvY0tlZXBRMi83NUtSaTRuLzlWZXNX?= =?utf-8?B?T1VBaEw2R2oyWWFVQ3dxQmZ1RnFMczBBbHB6OVc3TVQ2TkFsUnh6Sm81b2Ru?= =?utf-8?B?dHhkVnl6RWFTYzZacnQydUlyRytyWm5ZRU1HV3VnQXpzeXZvalVlWXF1c3Y1?= =?utf-8?B?eUhrdk5XSDM3dUl4eTI4MWlIc0s3RTBsNHczU1RKN2tkZkUxUjJCbm11Zmsz?= =?utf-8?B?Wk80M2dQeFprOC9iZFo5SE13RW40cHhHMitlSFpYenZJQmVHWFp2dnU5aEpx?= =?utf-8?B?dUxNUVZjVldGdDAxQXYvTDljcUlJL3V3YjN5UlZKdGg3U0NiL3YrWlJJZDRB?= =?utf-8?B?cnBMb3lUQ1BOMWNIbkh6bUVNaW5oSTNRdGtCUmlUZVNNSHpSSjBFS1AvTVND?= =?utf-8?B?M0dRMjVBQzZlOG1seFgrQjdXN2FxSW1lajZ3K0kzdk1wVGNEREt4eG1mWXB3?= =?utf-8?Q?sW21zCMWtJ8gn2cG+TDWddass?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0395a9f0-a5e1-4d5d-dd61-08da7c367f44 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2022 07:44:33.2581 (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: IrFS72cqFhR8viF+5F+ePnIU/HpEjwXkbLEBPEDlXqv3dby3Z88DQtF/CH8N03+74job1ETWCBQjzAf7FAowNw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8646 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1660290301620100001 Content-Type: text/plain; charset="utf-8" Pull common checks out of the switch(). This includes extending a _PAGE_PRESENT check to L1 as well, which presumably was deemed redundant with p2m_is_valid() || p2m_is_grant(), but I think we are better off being explicit in all cases. Note that for L2 (or higher) the grant check isn't strictly necessary, as grants are only ever single pages. Leave a respective assertion. With _PAGE_PRESENT checked uniformly, the suspicious mfn_valid(omfn) checks can be dropped rather than moved/folded - if anything we'd need to compare against INVALID_MFN, but that won't come out of l1e_get_mfn(). For L1 replace the moved out condition with a PTE comparison: There's no need for any update or flushing when the two match. Signed-off-by: Jan Beulich Acked-by: Tim Deegan --- v3: Compare PTEs, not MFNs. Drop mfn_valid(). v2: Split from previous bigger patch. Add grant related assertion for L2. --- a/xen/arch/x86/mm/shadow/hvm.c +++ b/xen/arch/x86/mm/shadow/hvm.c @@ -810,19 +810,27 @@ static void cf_check sh_unshadow_for_p2m if ( unlikely(!d->arch.paging.shadow.total_pages) ) return; =20 + /* Only previously present / valid entries need processing. */ + if ( !(oflags & _PAGE_PRESENT) || + (!p2m_is_valid(p2mt) && !p2m_is_grant(p2mt)) ) + return; + switch ( level ) { default: /* * The following assertion is to make sure we don't step on 1GB ho= st - * page support of HVM guest. + * page support of HVM guest. Plus we rely on ->set_entry() to nev= er + * be called with orders above PAGE_ORDER_2M, not even to install + * non-present entries (which in principle ought to be fine even + * without respective large page support). */ - ASSERT(!((oflags & _PAGE_PRESENT) && (oflags & _PAGE_PSE))); + ASSERT(!(oflags & _PAGE_PSE)); break; =20 /* If we're removing an MFN from the p2m, remove it from the shadows t= oo */ case 1: - if ( (p2m_is_valid(p2mt) || p2m_is_grant(p2mt)) && mfn_valid(omfn)= ) + if ( l1e_get_intpte(old) !=3D l1e_get_intpte(new) ) { sh_remove_all_shadows_and_parents(d, omfn); if ( sh_remove_all_mappings(d, omfn, _gfn(gfn)) ) @@ -836,10 +844,11 @@ static void cf_check sh_unshadow_for_p2m * scheme, that's OK, but otherwise they must be unshadowed. */ case 2: - if ( !(oflags & _PAGE_PRESENT) || !(oflags & _PAGE_PSE) ) + if ( !(oflags & _PAGE_PSE) ) break; =20 - if ( p2m_is_valid(p2mt) && mfn_valid(omfn) ) + ASSERT(!p2m_is_grant(p2mt)); + { unsigned int i; mfn_t nmfn =3D l1e_get_mfn(new); From nobody Sat May 18 23:55:14 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=1660290318; cv=pass; d=zohomail.com; s=zohoarc; b=AJ4dUUIz9LWEPkC9XyB8zCAdKI9k7qZFkShO1z0X6V+MI+L5VrtLNnUwqlzE0bZwzNINRVT5TrXLb8iKWDBfchFLvEKNxGtybrbuE+6y5SMVo07ILkA8wZhkuegqZ+WFjkL9tY+mGmJA53MLTNcPCc1vAWLiIXA4KngtP3agFEQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660290318; 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=qxtZ+MVir5YJsKHAmigIFPCuHzEhnPOLkFiSiePFqik=; b=OCMcIkHOgeIl3JioC1QlNx3vrFpWUTMHGw79Lwp/6w8ncID2ehA7YpB5n/k5YI6Q0y+Ov9T3rY+d5DcaOh/9GV7b+79Hv6N7dRUvRCE+M+s7ngVz6D+S6KgiVqYuvi1az6iFAygcnbB+t7gtPykeILwtkl0haemyG7JIB/IBelY= 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 16602903186471016.0430236493913; Fri, 12 Aug 2022 00:45:18 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.385364.620986 (Exim 4.92) (envelope-from ) id 1oMPLp-000136-3e; Fri, 12 Aug 2022 07:45:01 +0000 Received: by outflank-mailman (output) from mailman id 385364.620986; Fri, 12 Aug 2022 07:45:01 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oMPLp-00012v-0r; Fri, 12 Aug 2022 07:45:01 +0000 Received: by outflank-mailman (input) for mailman id 385364; Fri, 12 Aug 2022 07:44:59 +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 1oMPLn-00012b-TE for xen-devel@lists.xenproject.org; Fri, 12 Aug 2022 07:44:59 +0000 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10052.outbound.protection.outlook.com [40.107.1.52]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id a9a37fad-1a12-11ed-924f-1f966e50362f; Fri, 12 Aug 2022 09:44:58 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DU2PR04MB8646.eurprd04.prod.outlook.com (2603:10a6:10:2dd::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.25; Fri, 12 Aug 2022 07:44:56 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5525.010; Fri, 12 Aug 2022 07:44:56 +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: a9a37fad-1a12-11ed-924f-1f966e50362f ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KmF3ICwdXbCb0LihB5VXsMyWCDhnKfZ4ER3GffL8gGLBCf3J6yMJQcSAQtRQ2SPwpX1BGC2SiBGbNGrBviMvNmqK7cg4YPVoX7pB4NgU1fBX0O/wdabeKhbJ/g4GTxDWKKzOdIZwxYb0eUPMW8bfasRP7WhYK9cXcsUJx81CLsrLT+iSfDvxqB2cAFCEmx/HrdreBIK5RtZcsr5Fn2IKgyaV68kkz3S5BudYbKpjKgfIwX5M39U4r/JUGZXGpnn4wWQuWNRaAWHdoAqZnEaLmGHlH/Z51XKpHt6R+j3n8dyUzQgaOBwgbiutUFaaR74jZH2l8ZJa6J3fEsMuwmS9Zg== 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=qxtZ+MVir5YJsKHAmigIFPCuHzEhnPOLkFiSiePFqik=; b=J6KXikWLHwtE2JTraQSkyvX8cX9I7Aeboktc9uYmPzqGPMfJ6u+MaXLKqxoyujyP8FiyRvqe8JZ1L5Cmnl3G01kDID4BZe3QsPVM6BwOgHqyNC9t2t4ogHsWu6gI8kSqxquXDbbCOhlkXJBj/dn0ZuGo/yP5HdVGcwmfLxhj/zgv8uO8P6dDAHF1WdDiEVXME6t+EucbbU/sERt83jqYYhefXB18AuHhkjQbPf6HrSawSb2XkhNKTRigljL9TsiI6pLzITRgk9gERWpJnJzgNEr8e0Ou2GeRLi31518GuGe1AwVC6axy9SLKQ3npa1uS/DmKO9BEMjjrLxLXGtT2Lw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qxtZ+MVir5YJsKHAmigIFPCuHzEhnPOLkFiSiePFqik=; b=mx6d0+mjsIetwq54AAg8rEAaJCK/wSPhd0z5TyPIv31i7g6ebDFWY3FFoh4IQ0qgq5gk2LXXhDWxG/60FjsdxdjIsS4p0RczFRQF7gA3Lp40PUDo7TYxB7iRA2HZ0yO0ZdH8y6WAQUqctFMIHWpAry71gFbbi7hzkmxKT+rewDVnKXO9FwexeHVa4UHemwO1fl6Beae4NFbDiX8H+LUwmX4ZZ0q6uLk0p5yTq4Jy5qi1naVktP2fvynC2YSMXRCLFeLvW5EpAG67wivUtS4ld6gKVh5zkmYk9jqXqd0sn44koBWHC6Ck0eEVRfZd5xYaOpZjDRICvak0nvYvSwfkvA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <761cfc4a-d9b5-4aef-d1ef-0ef408046a68@suse.com> Date: Fri, 12 Aug 2022 09:44:54 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: [PATCH v3 3/4] x86/shadow: slightly consolidate sh_unshadow_for_p2m_change() (part III) Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Tim Deegan References: <1522137d-cfa9-22e5-64e8-b1795ddbce21@suse.com> In-Reply-To: <1522137d-cfa9-22e5-64e8-b1795ddbce21@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0141.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::12) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 82a13475-de44-4847-1584-08da7c368d25 X-MS-TrafficTypeDiagnostic: DU2PR04MB8646:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: S6ZLNojawJSRMBNY9uHR05PS+FETHgrxpUFitzyETjnfLKz0sR+UJdrBWcJGkrc/quVcR1Dwc9WR91opbdltmjhT/nORr9ohRP1mx9wZph+Mre5p9qjsvroQz8URetGRX8opwVAPmV8KY8nJiiAlHjClAp6rR0HIQ4UE/QpFz5skKPLFq7XmcDOKHSpvbvrpspyic51eTeVQ4KZcHGSzGLwqYCeCTbTttKJjBoKvUXR3XNS2CRAp0AQVoruO70bbxKDvbnwChhEywcaRz00DuIPeHOVCqlKneCdiLP7HvGauMvCfjvuEPJ19dOn3rzwwzI18gSQbCxCRf7YYY+GPQmKTqINhMONzH1NvFjrSdlh9isMv7LFp8zm7AZM4aYJmateQQQPlvjxBV3+qLv+twf8BoaIyVZSyl5ywKaaxPb992X9DouCJ3ZPRLvU9k3FksfC8rIhmxgsth6n5cwm29Saqdrldmu1sF8x3Me9uEKDAamMfHkwvYkd47nwhCH5beIJK6IBbtTiMQTMplXM+z0yeY9P0XjzynMZett42MP2aBzSdvb/xPHyVDZkDCTJTn90YDi5XYcQLDgRmF7ZRw1NFZw/BJls3t8ypxJ7k3RKUieigUaiOsjUCUw9K72Bn4OKKfZPK5OohvpHr9aZZd4cVkEgfGhVQz2WEzYDjR1mnKWun5iFlV3Tn/zlK15gpF9FCw2WETP5LENtwFh3/8ecNxiYXIF3mqh0dhKQDgyp7HbLoz3Pugnq3IOdLoE2xgoo0LOlQn09YkOF+PZEGylKeMo76wzTLAr0JfL3/NGxLnQR5bxFx6dL5f5Zzagt97wqmHp2SUq0FU213yPj3qX5vB1sbnz2sJM529k7op3YSkwBIWvFQZQqxG1EsHA1E X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(376002)(39860400002)(136003)(346002)(396003)(366004)(6506007)(8936002)(26005)(6512007)(54906003)(6916009)(2616005)(5660300002)(41300700001)(6486002)(86362001)(31686004)(36756003)(478600001)(186003)(31696002)(316002)(2906002)(38100700002)(4326008)(66476007)(66946007)(66556008)(8676002)(70780200001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bWhSRFBPRUcreWFURmZZYk02Vkc5cmFQT3dpdHU0d1haUzlvSEIyd1BKL01F?= =?utf-8?B?TXp2bHp0WkRQTHA0eHVoSEhNWkUvQ2pVNzgrNmJza1huQU1qYlFRaXZTRGF4?= =?utf-8?B?TUVqYUo1V29XOEFhaDBMMzNUZUNXbFdNelB5c24vck1valhpMlN4azBMR1Zt?= =?utf-8?B?amJONW83YkllQ0I4OG4yVDVCbmRXdjlJNXRnLzdOd3ZJWEJ3ZHBtcW1JZ0Z6?= =?utf-8?B?T2F2RmgyUFZDQVM1c2ZYZkp4bm0vRFRQZCtGUW9TZ2l2QlVXRFRMcUMyWVZi?= =?utf-8?B?WHNGU1JIRWRNY0Vud3hBSDNwUGYxKzcwTXl4cjErVDNISExvMktxWmlRK0lj?= =?utf-8?B?cFdZSE50Y0hXQlg2MC8xRjZWcEJxSUVKamNzcXVoSzJhaHZrZ3o0Y2N5MFVJ?= =?utf-8?B?UFVFQU1UNHV2bWNuU3FtbmlVcC9MUU5LQzRLOGZVbXlER1U2aCt4U1R6M254?= =?utf-8?B?MWF0SXdFMUhsUWl6aXNFanFVbVZ4UStFU2pocklHRldlODRrQjZZdXpGZG81?= =?utf-8?B?QnhheVAxOU9saTJqRVZCQ0VyMldQWG0vZWhzbE45Ri9NNHdncnhkQlhvalFL?= =?utf-8?B?QkhQSE9oSU5YVkIyaHMweG5sNGJsUUttSHkrM0NaNmU4a0dnbDRqaHp0YXpV?= =?utf-8?B?V2RSOE4rZml6L3c5dXZZVlkyMkIrNlptTEtRNERxVHlFNTJEM0RuSlRZaXNl?= =?utf-8?B?alhJcTJhc2FDaWYwOUdJc0VHVFhkdlIyS0ppU2M0NGRjOGs0dXdkM1FDZVBL?= =?utf-8?B?SjNUVDRiS1dqQU94RDI4c0dYM05NajlkN3VrWVJpU2lQNFh3ZllkcE52emlm?= =?utf-8?B?eWpTYU9McExnS1FJdThhNWRSNTJLT3dRRHdtUGJRNFZXRUpObXBtL1JKYmMw?= =?utf-8?B?L3p2WmZXTWt6S05YZStMVWV4RGpqWXlWcllTa2JqTVFKNXc4V1BuVTN1T0pH?= =?utf-8?B?RVB2bmlFK1lUdFk2eVp5TW1xRzVoQzR1M29jVVdPYy9DaW55QUVvOVRiekdx?= =?utf-8?B?eFV6WkNVdU53Qyt6NFhtUExaNHU4eDFBV2hFYjE5ZDBDWVVneC81SzZRR2xi?= =?utf-8?B?RjRRV0RiYXl5WlZ4WFFiMWtDOHgxQTNndzhrcWdBR3RMU0ZBUERjOGdSU3Y4?= =?utf-8?B?ZExLUjArcUVYVzAwMXQvRnRRSUxzaFNoRmhnaGM2Z1oyakNGbTZiajdTRGlM?= =?utf-8?B?TllXRXZXNFdnckFDMWJRL2RyODF2UjRjdXk0YUtXZEJWWHorQ0UwNnp5YTZH?= =?utf-8?B?NVZsM096YlppdDJuNkpVZ1FvRXdHL0tuRHV1WWlJVVFUdGNyNWtUNXlqMkZV?= =?utf-8?B?TVZTSXFkRXJYZXVURTRtWEVFQXBPUVVzd3FFa3Z6NVlOT0lPR2gwaGNxZXYz?= =?utf-8?B?cDJuWUdONThBZTFxYXhjUUhRQ3Z6MjZkYWVkZHFrMmJ2UVFBQXlmNlRrZEFw?= =?utf-8?B?YlVOMk9rTWk0eUVzUExTa1hIREM2cVJSc280eVB2RHdweU5aaGd0d2FYbEo3?= =?utf-8?B?OUQrMmRBUjQzSFcxU2pqT0hUR3hhSFh0ZWYwUVhzb3A2dU43bDZ0TFR5WUZr?= =?utf-8?B?ODh4QjRTNTdMSmhEZnpodVhyZXQzdmRGQnZXWHdkWEMzM1Q1TEg3T0NIMEtx?= =?utf-8?B?SEFqWERibk11eUxkOHhyRWwzb21WNDBDR3pGMUJaeWFNS0xrZDMvS1N0R3Fo?= =?utf-8?B?bWlodU4ycGpXYXQ3Tm1lMllJYWJuK0VGME9MTGxxdGcvdXlkZUFHbHFEQnBQ?= =?utf-8?B?bm1xQTVub0ltcEJqdjZxQWpiWmVMajBTOElRV2Y0eHpjdE1rVWc3ZkNYUTJw?= =?utf-8?B?VE5HK3pFK0g5ekJycnZqdDhxYitHZnAzNjZVZzB0M1I0VXlBYWVaNE9vMEE0?= =?utf-8?B?NjZ4MnEwZHlCalNsRE1pZ2IwZk4xQXhGaUNsYXRva0diUUIrSHdvNWY2M0Nv?= =?utf-8?B?WW5DVWlUWm9OMkJpVnZaL2JINGJBZ0dPc0p2T1lZcEUzb2lhTURkNnBoaThG?= =?utf-8?B?ZGM4R3B1SnQzSkZsQVQ4WjJWcmlTL05hY0FNM2E0anBrTjRXWVE1WnNVbXQ5?= =?utf-8?B?MHBYcGF3VUxxSkMyQkNFYno4TVpjdFZmZ0ZPTysva0s2a1U1dUlMSDJVMHNi?= =?utf-8?Q?+wclcR5BnNI1iN4NjubXic1S3?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82a13475-de44-4847-1584-08da7c368d25 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2022 07:44:56.5379 (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: a4nJuCAQ6o0FUE28BcK2WbZaUIa68seh8r8ILxqmgeMPZm3yW6658oLWS9AL3mKdYJ4jv6PezLnt3LXzHZ2aBw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8646 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1660290319826100001 Content-Type: text/plain; charset="utf-8" In preparation for reactivating the presently dead 2M page path of the function, also deal with the case of replacing an L1 page table all in one go. Note that the prior comparing of MFNs to bypass the removal of shadows was insufficient (but kind of benign, for being dead code so far) - at the very least the R/W bit also needs considering there (to be on the safe side, compare the full [virtual] PTEs). While adjusting the first conditional in the loop for the use of the new local variable "nflags", also drop mfn_valid(): If anything we'd need to compare against INVALID_MFN, but that won't come out of l1e_get_mfn(). Signed-off-by: Jan Beulich Acked-by: Tim Deegan --- v3: Compare (virtual) PTEs, not MFNs. Correct MFN increment at the bottom of the loop. Respect PAT bit. v2: Split from previous bigger patch. --- The two mfn_add()s dealing with PAT aren't pretty, but short of us also having mfn_sub() the cast there is pretty much unavoidable (alternatives not really looking any neater). --- a/xen/arch/x86/mm/shadow/hvm.c +++ b/xen/arch/x86/mm/shadow/hvm.c @@ -844,40 +844,65 @@ static void cf_check sh_unshadow_for_p2m * scheme, that's OK, but otherwise they must be unshadowed. */ case 2: - if ( !(oflags & _PAGE_PSE) ) - break; - - ASSERT(!p2m_is_grant(p2mt)); - { unsigned int i; mfn_t nmfn =3D l1e_get_mfn(new); - l1_pgentry_t *npte =3D NULL; + unsigned int nflags =3D l1e_get_flags(new); + l1_pgentry_t *npte =3D NULL, *opte =3D NULL; + + BUILD_BUG_ON(_PAGE_PAT !=3D _PAGE_PSE); =20 + if ( !(nflags & _PAGE_PRESENT) ) + nmfn =3D INVALID_MFN; /* If we're replacing a superpage with a normal L1 page, map i= t */ - if ( (l1e_get_flags(new) & _PAGE_PRESENT) && - !(l1e_get_flags(new) & _PAGE_PSE) && - mfn_valid(nmfn) ) + else if ( !(nflags & _PAGE_PSE) ) npte =3D map_domain_page(nmfn); + else if ( !(mfn_x(nmfn) & (_PAGE_PSE_PAT >> PAGE_SHIFT)) ) + nflags &=3D ~_PAGE_PSE; + else + nmfn =3D mfn_add(nmfn, -(long)(_PAGE_PSE_PAT >> PAGE_SHIFT= )); + + /* If we're replacing a normal L1 page, map it as well. */ + if ( !(oflags & _PAGE_PSE) ) + opte =3D map_domain_page(omfn); + else if ( !(mfn_x(omfn) & (_PAGE_PSE_PAT >> PAGE_SHIFT)) ) + oflags &=3D ~_PAGE_PSE; + else + omfn =3D mfn_add(omfn, -(long)(_PAGE_PSE_PAT >> PAGE_SHIFT= )); =20 gfn &=3D ~(L1_PAGETABLE_ENTRIES - 1); =20 for ( i =3D 0; i < L1_PAGETABLE_ENTRIES; i++ ) { - if ( !npte || - !(l1e_get_flags(npte[i]) & _PAGE_PRESENT) || - !mfn_eq(l1e_get_mfn(npte[i]), omfn) ) + if ( opte ) + { + oflags =3D l1e_get_flags(opte[i]); + if ( !(oflags & _PAGE_PRESENT) ) + continue; + omfn =3D l1e_get_mfn(opte[i]); + } + + if ( npte ) + { + nflags =3D l1e_get_flags(npte[i]); + nmfn =3D nflags & _PAGE_PRESENT + ? l1e_get_mfn(npte[i]) : INVALID_MFN; + } + + if ( !mfn_eq(nmfn, omfn) || nflags !=3D oflags ) { /* This GFN->MFN mapping has gone away */ sh_remove_all_shadows_and_parents(d, omfn); if ( sh_remove_all_mappings(d, omfn, _gfn(gfn + i)) ) flush =3D true; } + omfn =3D mfn_add(omfn, 1); + nmfn =3D mfn_add(nmfn, !mfn_eq(nmfn, INVALID_MFN)); } =20 - if ( npte ) - unmap_domain_page(npte); + unmap_domain_page(opte); + unmap_domain_page(npte); } =20 break; From nobody Sat May 18 23:55:14 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=1660290357; cv=pass; d=zohomail.com; s=zohoarc; b=WBeXpyzgiyNVUnH3OBvjxbZs7Fj32tFCGQG337YrYO6jWMLD8TBkvYqHXnLo26N7D3/B2Kga8ox7Qs+011o4bS0vn8vWMZlREjy8aQ0QeoWfi+xt99M04uct/DXHF7VwWp8o2f3n70EfFrzc/fPTEGX7JbRdALW7DEQrJxmytTg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660290357; 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=wMkmvOzz2gve8PQhJ5TEoDWHfH+EBc0eAdwOWdZ75oc=; b=oJv64k69x1m1R8388UAsaKaCnyJGt0dnjl6sBZtM2hQnkTNBa5ex8XPVuYOrLlDlQPB2uwIT/1jA5mVCHci/P/ymoyVpIEPbVeXbwz+rXz5s6zN8JVsCn53Kxc2uvCzN1r9xiLoCMTjKz07zCm2Hl5CatF4h/kvsSXdU67O4lsY= 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 1660290357405247.50382950243568; Fri, 12 Aug 2022 00:45:57 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.385375.620997 (Exim 4.92) (envelope-from ) id 1oMPMR-0001gr-Dy; Fri, 12 Aug 2022 07:45:39 +0000 Received: by outflank-mailman (output) from mailman id 385375.620997; Fri, 12 Aug 2022 07:45:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oMPMR-0001gi-At; Fri, 12 Aug 2022 07:45:39 +0000 Received: by outflank-mailman (input) for mailman id 385375; Fri, 12 Aug 2022 07:45:38 +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 1oMPMP-00012b-Qy for xen-devel@lists.xenproject.org; Fri, 12 Aug 2022 07:45:38 +0000 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10081.outbound.protection.outlook.com [40.107.1.81]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id c0dd67ef-1a12-11ed-924f-1f966e50362f; Fri, 12 Aug 2022 09:45:36 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DU2PR04MB8646.eurprd04.prod.outlook.com (2603:10a6:10:2dd::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.25; Fri, 12 Aug 2022 07:45:35 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2d5d:bae0:430f:70ad%4]) with mapi id 15.20.5525.010; Fri, 12 Aug 2022 07:45:35 +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: c0dd67ef-1a12-11ed-924f-1f966e50362f ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hGvgD2r6ZNAfYasNMrXQBINNYU87OJrAmodE7FeFl41+oIiIc7EXcc8OI8sZHiXKcJNV+LJG4YohiVCLPwZT0IJIjIC/8KruTN2U+mpp40JDbNRA/Owo+lfH7g2xb4Pyma5KTxcpJS511oYO6332EmSgrUlAYAkopOQldak2ezPJ2Wszx3sRhkEQ9OYdvXweYHKfK8bZyd+A2xltZ5CJ7XA8wHsqaizNhmhch1ChZ9HP08wrAlBkAbhH00Z2+yqvtecpDm24Y4GIXLTQgeI2NLcIva2E8SgyKjPf4KZV9o2ek1q/lUd/vlmqbCHJCzeqZucfiNt/1hmQQ9uSHJq7FA== 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=wMkmvOzz2gve8PQhJ5TEoDWHfH+EBc0eAdwOWdZ75oc=; b=VpuzxLIjEz/ne8+SPoVeomw9e+1jLbOYkbSns1YwrWLwXhH+f8f7mmiWzPjBx/QhYte2+i1dqjFRjKzWXzBFz0LG/prhwkyq+menlkon0ik4jB3pRD4H/+lx1xr67tUelHFnJV2t+Ug11AgoSc8rnNupXEdgJOfVYLcFM/hps5YcRoR1x6T9olcONTTs/bttnwNv8tmCvb1SFnibTmMK6mC6AofWgiyvoqh57cF7BUUODtNRuxvGc8iYqqAx3Twcq5o98j0JlAjqUC6XdzUCxNBlYo2IU45ixXnkAcog7mrP4M0+ZCCrVSDbEvujtljSu3U0xcWKX9Z+df47FQIiKA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wMkmvOzz2gve8PQhJ5TEoDWHfH+EBc0eAdwOWdZ75oc=; b=lPi2lAe8UhE/VSDInXcSScwRdTImiWAXPwwTvQlNPnyVKsNS34DyKPHzRm1JeUfcpuyKZIGrM9GIkXy0jw65L6mIs1Y8jFbdjNOY2W1tuRspapCugZdsYvhCnpPC4P8fyP9DfUxaorwLiao9wxcVWsjFvALYI2ZzAyqyZbqDFJRXysua782gceymVPgv4uq2+bD87d1QU1tN8CCptc0rbeATwXXuWw6nyes04ImGg9RH7PHL1WDupFRitYU5+UTismpK9BGdsxL/dPj4r2JGeCB8xctPXevMuuvGJz/PLrZJhlveGE2m8ERBQD+KoqVrJF+rvMhtoNGPReG3E7tiMw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Fri, 12 Aug 2022 09:45:33 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: [PATCH v3 4/4] x86/P2M: allow 2M superpage use for shadowed guests Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Tim Deegan References: <1522137d-cfa9-22e5-64e8-b1795ddbce21@suse.com> In-Reply-To: <1522137d-cfa9-22e5-64e8-b1795ddbce21@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0105.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::20) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 318036f0-2e04-4fa0-803f-08da7c36a43d X-MS-TrafficTypeDiagnostic: DU2PR04MB8646:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mZnERGyHS3czO3rCsIL8JtEGYkIQtibNakxWUScwOTj8/mlX+/sIeZezcvpmv/xjVvYVHZ50KWVBz1w30+DclRxyd4dfksyeJTCxL4eDEwOKVSLcYkrtCA5HE7LR9Sh2UD/rqYV86wZg7D0nz7nK0WP6vuGKp3T1dcCDZpXRcX+qdA7yykStDLS3R/7WamE8nfcPPx7ilhRlepzYIPdUhxeNH4h+3jO8cHzN2V16E//HWhu+vQ8vjZnE0AIdqD2P4Rgzn2z8C9xC8gB5ySqi2awCk4onBEu7xLLfCQkUpX13+RQd2wtOy8ijnI+1WYrC2nYVqWIONpr/NMmxQtcBjmGNzeKZfeVvl8bhtZRY3JomD1G9y2ddwZSOZBb0fzPhTnqwz9MbflOCB5lQUkxQqpeAxFrKXw6LNtjW86h9XUzFO1MlesCC9gzZAct7n9H++jaaSyCHszJEsby2i/pPTbjG3g3vci4caQZD8h/eDx57iQww0hgl0RH7Lb0a6Nz/2XfxfOe8C6ZmZ+c1PiglhosDGkD63+ueRsnB5M7wRDQpfj4Ig7SSOGyhiVoheZ1OQN93jvjlhyfXl40q7FIUceKG8bi9Fnn+6aMOG6dOw2/o6FyXTW0gL1e+ajvjS5g1hHqSjKFxN9K1VNyx1b2nKmOGRn6gI6zbgQ5Ad6zqn5hCW1FbOv84+p+I2y+2oFZkPcRH5m9yEIzGKtHcIl4J6XGRmsCpTGJiSZQq87kIjb8PNxlj7BowrUEJGr0d0E7cGxW1LkMWscmz6WW0fuugWmkKTGveSTepS4ojN/9xmO8+fIczZ2aK+w5AYs/dD7PIOkiITn2Io8nRJs5Fps7Xzw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(376002)(39860400002)(136003)(346002)(396003)(366004)(6506007)(8936002)(26005)(6512007)(54906003)(6916009)(2616005)(5660300002)(41300700001)(6486002)(86362001)(31686004)(36756003)(478600001)(186003)(31696002)(83380400001)(316002)(2906002)(38100700002)(4326008)(66476007)(66946007)(66556008)(8676002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TlpMNHlvbzhvNGtMOUQ3QmN5d0tFNm9URVR5QVh0dnBma29nMkt3OVFqYWNO?= =?utf-8?B?eFN1U3ozSzZNMElFeTZ4ZHhyMGZlVmoxMnZJblVvbUpvVnlRQmhDdG9zbXhW?= =?utf-8?B?R2xuT2tEVnJ4V0ZSalNTa1RuandnL1VPSzEvZjVGUEsyL3luU0NHaENQTjd1?= =?utf-8?B?WFd6NWpLYUIzRzdGa3RYVWU1Q0lQNmVuOVdHelBWSkJjdUhxZTdSNmI2T2tC?= =?utf-8?B?TGNPMDNhSzJ5WWxyTUpLVHNXY0trUEEzd1FKSlhRVXYxdTlvVnV0WkRLcTVK?= =?utf-8?B?NStCd3dodERCeFc5YlRxVVFTSzRnM1Q1UGFBcjJwU2pLMFU3SHdOOGRpZDlu?= =?utf-8?B?RXNkRjBEaTV4R3haaWZWOTkwMnVVMWJoTGErQ1Y5L2ZNbFUvcGFxd2U3bzZx?= =?utf-8?B?MGpNTDdnLzhFcGZzZm52d0cvNytGR2g5WS9WeEZRd3NiMjBkckg1cFpGYjZH?= =?utf-8?B?S1Z5OEtWRU54QnRpSkFXcGd0NDkydzkrRXFrSkQrS3ZEeDdXWGo1NHY4VlBW?= =?utf-8?B?cm4wVlRUWjcwSXZGQk10RnZTYVJ1U2c1VisvZVo5YVl1TzRtKzM5Sjd0TTdx?= =?utf-8?B?UUxySGVWTExMOEgvMXhHc2V6N1Ewa0srcEFwTmZNemQwaEFHWUlDTGR0WmlT?= =?utf-8?B?Y3JyUkU3eUtPbXVxQjFyc1FZVWFRb0R3VWRvWHVqVXpmYk1FY3hXcmNFcUk1?= =?utf-8?B?RXhWUFRkeWtRZ3dYRVlrakNVZ05SOWZ5endBRlBQVW80NHVQb2N4QVpTaGhN?= =?utf-8?B?aXZpVzJ6YjVBbXdHRWZTRzNOVTMwMW5rRktkWE5MMml2L1ZFMURZNCsvaVBG?= =?utf-8?B?dWtqbVV1VEJXaE4xOVJ5WTdEQkZBNnBOMWxiV3A2V1hXTThLa2IxbnpBajNy?= =?utf-8?B?UXVRZGpMVkxLYlNoNHcyOW1ZbHJMM2JsYXY2SklKbkFtMS9WN0I5d29CSUtV?= =?utf-8?B?bzF0aEpaWVlpOWVHQmxXdlMyREQ5RjNKRVJJaHRYTzhKN096dTBQZkFBZDRD?= =?utf-8?B?dkxndEtCY1pLN2VaSE5QWWhpSnhlODJFc1p5VmN3WEFWRHJ6ci9qc1RDTjly?= =?utf-8?B?bHFWVTFtRVBKWG9QSjJqazZ3ZlI3b1IzczlOdHVGRlNkdVduUTdTV3B1dmVo?= =?utf-8?B?Rmd1dWJ3OUhzU0IrQUk1Q3BKUTR4SUhLYWVOTUpvT292Y1NSdWhRblJidGRM?= =?utf-8?B?U2RmdHpDTDJlTUwvTExRVy9udWh2UXZ4aEtvSnJPUkZJSEt2c21vOHl5QzJX?= =?utf-8?B?M0R2Tm5VNktUQzArMDRpOVhxU2ludHZJdmFkajNsczNOWG1HVmpXOWdoTGpa?= =?utf-8?B?Y2J6TkNiYjBIMFdzZmRRZlZtN1Y2dTZ0N2lqR2lBbWhQV25IVXE0a0xaNnFJ?= =?utf-8?B?Zzh5UGdrS0VpRWY4REhvZkVWS0h2K1QrdVR3ZSttd3llUEFXVzA4YzhvUjVL?= =?utf-8?B?eFZLK3hxaXZEWHlLSXBoY2F3V1VoSGIya2gzeUNzbGdsZFl6cXRpd1Zmelh0?= =?utf-8?B?VzViQmZRQ3Ria0MyYVlMMEEyQkZ3aldDYlZ6NFFDZm1JZFh5MTB5Zm8vemZR?= =?utf-8?B?bk9GRFFkSEU3d05WWVRFZmJraXBYSmNWelJXSDVNNGxpekJURkdHbXdDQjMy?= =?utf-8?B?blQwSGhRdkw0RStUeXFoVHh3YmdqV2ROU002V2JrQ1BRcTF1elJWaGJBWVp0?= =?utf-8?B?VDNiWTJvTjBLZnEzTDBZcWs2NWdPZHV0NTRTRE9xQ0pBK281WC8rWkdUSGs1?= =?utf-8?B?N01oQjZBVlZHY0FoekNOaGtjdkd2dXc0L0U4Tkc1MCtnc3FrUWRvdXV3dlBm?= =?utf-8?B?SGw1VGFDL25qVGpWVUc4NVkxb2I0dnF2dityaTVVeHZaOHUxOEU0ZTFoTzc4?= =?utf-8?B?dmRUMWF5U0E5YmhMREI1RU5uaTdtQVZPem8zRjc4alMwR21KYjdGM2FrUDFY?= =?utf-8?B?SGx6NFNodlpxcEluaElUT3FpV1cxeFRsUm03MitBYlhPa0U2MW1pd0cwcjI4?= =?utf-8?B?eDNYQkNhbFM5dEV1VXE2ck9BUEVrV0FCcjFLZXdWbjVDdlJlNmk4ZEZTb25o?= =?utf-8?B?QnJhTWJncTFOc1lYS092aWRoSzRkQ0d4NWRFRzVxUm14Mi95c0dEYklNcWhG?= =?utf-8?Q?OCGl1eP0w3oXw0P/aUP2CHqxv?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 318036f0-2e04-4fa0-803f-08da7c36a43d X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2022 07:45:35.3012 (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: G9s0/V8ZjsnIAj0wfQpmEN9dv2+8j0SswHwMY60jwnDZdrOe/n27WYpubOPJPa5S83ks9mD87HAmHQKcAwu5sw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8646 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1660290359985100001 Content-Type: text/plain; charset="utf-8" For guests in shadow mode the P2M table gets used only by software. The only place where it matters whether superpages in the P2M can be dealt with is sh_unshadow_for_p2m_change(): The table is never made accessible to hardware for address translation, and the only checks of _PAGE_PSE in P2M entries in shadow code are in this function (all others are against guest page table entries). That function has been capable of handling them even before commit 0ca1669871f8a ("P2M: check whether hap mode is enabled before using 2mb pages") disabled 2M use in this case for dubious reasons ("potential errors when hap is disabled"). While doing this, move "order" into more narrow scope and replace the local variable "d" by a new "hap" one. Signed-off-by: Jan Beulich Acked-by: Tim Deegan --- v2: Extend description. --- Strictly speaking "fn_mask" could also be "unsigned int"; I wasn't sure whether changing that would cause objections. While at least sh_unshadow_for_p2m_change() presently relies on this behavior, it is somewhat odd (and inefficient) for p2m_set_entry() to split even non-present mappings. --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -403,28 +403,22 @@ struct page_info *p2m_get_page_from_gfn( int p2m_set_entry(struct p2m_domain *p2m, gfn_t gfn, mfn_t mfn, unsigned int page_order, p2m_type_t p2mt, p2m_access_t p= 2ma) { - struct domain *d =3D p2m->domain; + bool hap =3D hap_enabled(p2m->domain); unsigned long todo =3D 1ul << page_order; - unsigned int order; int set_rc, rc =3D 0; =20 ASSERT(gfn_locked_by_me(p2m, gfn)); =20 while ( todo ) { - if ( hap_enabled(d) ) - { - unsigned long fn_mask =3D !mfn_eq(mfn, INVALID_MFN) ? mfn_x(mf= n) : 0; - - fn_mask |=3D gfn_x(gfn) | todo; - - order =3D (!(fn_mask & ((1ul << PAGE_ORDER_1G) - 1)) && - hap_has_1gb) ? PAGE_ORDER_1G : - (!(fn_mask & ((1ul << PAGE_ORDER_2M) - 1)) && - hap_has_2mb) ? PAGE_ORDER_2M : PAGE_ORDER_4K; - } - else - order =3D 0; + unsigned long fn_mask =3D (!mfn_eq(mfn, INVALID_MFN) ? mfn_x(mfn) = : 0) | + gfn_x(gfn) | todo; + unsigned int order =3D (!(fn_mask & ((1ul << PAGE_ORDER_1G) - 1)) = && + hap && hap_has_1gb) + ? PAGE_ORDER_1G + : (!(fn_mask & ((1ul << PAGE_ORDER_2M) - 1)) = && + (!hap || hap_has_2mb)) + ? PAGE_ORDER_2M : PAGE_ORDER_4K; =20 set_rc =3D p2m->set_entry(p2m, gfn, mfn, order, p2mt, p2ma, -1); if ( set_rc )