From nobody Sat May 11 04:42:11 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=1684222705; cv=pass; d=zohomail.com; s=zohoarc; b=etTX3EFGuh/Me58QTaDAEctbALmgJOUcgRsvQBnaFihEX+HvNenRTFZA5Cx4Cu4WH5fvz/PJVK4aOcQxLeEt/2Xi0JQIqb0I0B2Km2munA+WDCvsUTdz/PB8vsep/kmydaYD7WOPXLrDQqcK3j3zA0uc85DoU0mAp2hDxBJnJI8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684222705; 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=pGINYhnPXGwClXBqXIKbDyrF0P+Sfo8bCBfLUCWu++0=; b=PfLLldDZe7WqyLmROWKO/Wy7qrnMCqaTyc/B8ify0RkzB9o/7NxFz8vQih/IeAJBcwnJuszxbg1HGkKPZMr4lUvFppaGlAdvfuCxIedH5nbDOWd5z21H6KrgAHBvJEZeIvaXgNgOE6TQzt6qJOIAZtzwTRHz0gGOHrwGuKxfhNo= 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 1684222705354303.74435514651395; Tue, 16 May 2023 00:38:25 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.534970.832494 (Exim 4.92) (envelope-from ) id 1pypG1-0004WX-Iu; Tue, 16 May 2023 07:38:05 +0000 Received: by outflank-mailman (output) from mailman id 534970.832494; Tue, 16 May 2023 07:38:05 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypG1-0004WQ-G0; Tue, 16 May 2023 07:38:05 +0000 Received: by outflank-mailman (input) for mailman id 534970; Tue, 16 May 2023 07:38:04 +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 1pypG0-0004T5-8V for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:38:04 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0608.outbound.protection.outlook.com [2a01:111:f400:fe02::608]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 964a0f5c-f3bc-11ed-8611-37d641c3527e; Tue, 16 May 2023 09:38:02 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VI1PR04MB6909.eurprd04.prod.outlook.com (2603:10a6:803:13d::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Tue, 16 May 2023 07:38:01 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:38:00 +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: 964a0f5c-f3bc-11ed-8611-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yber5EyOc9aXzPiJPMYSKpM3Vm9k4NS/Piv9Je2csp1OxZSGVw+iwEXOzpEdZOIHrB9aonpOmQkyp8uwsCDW4oNAygkDDwKAoty+Z0UW3WUrVqeqy0y/qyQm6YNkaEV4noMwAq2otc7L3L/1iZemgLvIqyS5fZasV9u+uJaSZ9ztjZHTEWhLfS6CzBXmH9XZu7CxNET5RUzL+FwS7yafjiZbcE2oz4sDE5+tyWf9eSd0o8nDf/eJv3hzIJynVpSTs2M3Wcy4qln+QvcOQAeZ58dx2CE4txouvsRz/qiDvWdKEY2+HVv0pCvoa8ZsxfepXtp82y3gad81zVtxWi9eEw== 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=pGINYhnPXGwClXBqXIKbDyrF0P+Sfo8bCBfLUCWu++0=; b=cLq+2yA0Y/wqyUcmk6kq3WKE520qYaO02tZRLok+o3vhzx6EIhrozIzyZULeJSR6BKsXraS79X6E5fvPJ7t6YJZYiGe9GGX++eN/rofN6YcYs/46ETYlMa9+UgYlpv8YTy3ELcnhgTXKnHODfSg0OhtS7DMm5vOiaI+Ujsj4IIrlaABahZyb6OoN+opbVApdQDV3DbmNSg3YARCFFtNxxdc/tGGvVw+g04tIG+SHkBMidW5w9s22o6NToZih3oeit0aMV8p+ogZ2yUn7e3BOvusDe5xg8qXTXqWgRNmdTV+gdoC3Hb1GzqjBrwtbOGPL0BLLiFiKiZNczO/qHMfT7Q== 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=pGINYhnPXGwClXBqXIKbDyrF0P+Sfo8bCBfLUCWu++0=; b=V3d5QbNyX5RiqLW0/uh2DarxjiliGqhLANGRPs83Uf6Nn4+cEgzKj/pgnAow4Eyj0EFkMDleF0AkhWIZ2beo3IyRPLS4deyUxg+FfTlmlt+Ky4Rqy7gkscTaniyWQJZyCCgwa5HDUgzfbJSkpuYaG/Cy1x/2695A2N9Llbw+bJz2P+7RzJBBkT3rv2TKDckb/LQ54gMd9HWWlFJltYKSCLHDxhT4ZURbepDOaDqRXDuDOmcovfQVdiUNRnidor2x777hkSy0v1kM7VDf533CpysqVbQSk4XgUXy7cqW9wk9HD+bUqkDiqsvuEwSrjkfZqU79oPrmnUNygOlmyhPNyw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <55287753-1973-ef36-3802-82250b8bbad8@suse.com> Date: Tue, 16 May 2023 09:37:58 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 01/12] x86/shadow: reduce explicit log-dirty recording for HVM 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0099.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9c::9) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|VI1PR04MB6909:EE_ X-MS-Office365-Filtering-Correlation-Id: b69b35a3-6210-4c9a-fc06-08db55e079c8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2qFzKQV9W3mbOcgFtoC/hLG5mFn6oTsQpUsSClwyWzoCTW8bKki6EKUxZWq97IgwBm6Alko1rl7aRFi1fUmPeYmujZ5X5KUNCwLT9UUXDrZDwuE5cECAqDaj8UgkOKucdSun0e2meMseyX8WgghX+gy+urqqEjtzltcbdTm9fAbMsqz3HFivaco3FuTMwt2XQYiF4VZJuwitzeC0ohD7uFAAysMl96vNiMX85OvHUq8mA+y1k1PV/RnAA+8xKL/lep+iMYco3CwLWZGMscZgiDxKSvHIvWMO41AZxn234WR11JYHnrMTK8pMo/48mujkGDR42N01YB3fXeiMuis4ZCYbFuG4Ig4rzUpbeCGWWzKzm9XXyYxz4uxB7tm4iUTCQEyeB6ofxJJMudLsA/S4XVa1rp0j689wBC4xh7dRqxN2Ng/VP34/+kfYNBE12KgXnewCuRUtpE5BNtp2rOZs2ycudXIDs62ysb0zbytVeijiASCVjPgo+pmJj9EiYrXWjoc2o55UFjyVlhThK4qBIJJkf/qtk1/dP3UZ4CViMvtm5KafxFXCrIyrgRcS6X0OdlDnzvZiHRfIyhzSGj5ycuZv8x/ZumNVXSLxspJauYAnZhpXzncCK2yakwOVp14y1Dv6W3h69yN/NIEa5eR9hkxclhzG/UWu/UDBWLCzJsQ= 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:(13230028)(39860400002)(366004)(396003)(346002)(376002)(136003)(451199021)(31686004)(83380400001)(4326008)(316002)(6916009)(36756003)(41300700001)(38100700002)(6506007)(6512007)(26005)(6486002)(8936002)(66556008)(478600001)(66476007)(66946007)(2616005)(86362001)(31696002)(5660300002)(8676002)(2906002)(54906003)(186003)(14143004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eDRxSXRsamJqR04xQWtybk1wY2x4UnNtVFZkNGM2cThyWXpBUXZCMUdVVGQ5?= =?utf-8?B?MUJrM0pnNUk3NlNDVWlhaXl1QWUvTEdYUDhQRllvLzBZT1U3akMwcFQ3MFlm?= =?utf-8?B?TjExclJkZnd3c0xiemFjZERZRWNyY2JRUlpjL2FUemlnNGNXdFBCNTZSUVo3?= =?utf-8?B?V2JJa0hlMWhjTDY2b2lCK1o4MzluRXpvdVdNY1FrWCtyNlh3Z1J1Y29xU003?= =?utf-8?B?V1RJVUx6eTIwMWl6TU1pUW9NeTZtRG9YVzdkUGNjSThha05MU2l4QXc4K1F6?= =?utf-8?B?WmJXOHFNWmc4TDNKUGpWSWU3K09QUzBFd2ltTEc4ZzAwRUlTSlkzRG93azBr?= =?utf-8?B?d2h3bzNrZGlJeVNNdnBpQ2NTakJodXJhWnVDSkN4YVVwMHA5UFpIQ2gySnBz?= =?utf-8?B?QzdkV2dacHNrc3ZabmhuMWM2dnZGakFJSjA0WmpsVnJ6eFBVdE42RE9wZnRO?= =?utf-8?B?d1JsZGxWcmpPTUxJeUJnQkY0QnZNaTNqRTVMcVNXeFlWbWN3bVNabUFCL0hi?= =?utf-8?B?UENyaW11Qk96bU5BSjQ3Z2JZVy9yVWlkNjBsQzl3cTVYeUU1TGw0dEY4eUd5?= =?utf-8?B?MGQvYi8yMkVpY0Z3anoybGpDRi9RNWRHQ3pTT0xGcFNWend4ampGWkM3dGNU?= =?utf-8?B?d01VUzFMK25CK3pBRVZwd3pTWWk0WjYvOHFCT1o4ektyaDZTU0RReXRUZ2Zl?= =?utf-8?B?VXRKSjVQOWJCMmhDL00ydEJxemwxaERzUUFHVmI3MFR5V2R1YWF4ZDdFa0ll?= =?utf-8?B?K1UvSEdJdDJ2NUhheHUrQkJWdEIycjZ2Wm1WSW96anFNMHJXQ3RPV3JoS2hF?= =?utf-8?B?N0xvcS9PTjh1aHlxVFlMa1NWQXJnRkhwN3AwOTgwMklrN1BUMmo0cWNyWW9F?= =?utf-8?B?aWE4MUVrZG5BQ2V2bHBWak0vTERVcUttdy9QUFVLcG9jdTJWQzhvMmFpQzFv?= =?utf-8?B?SDAzSUxxR205N1JWRUM1SmpBalVOdmdkSmFWYmFSbHVKZU9zN1NkbFgrMkVY?= =?utf-8?B?OWdyMG1XblBCWGR2Qm5qOWdNQUs2M2RHMjVaU053VXc0V3ZFeCtKZDF6MkZk?= =?utf-8?B?eU9aMnNocWVWUS9kQXRWdlJQc3RmL2dnRzRBSUNNYmJJVkh6NHF6dUFOY0k1?= =?utf-8?B?dGZTV1EvdjQwNUlYcXI1Z050WFVCcG5vckRqTmtvVXg0QWJYYitvdlpxSldu?= =?utf-8?B?WkJ4cTlsTTZaanhHZ3FVWGxFcE4zdnQva1JiWWR2ZWJnb0FPM2o1YnN4QWda?= =?utf-8?B?d05wSDU3ZmUzaGhCeXJVS0RxejVkQUJ4Z0FMbE5VSHF2NEFqT2V6Q0ZWdGxV?= =?utf-8?B?dlpPc0ZGNUdpSVA2dHJmbjR0NEFCQzJGb1gvMndFeU51allvK2xBQXNPY3NI?= =?utf-8?B?Z2ZXY0RTbUNuRVFZMDB0R3RjNDdiSHZ1eXRQQTJ6NkVkQ2ZyTTcrb29iOEl6?= =?utf-8?B?NXVTRGUvOXVaTDdqMXp3anhkM3J2b3Y5dThDK2tmekY2NHk1Qk5SeUxKdkFv?= =?utf-8?B?eUQ1UWQ5VFBJb3R4STAvVTZMdXk1SkI0ZWRTcG11NnNHMmM3RUEwR1ovcjh5?= =?utf-8?B?Q0ZHcGo0TW9UblJiMVlOOUdWQ256aTNwdTRXc0NxNUFUVk84ODI3Nmpoc2hK?= =?utf-8?B?RHJUUmV1djY1TU9pZjQrQ3JGNTIrajBqWURZVkRnaENBVEI4YnQ1RTVrUVow?= =?utf-8?B?RHZ2MjQxZXo4MzVxNThNSHdkY0lzaVJqK1g1NGVHekRSbnorM0RNY3FMSzBz?= =?utf-8?B?SURFaEorN09yeTkyTmp4NHEvNEtldkFLV2UzbzA2a08zVi9LakxQWjk1SVZ3?= =?utf-8?B?UG02ZFpiZE9SRWJRV1hUQ0dkeS90YWlWWnJJOTFxaFJsS3lZdHJPOHVWdmFa?= =?utf-8?B?MytZak9BRmNnSE1PYWg3YU5LYXZIbU1uM1FJdzZOdCtvcURPZ2FvUlBYRDAz?= =?utf-8?B?dzUxaGdvd3ZweGhVQkF2aFI5NE1CMmlHZSs5SHBQV0xjZVdhNFBlbFJ3Zy9Q?= =?utf-8?B?MlJobDAyZ2o3N1NyM09vWldXdTAxOUhLMmFkZ2hJVm1CNm9KU3BuM1laY3lN?= =?utf-8?B?RmQzM3Q2Rkd6UHEzZ3YydlFRRGlPaU1OaFpWS3pFV1kydHZKTzMzREt5SlU4?= =?utf-8?Q?TZmvgKDkVeSanWYOTUGjRauf2?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b69b35a3-6210-4c9a-fc06-08db55e079c8 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:38:00.8764 (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: DO95Hf4QjijuPlhz9Oocic0LejgKKbDuG9avgn8jpMrk/2Lx/EffCbpwwyXduYROPg47BLJFLw7NXHn/EZJfvw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6909 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684222706090100001 Content-Type: text/plain; charset="utf-8" validate_guest_pt_write(), by calling sh_validate_guest_entry(), already guarantees the needed update of log-dirty information. Move the operation into the sole code path needing it (when SHOPT_SKIP_VERIFY is enabled), making clear that only one such call is needed. Signed-off-by: Jan Beulich --- a/xen/arch/x86/mm/shadow/hvm.c +++ b/xen/arch/x86/mm/shadow/hvm.c @@ -644,6 +644,7 @@ static void sh_emulate_unmap_dest(struct { /* Writes with this alignment constraint can't possibly cross page= s. */ ASSERT(!mfn_valid(sh_ctxt->mfn[1])); + paging_mark_dirty(v->domain, sh_ctxt->mfn[0]); } else #endif /* SHADOW_OPTIMIZATIONS & SHOPT_SKIP_VERIFY */ @@ -661,12 +662,10 @@ static void sh_emulate_unmap_dest(struct validate_guest_pt_write(v, sh_ctxt->mfn[1], addr + b1, b2); } =20 - paging_mark_dirty(v->domain, sh_ctxt->mfn[0]); put_page(mfn_to_page(sh_ctxt->mfn[0])); =20 if ( unlikely(mfn_valid(sh_ctxt->mfn[1])) ) { - paging_mark_dirty(v->domain, sh_ctxt->mfn[1]); put_page(mfn_to_page(sh_ctxt->mfn[1])); vunmap((void *)((unsigned long)addr & PAGE_MASK)); } From nobody Sat May 11 04:42:11 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=1684222742; cv=pass; d=zohomail.com; s=zohoarc; b=QpuLkvWbAw1EgR5TURJi+PbK6Vti3VYDspT7i5xZBe9qaD8m0xKG+lXxIQsU+R9EDC/q+roEELL6P8l4CugTJUvB9aorjJkkqg0l1r8eBJoZt9dK4RhwsMs4S2do9L+RnwutQvz9zF3p2Ay2plLxHKMASbZNNPC8nXwxsf/WAlI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684222742; 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=G7CRVIADmzDGbiqvXB+w2ZRXIp+FhtVeLdWts3mages=; b=UTsLkqC825N7zwFzNhy4/kxmmlsErozA2xfZtFKFfTsJ0dDBjBphIKf/qbRR/Efvv0TlMtCG8JPRwHluvIhKd0JpVK/rLT+auEQCXpBzHEG5uCfgdWCDumgCG3agNjIEr9WJuk7GCrgdaIQu3KBRGngKjhpRogmQOlUF/EJ1DhE= 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 1684222742438352.6753619044024; Tue, 16 May 2023 00:39:02 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.534973.832504 (Exim 4.92) (envelope-from ) id 1pypGR-00051T-T0; Tue, 16 May 2023 07:38:31 +0000 Received: by outflank-mailman (output) from mailman id 534973.832504; Tue, 16 May 2023 07:38:31 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypGR-00051K-Ok; Tue, 16 May 2023 07:38:31 +0000 Received: by outflank-mailman (input) for mailman id 534973; Tue, 16 May 2023 07:38:31 +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 1pypGQ-0004Mf-V8 for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:38:30 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20628.outbound.protection.outlook.com [2a01:111:f400:7d00::628]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a6fecc2d-f3bc-11ed-b229-6b7b168915f2; Tue, 16 May 2023 09:38:30 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8988.eurprd04.prod.outlook.com (2603:10a6:20b:40b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Tue, 16 May 2023 07:38:27 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:38:27 +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: a6fecc2d-f3bc-11ed-b229-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZTwHUgngN4ZcZo0XYIWYTN62Wj0nIz1viPSyG6trB8FpDStCSY9v4LC0bZoJ4uTodtHG6P4YeYqxb1Z1CyRg/DeYjSy/XLDWyWk0IoPt8xXRdKJpbU+oxtkZBnllTntE8WpU+iDA01dOpPsw3Xo3fTj35xWMW54n+tCMNVV7aehJzqu4n2IZTkdzeVQL/sOFKIL71t9hM7/d9xqARCuunoNkqm5vnaCYhuWlldC7X9Rd7/F4I+OExy0/LGiOx07HslxYhtLIRYltsOg7C0DAxUn9tLwaScEMKky0hc/B48RNrIg8Vwmb1aP993r3P9bNvt+ng4FEXi22OsizDFmx1w== 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=G7CRVIADmzDGbiqvXB+w2ZRXIp+FhtVeLdWts3mages=; b=NrBMhyuDAMyvvuDTUhT7EX4pEdOsozYkGQvJ4nd3G5AsXK5mP8XfrimtAzcAh0DVRHnNygywG2B36hstHxcgDazgAkMHzEDOLLa64J2any4+y2O+EA1ayioMTLcZRk+zadKI5YbbLi5xaIYgOolO6GyhyBNVUqJYKlotL/PXYjbPzu2CAgp1jE+WJY1bNwPyTt4ppV988eIQW6GQxfT/g3EMtr2edUbq2BUwimlpemG2aDUOXI5f7yZmqNMVfvWO4TbdDmcleXqLmAG8ov13lQb023m97Hzg6jXM7hOsKZDe3jtN6LP3M9NoYqpa+wKwfxSq9OisAQRK+w6sNZGi2w== 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=G7CRVIADmzDGbiqvXB+w2ZRXIp+FhtVeLdWts3mages=; b=M72L3++wI8Gw/PkXoDK2IKmMr7TNc14fBtiRqWRH60LgYOhYIKsTbva5q3BwFt7abBa2cj9XN/mpf98ubIrTdnplM5pMnXMqzShi5Gb+4JBelJnu2CzjPLFLOdY5Ogx7a+cqQO/q1aYn8UrcBONeQl0ymK1n1XzFm0glXr+uD+OBz/clJdu+SVefWjJ1vbtEttA/Orpmr5IJmrN8sS+Rn6gR/9cb3VBgaQkObnOvgW4m3QG2UEJ2ktrJd1rkh5GYtxPrld8zZbRjOcfylxkEM31KokrpU1ra75AWaY2rFJOoGxeklTo4daE3Y2IgxOECHIfZz2f9Jiv7mRzSPcvPCA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Tue, 16 May 2023 09:38:25 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 02/12] x86/shadow: call sh_update_cr3() directly from sh_page_fault() 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0009.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::8) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8988:EE_ X-MS-Office365-Filtering-Correlation-Id: 18bddaa9-4bbd-4262-4eda-08db55e08994 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FacHqmzhmsmkUsqlMxAoPY3i8OyrarTHs8o06Y80p9Pz7uy/YVIWZAfYXdYHmBa+ECLBsurFvrAu+QSP7NpYwB7kz8gTjJ7Jvay9HxhLb/uYTLYJm/Q19rOkvnoVB+wsM+n6V1XsYY82lc9FVe3mhdPZ7eeTykf/pOrLEdD5TsC6QpP3hrXaxWmUFEdWkqikkcKV5E1QE8TllNIyvA+zj70qZ+Ghgt6yKoKqpkc54Dysok/OlsHe7ybh0qvAMER00FAo+h1s3cnHFkxN/HFQE+K1L9jChHNirpUbQ8OlFWtiGXGjwvbdslT5s4QKM0UbHri2X27hqw1cBrlhMxxwueQ03IiPxtmydnqE+yczn9MdgD6OznmnXSWLRE/q9SfXUl22oOD3IvB4t6n8z6mJRR4fl7SRdCs7OWPK/0yxO5HKOlyxItg466kGOv5qF1xgXJAZrzhmRMouNbwfX0qXx2U7vfCNsWuRqcjVBY+0+GYsbq1+GxXSTNF0rFPgtG7w0l1ufiQ97tmQkfWcfglXQL8PeUB7FI9ht7woK5FYbT3ykCgkTVSlYaq1fLk/47Zh+r3fAvFISE2pN/ymFwMCQEd+auALPUi9rzPrBkdqfoXev6TNwzzmC5HdA5D73+wvFWZyRY6mUYLxzpom/Gh/7w== 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:(13230028)(376002)(346002)(366004)(136003)(39860400002)(396003)(451199021)(2906002)(316002)(6916009)(31686004)(66946007)(4326008)(8676002)(5660300002)(8936002)(66556008)(66476007)(41300700001)(86362001)(2616005)(478600001)(54906003)(6486002)(36756003)(6506007)(186003)(31696002)(83380400001)(6512007)(26005)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bzFIOFEyRlhuTlZlbWRDQ1RFVGZ6SzAyZ25OYVI1c0dIUmZhVWlJbjZiVDBI?= =?utf-8?B?UE9adHdjclFtVHpIRW5nNG5xQ3NxY0hrVEVIeTh4S2o1S2lhSjQrZ3I2UEQr?= =?utf-8?B?QkRLemExcHJiblZuWjQrY1lvcEh0aGZUd0tsaFh0TTRDc3NWTXVWNjljaDVQ?= =?utf-8?B?dFBnWHBKeHNQUTgrbC9JM1RTM0czcUxlaEFSaHp4cXhPUXJremM0UWtRb3Q1?= =?utf-8?B?aTVxOG1sMzB2dDJ2TlNyRGhYbjJkaDh1b0dNdUU0cWlEdm9FTTljUUxmc1I5?= =?utf-8?B?anJhT2ZsaU1jeVBLTWZ4cCt0M3ZmeStqWi94bFQrM3pNVitxem5mZXdEVWFr?= =?utf-8?B?alhrTGlzbVdkRENkUUxEbUVuYTdTUjMzN1lxYWFFU3hTOFc3Vm85YU9CeWRy?= =?utf-8?B?U3ZxZVc1ZEdHTFdTNW5hV2hrU1ladkh0cENSQlZ5VU9JMnViVGIyQUxXanRm?= =?utf-8?B?MzlFRjRtMHBld0V0MnBSZ3RicGREdmJXN3NEVk9rajVSR1ZPU3ZSQ2pHVFA0?= =?utf-8?B?cHpRMi9UU0xPWE9LNlhGL3RndTJFWVNHNUpXNWNaZGxOLzQ4V2RaOGFaNTc1?= =?utf-8?B?QmxIWE4zM09XZ2ZONENsUTFOaGMrS3cyMkdUVFhiTUwzTGlacWJOckdrVUF5?= =?utf-8?B?YnNZMXZ2VVJNTGdNSEVvcDdKYXdsV1h6cEVzbmZjWVQ2S1dVU1FLcHZmdERR?= =?utf-8?B?YTE5TEtESDhDdFJxM0VDVlI3SEVvYUlHOWVvTjVNeVN4eG9RSys4bnFnQU92?= =?utf-8?B?V1ZsMTFERU1HdENMaXZKODJSK29Scnp6YmY0akZ6bHk2ZHBGY0NvbEpjZldj?= =?utf-8?B?MmFxRERwT1hUVWduYmhmR21MeVM1bGdnSTRhKzgwOGVRMEU1R1RoamlyV0R0?= =?utf-8?B?VXdzQ2dMMWtERitmaVBzdVZJMWcyeUNtY29Jdnd6QmIvSk5jV3RURlBZak9Q?= =?utf-8?B?eU5TZXc5Q2I2S0Y4WmE3dDVtUWNZWGdxZzRHckRzR2pYemhvcTFlM2tYbDBU?= =?utf-8?B?d2VxenhaNnZoYXhKWFF4Vjg4WTExUFR5M3JOM0xTREdSK0tWM3JiTlFvNkh1?= =?utf-8?B?Zk1BZlVXY3ZBdU82ekxvRmtLYTltUjhvT0Z5RERYbHJZRlFUa0ZFK2dKUVNp?= =?utf-8?B?ZjhRWC9OVmVMQkt6Z2U5M0RqM1g2ODlkVEZmOHhNNThzUDZMaG0ycTI3KzUr?= =?utf-8?B?dFZ6TVY5dThocjQ0eG1ybk5DYjMvNUY2S01hWkdBVkVOWDdtQVllSmZZT0JI?= =?utf-8?B?N3pkYXZwMldKQ0JtWEJHeFczc1A2U3BoaU01OFo1VmxnYms4dXJZMzdWMUJP?= =?utf-8?B?dk1CdUNpb3FhUzU0Y2o2d21wNzNGUVFjdUIwT1FtbkJOakU0SzEyQS9jMmxo?= =?utf-8?B?SlBicUJQZTZlTkpjK3hSNnFjUHRUTURmZ1F1QWFZOFlxTmQweFRSM0Y0T3RF?= =?utf-8?B?MlhKcGMwQ1MzM3BxaVlOWkgzWUpLRldPNmVBWHRCeXpyb1Vwa2xEUXNTY2pP?= =?utf-8?B?NlRQU09ISWZuTXhTZCt3SkU3ak9BUk43cUlBK09nZUNWRmVXVjB4TlBLb0tH?= =?utf-8?B?bWNQaTNKR0NDR1Baa1Rjd1NXekVkQ2RKM1orKzlESEZKRDVjSWdjaEQ1dnBr?= =?utf-8?B?WisvSCtHV29jTTR5MjBhR3NlRXJFT0FGaFQvazk2bVBFQWJibUhLYXkySGo0?= =?utf-8?B?dmZEcy9sNUlINkZSakdjRXZKVFJYV1NsNCs1KytFNE5FMXdRclBvMHdVZUZC?= =?utf-8?B?dFJFaTlqMHVqdzNpZXRKcGR6YUtkbkxGUkpDNG9WajZGdEFQUjFnQU1BN1ZJ?= =?utf-8?B?bGxzRitDendBVkJRUHIwcnVNNjdmbFpScnVaSVorcEQ5YmExR3BsdjljNEZz?= =?utf-8?B?cTdXcW9OSVNwdTNnYXRsNWJFZmtqTzc5WUF5OGJvWjBTUVBpSTZwRVNKdzBS?= =?utf-8?B?ejYxeTZzaGJyRWFUUk4xWS92UGE5NzV5SmtnNlVzMnJnNHZ4eTJsOVpra25s?= =?utf-8?B?NEZOQldFa3ZMNjh0aHIzYTRWdzF1aS9namhwWktEMmt3amFWWFZNSURxUjJC?= =?utf-8?B?eG9MZkwxNnB3U3U5TWxVZG1tR1BTdXROSjZoRUx1QUVZQkhYUE5WYWJQYmlK?= =?utf-8?Q?qpSK+uHTCEeZRTo6C9fT7Udkc?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18bddaa9-4bbd-4262-4eda-08db55e08994 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:38:27.3444 (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: E4J3lcM4X9wrhFzzmjcGN7R6BKIC5LSdXNtvQvX1z4Qe3bpZoGl+VxuSEMDMka4SDh0iu2vrtSJIPx9kW6Ov2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8988 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684222743175100001 Content-Type: text/plain; charset="utf-8" There's no need for an indirect call here, as the mode is invariant throughout the entire paging-locked region. All it takes to avoid it is to have a forward declaration of sh_update_cr3() in place. Signed-off-by: Jan Beulich --- I find this and the respective Win7 related comment suspicious: If we really need to "fix up" L3 entries "on demand", wouldn't we better retry the shadow_get_and_create_l1e() rather than exit? The spurious page fault that the guest observes can, after all, not be known to be non- fatal inside the guest. That's purely an OS policy. Furthermore the sh_update_cr3() will also invalidate L3 entries which were loaded successfully before, but invalidated by the guest afterwards. I strongly suspect that the described hardware behavior is _only_ to load previously not-present entries from the PDPT, but not purge ones already marked present. IOW I think sh_update_cr3() would need calling in an "incremental" mode here. (The alternative of doing this in shadow_get_and_create_l3e() instead would likely be more cumbersome.) Beyond the "on demand" L3 entry creation I also can't see what guest actions could lead to the ASSERT() being inapplicable in the PAE case. The 3-level code in shadow_get_and_create_l2e() doesn't consult guest PDPTEs, and all other logic is similar to that for other modes. (See 89329d832aed ["x86 shadow: Update cr3 in PAE mode when guest walk succeed but shadow walk fails"].) --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -79,6 +79,8 @@ const char *const fetch_type_names[] =3D { # define for_each_shadow_table(v, i) for ( (i) =3D 0; (i) < 1; ++(i) ) #endif =20 +static void cf_check sh_update_cr3(struct vcpu *v, int do_locking, bool no= flush); + /* Helper to perform a local TLB flush. */ static void sh_flush_local(const struct domain *d) { @@ -2475,7 +2477,7 @@ static int cf_check sh_page_fault( * In any case, in the PAE case, the ASSERT is not true; it can * happen because of actions the guest is taking. */ #if GUEST_PAGING_LEVELS =3D=3D 3 - v->arch.paging.mode->update_cr3(v, 0, false); + sh_update_cr3(v, 0, false); #else ASSERT(d->is_shutting_down); #endif From nobody Sat May 11 04:42:11 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=1684222762; cv=pass; d=zohomail.com; s=zohoarc; b=XqWUzqoCiDgUdTSrPeo81ekgYreUdSLHPTJyMC5Qz7vC7pdj/x5PQSIzsM5jbpY94ViNNEPMn5fbLC5ltvYTcQlprF/WMsg2kv+Wv/fc1ZQ5XFcRPfIR3VgGv4ym8uYHKrjJPa4S5hUCrE3wU4YWrdOAKSOnCL+ntpCGtauf1i4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684222762; 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=Je87SJkHd+CatcG6yu9Imtn4DlVtYLFfArWG7ib5DLQ=; b=PNbGxYnEU5X0jAm4Ob9hxy4slOzq0aKgxTDI7v0rKa62Ws/lugGZCR46oTjXJ+Qr+85s+rcgnGWlbhMFgSL3pX9o8t7uttxPXT24vPdGculw1/OklQhKnxZByLLDMPPLgVMNY8Z0o8iLuUkoCROX6Wmj8rxz0cUymP4Z9LPeXgg= 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 168422276231473.89660725903207; Tue, 16 May 2023 00:39:22 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.534977.832514 (Exim 4.92) (envelope-from ) id 1pypGm-0005XQ-6N; Tue, 16 May 2023 07:38:52 +0000 Received: by outflank-mailman (output) from mailman id 534977.832514; Tue, 16 May 2023 07:38:52 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypGm-0005XJ-1O; Tue, 16 May 2023 07:38:52 +0000 Received: by outflank-mailman (input) for mailman id 534977; Tue, 16 May 2023 07:38:50 +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 1pypGk-0004Mf-KA for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:38:50 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0621.outbound.protection.outlook.com [2a01:111:f400:fe1f::621]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id b2c5e3d1-f3bc-11ed-b229-6b7b168915f2; Tue, 16 May 2023 09:38:50 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8988.eurprd04.prod.outlook.com (2603:10a6:20b:40b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Tue, 16 May 2023 07:38:48 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:38:48 +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: b2c5e3d1-f3bc-11ed-b229-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WsbByeVcUA2TyjPDo+eQZHTPCcDRQAcRIzA26v6kAm4IaqYEaFv3oxCdVG9DBhrlXNjhJhgfGG/QwHZfA+sd4J3uslvJ+nbH8ebxDTKSAxH9Lw3PQUoUNrRfigarVlIgZ0t04CqtrXh5Nut2/H6z0FVZC00Zv4ztvGTwXvChZQwyZzp9dHq3CQI6cMQ9899Wo8SEkTADxPeiFDruccfAEtOpeEbYkJ15mUFFm6PXtTlDnVxueqY+XgZeVXbIGExU4B+bql8dUe8hS1tmMqpDinMeviRB6/C1l8dtNVkW0oJcOQsxWsRbZgHJ3+C0DIZMMENa4qBh2B7+ecznzbopSg== 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=Je87SJkHd+CatcG6yu9Imtn4DlVtYLFfArWG7ib5DLQ=; b=g22gCHQBtUmWzEcRCNdnuLtFvbJF2keC/W5fLxStVxFoKzaNyoDkiqZazmS78d5HZnNa/odYGrgP2L6bry+5h/U51/ag15++MCBq87D0Zk5BYGgVJgPUDRSHXHZXeCEIW3uxDmMAIqCMZeNRVkqyyRoenS77PQ8pDR3HKcGxeqMkH7qPdQZ3eQQSzCYIum5nhOLxr4ZbxfKz/HDrmsBgQLyNaDXjeP8JsSPpvhDhlA/zF33ur25nZMzcbajCAYf87EaHEMm1ruvoSbwwRIkSZGHbe1PRJypIBbeIQQDOEDdDJLt9o6x/d5KY2V3TS+IKWaRBo6qmXThfwXdn5BGmBA== 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=Je87SJkHd+CatcG6yu9Imtn4DlVtYLFfArWG7ib5DLQ=; b=qQMD8gXRPi+CQFgc2yZrSKP+ersXlQjkow/OOxqCXtOALVXlxpsTcY53uBN/ylhy/rnQ9dybsAzerWv2/Ds2s8JYzlrGsSxrtrJkfg8OfcUc/S0WVG0GR13jn68dyXVWolt+7rEM3VUkC4FTBe6wxafLrIgluaz+xv1eKlsThSSaKeRE/riK/0x1vSP0Jf4v6zw7O0uuDRDiSla00joNegXsbslOnyHWNLsX4/Vy/X1H8J2W5GFIfN5zc1ofof9QP/XE1cv8THaP7/tQIxoxegbk0GYv353OLaks3GL4GheHRnRr25BKeCOSzoruXBJLZlhAiFSV0vVuDwHH1UvKQw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Tue, 16 May 2023 09:38:47 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 03/12] x86/shadow: don't generate bogus "domain dying" trace entry from sh_page_fault() 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0075.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1e::10) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8988:EE_ X-MS-Office365-Filtering-Correlation-Id: db10e3db-deb2-4e41-8405-08db55e0964a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EiqFP7aoEJ9zFyqiC1Vn9hp85I5mBR2FImPg6n//IMGyxkHsbou1qp7YI3rQsav3oMHyeplVXTXp65wSp2t8nXGcM8OT6AK+MQV6W84jhfNXQPCh8WL919uUh10fH8L7dyBZtyZPaRh9/MAEsd7Nb38vICs7Ju2V6NYVxZ+md7o/Gj+VIt/K6UkmbVNA0n8zpHG02PdQ+jchUXOlDZs7RFY26EjsbUHaKV/EAhBeZ8WiKvkn9dh3+HgbllzKcQS5/S9P2dR8ZpOtONPGOx8GxKOBr3y0bFSd6Mog45FfhFZ+FxgQuHHhNHIzcBIowR2QiTdol6Tv97eOGtpWF8KNyDOadR6U8EqXWl1lEZnjspGgkQLO5VH7dGUFj1rKx06pCjtAmvdJHVnc+5QskopYXrZWWVq3j5zbJFXnmj/UIbwCPkYioMyrkTsxQp5yJl+Dp0ip+s8bJh31AY7gpQ1kIN9Cr5AEYzaFe63R6dV/LfMkbJu/JS81ES9/v0W9hDCpFcRcVB9C4pomBVr7VoysDRlXG3dbGKoxljnMv7GwLb5C4A+NAtBP57I88IdBFfJrflvuLY4OqUJm04pgmRC7quAREhjtn/mI767CdxrZ9Nzo29Q6p38ITsu5shW72Xa+7NSM3c1GrY8c00XteGP0eQ== 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:(13230028)(376002)(346002)(366004)(136003)(39860400002)(396003)(451199021)(2906002)(316002)(6916009)(31686004)(66946007)(4326008)(8676002)(5660300002)(8936002)(4744005)(66556008)(66476007)(41300700001)(86362001)(2616005)(478600001)(54906003)(6486002)(36756003)(6506007)(186003)(31696002)(83380400001)(6512007)(26005)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RS9DL21rLzVEYkhRcFdkb1VnU01Yd2dOSFM1U2RHMWs4c3RHNzlwMjZHUFFu?= =?utf-8?B?M2krOHJMbmVkbllLVnhlRW5YTU1rRTVscDJXbkdzZDNCUk5Ld0g5dzRHSGdj?= =?utf-8?B?bkwzV1E1WjhhOVlDUVVETTZWOW10akV2dVlsbzN1VVJ6MzRRbWw4anhyWVla?= =?utf-8?B?bmUrWFM4TUY0NlNiaHpLVHdNVGV2WS80NzlybnYxbjh6MG1jWkpwOUFGU0RL?= =?utf-8?B?YTFBaFhVMEdrVkk0ZzIyMGkvb1dpSFVVZVVVRHRGTDI4eVh2clpITFVibWEy?= =?utf-8?B?ckN1bzNUNXg5NUw1bkNtK3BScnY5MHVHVW1sVTFLQ2d3Z25XVkJEdDhxeVFV?= =?utf-8?B?SHE4MGh3SVdUMVRoTDJCSFo3RVFBK3VUcEJUeTB4V1p2YlRaWFhJMXpZVFZX?= =?utf-8?B?MytUMDE3K1NUK3c5TnhQVjZXeXBXNFBlU0lNbVRoWjNtdjV5U1pkSGNxNkhx?= =?utf-8?B?VDVZVU1RRmRCOG00UkxGYTZobG5oclBsWTBPL1VYTzllOUcwVFVuSHBNSHov?= =?utf-8?B?M1JRSDl6WjJJMERmSG4xUVBjRHZ0b2dHeXBmcVRYTmRlNmRCR0w4aWJCUlda?= =?utf-8?B?aFZEMHlPQ1QySVEyd0VDdW04d0dlQ3BGNElQTDd1K2pRRjZrd2FJS2Rzck1C?= =?utf-8?B?dmtUTWIvWlZUQjBJcGFWbFVvRHFGd2FmWUtpczVWektjSUV4MFNwU3kvaHpv?= =?utf-8?B?Wkh0dEp6TlgvN1A4c1lmVVBseVo2MWFtK2sya3c4RnM3U0xva3J2d0ZJcEdt?= =?utf-8?B?TzlCS2RuUVlHWlFsYWJWcHVEbmJrZHBNcjNnbGlDVzN1aHNMeGFHelFyRHJU?= =?utf-8?B?ZWZlQmw5bGNWZTRPTnZEWnlkZTZ6ZEwzV2RpVW1PRWxkbTNEYVlhdnJRS2tt?= =?utf-8?B?L0F0bUJTSHVKRzh5c3VqSlNwRnNPRUx4cWZOZkpiTTBRZENWcmhaMzlEUlZ1?= =?utf-8?B?b05PV1JGT1NtR1M0bEJxZGxMTmtPSmUzMCthVFF5OGUyVC9yUjJPOEFPczBZ?= =?utf-8?B?MWcxTVR5bTVMelJzekNKY25YL0hUWVIzTXJOb3AvUWxkUVpHVnBoTFBsM1k1?= =?utf-8?B?a3JIeExkNThHcjhmbU1ybEYzYVROY3ZESFFlOGpZbjVadGRvTmxtVnBoNkZK?= =?utf-8?B?a2xoSTRxTFIrV0NWSGtrcDdhRHMxTGNpNVZnR3Q2dFU5UmhoVFN0USsvckhq?= =?utf-8?B?WFhnWmhBcnVYZHp0R1VSRnE2VTZEeFZZVFppaENLbHhjUXJZTzR2ZWJZa0gv?= =?utf-8?B?TnlMcE1QQXJKSlBpaTlaYkk5Ty9RVWdvRHlhcGJrV2ZWU2V3SFJJdnNPRHQ5?= =?utf-8?B?bDJBRGQ0clJRNU43cm0wMHFnNjMrZ01CRnhFYnF6ejIvWDFuZFF0WE03T1pK?= =?utf-8?B?blc3MTd4RzRIVUZ6c2ZiY2hJalJOUENKWnpjeVp0V2ZCR2FzVFJSWUh0VTZP?= =?utf-8?B?dStYZmZKQmYxZ0ttVzVqVWpYaTdNVjBMd2dwUjUrQ0VOY3F1WjlWWHZNOFRP?= =?utf-8?B?N1FndnJidTNtTG95WFJ6VnlKSzRPQjhTOGdKb2pUT3lkS1gyVGNMU28yQStK?= =?utf-8?B?QXFOV1lURXdoM1BDRUI1ZkFkSXpGdE5FWDZydW9pR0tTMHdMbWY1bnZXWU9C?= =?utf-8?B?SmdJcWVJbXVod05NRE9aRUF5Vk9hbUJod3JIUjlYSE9RRnpjRVlZQkJXWk5S?= =?utf-8?B?b3pnaVBFVVUxc0kzQ0FYMHhYR2Z0U1dWSWh4dFVYQ2crMDFqWU5kb1EwVTZp?= =?utf-8?B?d1B0MXd0Y3JhRlhvYkIyUHlMRTJVUEZCZXQ1R252MmswZlduT1pQTzRROUNx?= =?utf-8?B?NEpqSGpLT3NxQUYwQzlVc1lTSlp4Ti9ta2llSXZJS1RKMlIrNGwvb3pUZ3cw?= =?utf-8?B?eDBYS3V5Vm1wN3hpZnVrWWE1ZWdxcEJyRFQ4K1RFOGFJT3cxZGl2U0dFdWZu?= =?utf-8?B?VWdTUWc5Skd5WlFsbFZ4SEo0eHNqSEpUVnpJVWdwUFBTdVhoRXlRZ0RQUG95?= =?utf-8?B?dEZ4aDRTZEdmR0s3c0k1LzRtcWdkZVhVQmxBR1AvWmJWcDM3aDFIRmg2d0JU?= =?utf-8?B?UDNPcnFDZkVPbitjTWUxZHVEY1hTV3ZwVFdqWjQ5ZlJVcEFTa1pJTjhZRHBO?= =?utf-8?Q?uXwfTBm1dhLtXanbcNVApddn0?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: db10e3db-deb2-4e41-8405-08db55e0964a X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:38:48.6813 (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: bF2Nbgncv27JcrxTSu9ShI3vhc/8/rLz00qzh7Rujxt0g1yYYPqW8waSrWNz1LMO5lM+QrzehQqCmF9HvE4ojw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8988 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684222762899100001 Content-Type: text/plain; charset="utf-8" When in 3-level guest mode we help a guest to stay alive, we also shouldn't emit a trace entry to the contrary. Move the invocation up into the respective #ifdef, noting that while this moves it into the locked region, emitting trace records with the paging lock held is okay (as done elsewhere as well), just needlessly increasing lock holding time a little. Signed-off-by: Jan Beulich --- v2: New. --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -2480,10 +2480,10 @@ static int cf_check sh_page_fault( sh_update_cr3(v, 0, false); #else ASSERT(d->is_shutting_down); + trace_shadow_gen(TRC_SHADOW_DOMF_DYING, va); #endif paging_unlock(d); put_gfn(d, gfn_x(gfn)); - trace_shadow_gen(TRC_SHADOW_DOMF_DYING, va); return 0; } From nobody Sat May 11 04:42:11 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=1684222807; cv=pass; d=zohomail.com; s=zohoarc; b=WG/oJ5Lc83vLMJubwo/vPqcV9OVmyBhLkzwuE5LnvByFo2nffmAMz4mrTHKtFrvdfUjcl4RRvtaBb0r/i3/2mzN7qLu+H+Xo8pQdziD6G2V/R+ZKc2QbTkyhoufWHgHgqAWpgQBx64+0aVeHaWLqNQVEOSajmL4eU5/BW0Avtk8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684222807; 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=C2eGJ4bTNYS/eWskMfePPdrR28QdCcEy7mZkgRqWnNI=; b=GGKiSU3dMfdOqwVvT/2lT94hLexpIysIzFrNkpoXg8/RhtaqoqogLDwjAIx+VQbniw3KNE2E0GX2jjRLxOQ3c60AqOOxdc2GPrka99jgiLjW4n1malcPWpAAuloAQmzoQHD6iwG99Wlc8e0A77UkA32n7eD0iGV/SXMdyIIYw8w= 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 1684222807144428.80758592764266; Tue, 16 May 2023 00:40:07 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.534987.832524 (Exim 4.92) (envelope-from ) id 1pypHS-0006Eu-Gw; Tue, 16 May 2023 07:39:34 +0000 Received: by outflank-mailman (output) from mailman id 534987.832524; Tue, 16 May 2023 07:39:34 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypHS-0006En-Dn; Tue, 16 May 2023 07:39:34 +0000 Received: by outflank-mailman (input) for mailman id 534987; Tue, 16 May 2023 07:39:33 +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 1pypHR-0004Mf-7H for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:39:33 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2061b.outbound.protection.outlook.com [2a01:111:f400:7d00::61b]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id cb7542dc-f3bc-11ed-b229-6b7b168915f2; Tue, 16 May 2023 09:39:32 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8988.eurprd04.prod.outlook.com (2603:10a6:20b:40b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Tue, 16 May 2023 07:39:29 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:39:29 +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: cb7542dc-f3bc-11ed-b229-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JDPVE/Z4asX9ZXnmIE/WOq0THHrkc0SjH2nA8mdYdrj6wbENfEcl0FyPveJ0rCpeTVfkibpzeyYUuXVHgSc0lvxzcd0Eb/07E3q0tkeaM6XJ8oXFB2UbMhjloDSglcyT1XkivHSSQwawzHnMmswXlnJlXp4/Ze79M5VgqcHxe/obJMSUtNOwjBeKCcZ0gOnSkLC03HQTEzXFPNHmuOsF2hmLE9WIzcCvUYY/+y6DYqT8I4A/C2OyOOUYRAk2HgVUKLR7OtWzy67zHoEw7XWOGlY8LOsGxJV8rH7VWF8D80jx/REnN2UVhJa36Eq6vuRIb1U2F7zshLYbhN9WWEW7nQ== 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=C2eGJ4bTNYS/eWskMfePPdrR28QdCcEy7mZkgRqWnNI=; b=CGAobNkzyOE6UyjvFVimFYkCt+Fc3XJO3sYS4N/a0oHn5SXeBnm9HpLKf3//Kzzr9hiV64QgNpmGUkVBYh4y4oA5quJ5RpDJi+q12+h9EVFxWjqJLNvMBhrliF7uMDmOAqP4fhxLvy1FA6hz+JujcC1XpDk579TNWASlVrfhVfRAIKSx7nwF36zLGib6QjGJExEaCLhhvRDQhTV4k3HtWqv771nXr7XGHeZUm8XUtIJll9YpCygg5nYC306pN9v6vDkpjzUv0iBY+mgxzTvnv1mlNB4lhxhGXvKk797sz2zh8G0imkGZYxy+1WfknaMunPXZnGmUgoCC6dh/TvYHKw== 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=C2eGJ4bTNYS/eWskMfePPdrR28QdCcEy7mZkgRqWnNI=; b=fVAeEWi2ZYMtKMQi4kRrmDiWFYPSGG9j1shKVTelxLkELt+sV61k6+ygH/jBhc64jcPkjImEtNHXAGJnATJg1UYPeODuzxlFLDvogZDQQ/qXMq9Eka5ls73mZ1Au31DxKcQqKg1Bxuz6aOyZQvMFA1fByTk5zpNRDj4z7fOn+NVvLyP/rBkFcUfCcy6FV1wn+XuEBX1sZy7ARgHOEj6he4XcsQQOESqiaTxP9AEvf/+CzJ61Jioj8jZ4oLphPUKh3V1tRLJ9PYBEQDNoHocPYe3x6I1pkiyva94YFH2pP9c08FBJXbItYKR1gHJCDs6V1aQj0iEmXxd28sQXU/vOpg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <7684392b-82b4-a7cb-35dc-a5de8142eea2@suse.com> Date: Tue, 16 May 2023 09:39:27 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 04/12] x86/shadow: use lighter weight mode checks 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0072.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::9) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8988:EE_ X-MS-Office365-Filtering-Correlation-Id: 13e2b02d-7925-46a0-142b-08db55e0ae94 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7ZkAHOcAlLgOWO9jz9nPPQVVtUDaAm5QZpjWazjYap8tJASDEghQbAAzXG0gqq02FVeD5f0VvNEIB2LUuUcUKC5QJUScz6omr4IKvXUa6T4cZyQDdBGVacsz6ZGtIjHJ8uWeUw5+VaMmDBI9Ne9hvUKdS+K6ddUfF+sEPfcvsiO+WMaUi4hxXnZb7QMqSZajEt/fbC/fISR6vKGEVkWsjdJYxRDaDAJDrxItAQlO1TaHD9/mUPJYTVydB0J88XAn7SWGrZWY0uCw+0pOmJTDH5RI/Mu7PxPTdFow19kJTLbEXyZiZjPQt/ttT4rSSjqyHVFEs5t2WJQidOnPlgjiQh0wRJGRcpbElaZ13Rq2pzux/mpacGosE9yxsIune+FVPxGdphTtT3hOnCxoyGPrTNnj/54OVvgOnRlHjeKAqxixhqzGxyP/bTNxs1bKlVCT4EtkTuaBBzk9dh9Az5W5AHdO5kofW4BLpz8AFeH1/JW9CLHxSCkCUZYpmZtu1LHkDp4MGpdubTMzMPx6cA1ac8rtboytHXsPoE7W/UhFBld044/VZqIDwfsjPtxctxixFVM49GPe5xD7RPq0e6BP9EeAvbrgbwA+lXPRkgOjjMp9PZ2Vbtd3ThzzdACbrBrqpM+Hw166v0j/TElyD+Des6uqWUi+lSiUdbmOIEtJX1T8Y77bjmQ62uaAZB7McEW3Vnb/ADzwb2nAiENq6k09e0hbpxhuzV4C3noBjektlC0AzqbWQuQrh9/mAT5GQkXg 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:(13230028)(376002)(346002)(366004)(136003)(39860400002)(396003)(451199021)(2906002)(316002)(6916009)(31686004)(66946007)(4326008)(8676002)(5660300002)(8936002)(66556008)(66476007)(66899021)(41300700001)(86362001)(2616005)(478600001)(54906003)(6486002)(36756003)(6506007)(186003)(31696002)(83380400001)(6512007)(26005)(38100700002)(16393002)(45980500001)(43740500002)(473944003)(414714003)(357404004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VjYzK3crWlpsTVV5Z3gxR3MvaHZvL1MxZjM4MnZ1UGZPMlBEbXdMTFRCSi9m?= =?utf-8?B?eTd1alZ0MzI0Q0hvamVKNnBNRmsyTDBCa0NRUyszQUtPaS9aVk02WG9kQ0Vs?= =?utf-8?B?RCtTazhLL2RCSFFjNFFBZEFCTUdndit6aTJHZDQ1aDBaaE56SDFZWHNEK0Zl?= =?utf-8?B?QUZUTFRlbzhnZ2NjeGdkZkN3TDlsNVo2SEZ5TW1vT0pMTE1yeU9hWk1LMEZi?= =?utf-8?B?V3B1b1ZRTk9ld0JITGJ3Q0w3N3RwQUt4SjQ3aDBGOWpmbks2bXdVTFBUc1pR?= =?utf-8?B?d1lleUk5TS91bGFSWkl6c1d5cGI3V0IzS0dzL09vcElFd3pQVFJPa09GZ0FZ?= =?utf-8?B?Z2dHcW9PeHViTjFRbWgrUDBha0IyamNiSTBOZXlxOHRlWjByWmpVVkVhRTdx?= =?utf-8?B?djNPV2ZlYzRxVVpIQ1ZZdmpFaTlmRGd3Si9FVjZVWXV2VVdNblE5TkE4Q3ZV?= =?utf-8?B?VE45RWlBNGhxbEJRS0RoWTRQbVlPcFJDY0txSHd5bE1FYkdjenRlRWsrVGxr?= =?utf-8?B?eXp1UjE4cXVJSndVZlNFNFRIaVh5UUtQRENOSGgzQ0t3dmNtRGtBTEhDNFJr?= =?utf-8?B?QWZWZnYzbXBxQVQ4dzFLSkJNRnhaSVVnQ0N6eUN6RzJCcXVYUXFWWEpYU3Zs?= =?utf-8?B?ZEp5QUVwcVFRdlhNUDVwdnBaM2R6dzEvQWlEY0ZQbWJ3OTk0NFkxREhmMFJ1?= =?utf-8?B?QWhmSWdLUldyT293VlU2WDhPV2lkL2lhaU1pQmt5aEU2YnM4SEZVb1o1bUc3?= =?utf-8?B?VkhTQVRoVFFNYWNabnJwUmVRMytoNnJ5Qk9vc1lScDZZUXdBdnc5RjlOWTV1?= =?utf-8?B?NmU4Qi84ZjZsOWR5b0EvUHlVd0UwSVlwK3Z2N0tlTzBNQUxONE96cjl6djdx?= =?utf-8?B?NkdCNXpDYy9KNVBCaUtZcTIyY0N4QnlUQ2NieU9VSUFQY0s0aHVQZzZzK1ll?= =?utf-8?B?dzVQSnA3YnprUklsVHhSNjFZN3BpbWNCeUtVOUwyRk9tS2xDbE8yU01XM0dx?= =?utf-8?B?KzN5d3hlem40elVBQ2MraWVCejB2aUdNdEI4cUgrS1VVcUQyc081aTZnZUIw?= =?utf-8?B?OFVYMDlsZm1uRHB0MlJWQjh3RkpMVDV3dWNMajlBd3ZLd0JCL1JrMG12VTI5?= =?utf-8?B?VDlZekpuTStBYndLVzM3OFNCeG1MYVFzaWtlb2NOWXRkWGZRdFBhWUlKMVdZ?= =?utf-8?B?MXNNUzZRN3A0OTNhVmJMQkg1RXRLQzdvajBobmF2dUNETUdycjQxVEpjcmZz?= =?utf-8?B?aDI2WE1BclNnckJxOXcvWWJ1TUllcGcyMTRmbGh1TkMyQXhabGVxNHVrUHFP?= =?utf-8?B?UlROTEZoVlB5Rm5uU1VDMzVQUG1SOENTck5XQ3ZnY1pGYUZsNVJYUFcvMXgv?= =?utf-8?B?S2YyUWwvMWErUmtZNCtQRjB4NUtiZUhsUlpaZTRNMlZWcDVBWk1jb1grVk40?= =?utf-8?B?RWliUG9jM3NtSzh4dGxLdjd2a0NGM1BVSUQzQXRTYm5hK2NjVVB2SGlZWG1N?= =?utf-8?B?a1pTaFJ4Wm9kUGdYeWloQkxINzRVamFUTTYrd0FMRmR6Yk5CUytqcGUxMDEw?= =?utf-8?B?aTBZN1kyUHA3ZnBrcjk4bWUzZEFpUEcyRzR6YjRTRHdxM1k1LzI5RlYxWGln?= =?utf-8?B?V210aklQd3d5bURaYjcyVlduV2VrbjZXYzlCV2k3ODk3K3Y4Y0duWkxBSk5L?= =?utf-8?B?VC9oeDVGMEs2ejExMVFPS2hFUlVvV1FJL0NVelJpT1FCWjVqcExNU005OU9o?= =?utf-8?B?U01CQzRNaWdtc0dNMlI3RTEzKzI2TXVUb3hUUk5pdHVYVlEvRzR5ZmFKZEJy?= =?utf-8?B?cEIzaEF2N05QTXR4UndLVUo4b2RvcW92N1RzUUhrYjgrUmhjNzFQa3RJS0kw?= =?utf-8?B?TGwzMWdrVHhvMzFhelFGZmw1ZEhibWtIR0lkM2JPS0hPMXBwUjdEaEZGcHlk?= =?utf-8?B?RFBOOGpHNXdZZlRTdnRqbG1XMCtMTUVjU0FROS95TXNQZkpFZ0FoenJ6RFpT?= =?utf-8?B?NkpORnQzRG5ldHFDRXVqZkFvWFNNT0xOSllOL1dZZElDM2g5eEhraE9DL3pX?= =?utf-8?B?bHRVb09Gb05WQVF6bmp6WlRIdlNHZjI4K1hFRGVoaGprMHpWZ25lbnF4VkRv?= =?utf-8?Q?4q/zJl0uQwHiiaYxwxppVLyCv?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 13e2b02d-7925-46a0-142b-08db55e0ae94 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:39:29.4364 (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: vcBQmd/3vec2PpS/PRcPgnxoYJhCzSaX2dEQ+ESbZr/VNrRWVJbA40HdTD6k21VI53UG5w8blx0BjmPJqiKmpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8988 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684222807710100001 Content-Type: text/plain; charset="utf-8" shadow_mode_...(), with the exception of shadow_mode_enabled(), are shorthands for shadow_mode_enabled() && paging_mode_...(). While potentially useful outside of shadow-internal functions, when we already know that we're dealing with a domain in shadow mode, the "paging" checks are sufficient and cheaper. While the "shadow" ones commonly translate to a MOV/AND/CMP/Jcc sequence, the "paging" ones typically resolve to just TEST+Jcc. Signed-off-by: Jan Beulich --- v2: Re-base over new earlier patch. --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1843,7 +1843,7 @@ int sh_remove_write_access(struct domain * In guest refcounting, we trust Xen to already be restricting * all the writes to the guest page tables, so we do not need to * do more. */ - if ( !shadow_mode_refcounts(d) ) + if ( !paging_mode_refcounts(d) ) return 0; =20 /* Early exit if it's already a pagetable, or otherwise not writeable = */ @@ -2075,7 +2075,7 @@ int sh_remove_all_mappings(struct domain * guest pages with an extra reference taken by * prepare_ring_for_helper(). */ - if ( !(shadow_mode_external(d) + if ( !(paging_mode_external(d) && (page->count_info & PGC_count_mask) <=3D 3 && ((page->u.inuse.type_info & PGT_count_mask) =3D=3D (is_special_page(page) || @@ -2372,8 +2372,8 @@ static void sh_update_paging_modes(struc { const struct paging_mode *old_mode =3D v->arch.paging.mode; =20 - ASSERT(shadow_mode_translate(d)); - ASSERT(shadow_mode_external(d)); + ASSERT(paging_mode_translate(d)); + ASSERT(paging_mode_external(d)); =20 #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) /* Need to resync all our pages now, because if a page goes out @@ -2760,7 +2760,7 @@ void shadow_vcpu_teardown(struct vcpu *v =20 sh_detach_old_tables(v); #ifdef CONFIG_HVM - if ( shadow_mode_external(d) ) + if ( paging_mode_external(d) ) { mfn_t mfn =3D pagetable_get_mfn(v->arch.hvm.monitor_table); =20 --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -514,7 +514,7 @@ _sh_propagate(struct vcpu *v, || (level =3D=3D 1 && page_get_owner(mfn_to_page(target_mfn)) =3D=3D dom_i= o); if ( mmio_mfn - && !(level =3D=3D 1 && (!shadow_mode_refcounts(d) + && !(level =3D=3D 1 && (!paging_mode_refcounts(d) || p2mt =3D=3D p2m_mmio_direct)) ) { ASSERT((ft =3D=3D ft_prefetch)); @@ -531,7 +531,7 @@ _sh_propagate(struct vcpu *v, _PAGE_RW | _PAGE_PRESENT); if ( guest_nx_enabled(v) ) pass_thru_flags |=3D _PAGE_NX_BIT; - if ( level =3D=3D 1 && !shadow_mode_refcounts(d) && mmio_mfn ) + if ( level =3D=3D 1 && !paging_mode_refcounts(d) && mmio_mfn ) pass_thru_flags |=3D PAGE_CACHE_ATTRS; sflags =3D gflags & pass_thru_flags; =20 @@ -651,7 +651,7 @@ _sh_propagate(struct vcpu *v, * (We handle log-dirty entirely inside the shadow code, without using= the * p2m_ram_logdirty p2m type: only HAP uses that.) */ - if ( level =3D=3D 1 && unlikely(shadow_mode_log_dirty(d)) && !mmio_mfn= ) + if ( level =3D=3D 1 && unlikely(paging_mode_log_dirty(d)) && !mmio_mfn= ) { if ( ft & FETCH_TYPE_WRITE ) paging_mark_dirty(d, target_mfn); @@ -807,7 +807,7 @@ do { #define FOREACH_PRESENT_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code) \ do { \ int _i, _j; \ - ASSERT(shadow_mode_external(_dom)); \ + ASSERT(paging_mode_external(_dom)); \ ASSERT(mfn_to_page(_sl2mfn)->u.sh.type =3D=3D SH_type_l2_32_shadow); = \ for ( _j =3D 0; _j < 4; _j++ ) = \ { \ @@ -833,7 +833,7 @@ do { do { = \ int _i; = \ shadow_l2e_t *_sp =3D map_domain_page((_sl2mfn)); = \ - ASSERT(shadow_mode_external(_dom)); = \ + ASSERT(paging_mode_external(_dom)); = \ ASSERT(mfn_to_page(_sl2mfn)->u.sh.type =3D=3D SH_type_l2_pae_shadow); = \ for ( _i =3D 0; _i < SHADOW_L2_PAGETABLE_ENTRIES; _i++ ) = \ { = \ @@ -854,7 +854,7 @@ do { unsigned int _i, _end =3D SHADOW_L2_PAGETABLE_ENTRIES; = \ shadow_l2e_t *_sp =3D map_domain_page((_sl2mfn)); = \ ASSERT_VALID_L2(mfn_to_page(_sl2mfn)->u.sh.type); = \ - if ( is_pv_32bit_domain(_dom) /* implies !shadow_mode_external */ && = \ + if ( is_pv_32bit_domain(_dom) /* implies !paging_mode_external */ && = \ mfn_to_page(_sl2mfn)->u.sh.type !=3D SH_type_l2_64_shadow ) = \ _end =3D COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(_dom); = \ for ( _i =3D 0; _i < _end; ++_i ) = \ @@ -896,7 +896,7 @@ do { #define FOREACH_PRESENT_L4E(_sl4mfn, _sl4e, _gl4p, _done, _dom, _code) \ do { \ shadow_l4e_t *_sp =3D map_domain_page((_sl4mfn)); \ - int _xen =3D !shadow_mode_external(_dom); \ + int _xen =3D !paging_mode_external(_dom); \ int _i; \ ASSERT(mfn_to_page(_sl4mfn)->u.sh.type =3D=3D SH_type_l4_64_shadow);\ for ( _i =3D 0; _i < SHADOW_L4_PAGETABLE_ENTRIES; _i++ ) \ @@ -965,7 +965,7 @@ sh_make_shadow(struct vcpu *v, mfn_t gmf #endif =20 // Create the Xen mappings... - if ( !shadow_mode_external(d) ) + if ( !paging_mode_external(d) ) { switch (shadow_type) { @@ -1367,7 +1367,7 @@ void sh_destroy_l1_shadow(struct domain shadow_demote(d, gmfn, t); } =20 - if ( shadow_mode_refcounts(d) ) + if ( paging_mode_refcounts(d) ) { /* Decrement refcounts of all the old entries */ mfn_t sl1mfn =3D smfn; @@ -1464,7 +1464,7 @@ static int cf_check validate_gl4e( l4e_propagate_from_guest(v, new_gl4e, sl3mfn, &new_sl4e, ft_prefetch); =20 // check for updates to xen reserved slots - if ( !shadow_mode_external(d) ) + if ( !paging_mode_external(d) ) { int shadow_index =3D (((unsigned long)sl4p & ~PAGE_MASK) / sizeof(shadow_l4e_t)); @@ -2387,7 +2387,7 @@ static int cf_check sh_page_fault( gfn =3D guest_walk_to_gfn(&gw); gmfn =3D get_gfn(d, gfn, &p2mt); =20 - if ( shadow_mode_refcounts(d) && + if ( paging_mode_refcounts(d) && ((!p2m_is_valid(p2mt) && !p2m_is_grant(p2mt)) || (!p2m_is_mmio(p2mt) && !mfn_valid(gmfn))) ) { @@ -2611,7 +2611,7 @@ static int cf_check sh_page_fault( return EXCRET_fault_fixed; =20 emulate: - if ( !shadow_mode_refcounts(d) ) + if ( !paging_mode_refcounts(d) ) goto not_a_shadow_fault; =20 #ifdef CONFIG_HVM @@ -3055,7 +3055,7 @@ sh_update_linear_entries(struct vcpu *v) */ =20 /* Don't try to update the monitor table if it doesn't exist */ - if ( !shadow_mode_external(d) || + if ( !paging_mode_external(d) || pagetable_get_pfn(v->arch.hvm.monitor_table) =3D=3D 0 ) return; =20 @@ -3204,7 +3204,7 @@ static void cf_check sh_update_cr3(struc /* Double-check that the HVM code has sent us a sane guest_table */ if ( is_hvm_domain(d) ) { - ASSERT(shadow_mode_external(d)); + ASSERT(paging_mode_external(d)); if ( hvm_paging_enabled(v) ) ASSERT(pagetable_get_pfn(v->arch.guest_table)); else @@ -3229,7 +3229,7 @@ static void cf_check sh_update_cr3(struc * table. We cache the current state of that table and shadow that, * until the next CR3 write makes us refresh our cache. */ - ASSERT(shadow_mode_external(d)); + ASSERT(paging_mode_external(d)); =20 /* * Find where in the page the l3 table is, but ignore the low 2 bits of @@ -3260,7 +3260,7 @@ static void cf_check sh_update_cr3(struc ASSERT(d->is_dying || d->is_shutting_down); return; } - if ( !shadow_mode_external(d) && !is_pv_32bit_domain(d) ) + if ( !paging_mode_external(d) && !is_pv_32bit_domain(d) ) { mfn_t smfn =3D pagetable_get_mfn(v->arch.paging.shadow.shadow_tabl= e[0]); =20 @@ -3354,7 +3354,7 @@ static void cf_check sh_update_cr3(struc /// /// v->arch.cr3 /// - if ( shadow_mode_external(d) ) + if ( paging_mode_external(d) ) { make_cr3(v, pagetable_get_mfn(v->arch.hvm.monitor_table)); } @@ -3371,7 +3371,7 @@ static void cf_check sh_update_cr3(struc /// /// v->arch.hvm.hw_cr[3] /// - if ( shadow_mode_external(d) ) + if ( paging_mode_external(d) ) { ASSERT(is_hvm_domain(d)); #if SHADOW_PAGING_LEVELS =3D=3D 3 --- a/xen/arch/x86/mm/shadow/private.h +++ b/xen/arch/x86/mm/shadow/private.h @@ -407,7 +407,7 @@ static inline int sh_remove_write_access unsigned int level, unsigned long fault_addr) { - ASSERT(!shadow_mode_refcounts(d)); + ASSERT(!paging_mode_refcounts(d)); return 0; } #endif @@ -520,8 +520,8 @@ sh_mfn_is_a_page_table(mfn_t gmfn) return 0; =20 owner =3D page_get_owner(page); - if ( owner && shadow_mode_refcounts(owner) - && (page->count_info & PGC_shadowed_pt) ) + if ( owner && paging_mode_refcounts(owner) && + (page->count_info & PGC_shadowed_pt) ) return 1; =20 type_info =3D page->u.inuse.type_info & PGT_type_mask; --- a/xen/arch/x86/mm/shadow/set.c +++ b/xen/arch/x86/mm/shadow/set.c @@ -81,7 +81,7 @@ shadow_get_page_from_l1e(shadow_l1e_t sl struct domain *owner =3D NULL; =20 ASSERT(!sh_l1e_is_magic(sl1e)); - ASSERT(shadow_mode_refcounts(d)); + ASSERT(paging_mode_refcounts(d)); =20 if ( mfn_valid(mfn) ) { @@ -342,7 +342,7 @@ int shadow_set_l1e(struct domain *d, sha !sh_l1e_is_magic(new_sl1e) ) { /* About to install a new reference */ - if ( shadow_mode_refcounts(d) ) + if ( paging_mode_refcounts(d) ) { #define PAGE_FLIPPABLE (_PAGE_RW | _PAGE_PWT | _PAGE_PCD | _PAGE_PAT) int rc; @@ -375,7 +375,7 @@ int shadow_set_l1e(struct domain *d, sha =20 old_sl1f =3D shadow_l1e_get_flags(old_sl1e); if ( (old_sl1f & _PAGE_PRESENT) && !sh_l1e_is_magic(old_sl1e) && - shadow_mode_refcounts(d) ) + paging_mode_refcounts(d) ) { /* * We lost a reference to an old mfn. --- a/xen/arch/x86/mm/shadow/types.h +++ b/xen/arch/x86/mm/shadow/types.h @@ -262,7 +262,7 @@ int shadow_set_l4e(struct domain *d, sha static void inline shadow_put_page_from_l1e(shadow_l1e_t sl1e, struct domain *d) { - if ( !shadow_mode_refcounts(d) ) + if ( !paging_mode_refcounts(d) ) return; =20 put_page_from_l1e(sl1e, d); From nobody Sat May 11 04:42:11 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=1684222839; cv=pass; d=zohomail.com; s=zohoarc; b=F+wr0k3r/cXxzLFxulgkVzHwllp90jNZfKHXLgzDdKO0jUvpC3Mx5WMKYowRh9wl9FQB9LmWkGsPAnYr1b8Wa7HGpu5JKdu/CZdpom18ufkmOaIj/pHjodaGdX6O5rmJv/BHAis+iZIvepJErwl/JZvwlAQUi+JVXQwQ0+ISNog= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684222839; 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=AZD5eFts/ElfUxmwkKvhbhBvNNzHTg69/OMKEXlE0s4=; b=RgJQZeMP4gC0Ekp8XNSk3BkKr2NorWRt3fPhCFliymWTVxwAjTg0xOqpyApcTKQmdIZJ/7m9wPbvTyuojTEf8UHrwCa6SaNerHjL1Jv2ecQjUeZqJymVy2j5vmYaI1AagxzfqZ98MHsqpAQztpYWsiMYggiOChEcR6AE59dOngw= 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 16842228392211007.9784612166245; Tue, 16 May 2023 00:40:39 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.534990.832534 (Exim 4.92) (envelope-from ) id 1pypHx-0007Xf-Qa; Tue, 16 May 2023 07:40:05 +0000 Received: by outflank-mailman (output) from mailman id 534990.832534; Tue, 16 May 2023 07:40:05 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypHx-0007XY-M8; Tue, 16 May 2023 07:40:05 +0000 Received: by outflank-mailman (input) for mailman id 534990; Tue, 16 May 2023 07:40:04 +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 1pypHw-0006iO-FV for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:40:04 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20612.outbound.protection.outlook.com [2a01:111:f400:7d00::612]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id dd8e2932-f3bc-11ed-8611-37d641c3527e; Tue, 16 May 2023 09:40:01 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8988.eurprd04.prod.outlook.com (2603:10a6:20b:40b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Tue, 16 May 2023 07:39:59 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:39:59 +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: dd8e2932-f3bc-11ed-8611-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MaJ6debGa7XC2I/8Av5ed9y+TiWKLR3OBW4FrCMtGFqoX2kze3T705CgDlGzE2D8BKz6FfXKGdjIO5xuMZmleDrmpB9xms78Hx0fkp1lNDPZ1TADtmemDbAtNke4mMxgtBnn6dwrt63yzf5gwpGcMpCOYnvdl0UMRIQg5YrLwgAXiM9TDBNB2gffUrEPShhoMfoSR200YwvV9ZwFYqN0QIK2P9nJYMSmsL5dNEN3T42bdE63gN8t6/Dfl4E455O4f+oBaBLydP5VNsp52EpFHemDvc2RnK2An3N62UN77t7RRV/Vmi/OSnc9hhIKJvEb41FgNbYEJevpaiGt11SHvw== 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=AZD5eFts/ElfUxmwkKvhbhBvNNzHTg69/OMKEXlE0s4=; b=nyvmD+SKS6auF0usbNpwcrmFBPrmUCD1d87Bfd8FU04Kq89seQoIuIyTpgKNuFQBrZ+R3KklYKrKSacnbJUZHt00UH9OECfrvQuaH/tSCrkox5PjUbdppllq5KV/Z1pc8iUNTZQ/aUmFn2L8La1nOMB8hZAuJQPBHVS3y+BK3O+u1VNNHSOz21FlXaXttGithrFdmVzHHu1EVap73ShzCKPDfruxm3Yu79FDhZ54kBKHu3h5WiA4JzjCr46rLVFmMc0Vs80p+wUD78UBV18Q6OobvzG70QK1B0pQST/kjLDIQvBfKi/g+osI7tz17L0bcqkJeqd7rHBZfw655f3efA== 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=AZD5eFts/ElfUxmwkKvhbhBvNNzHTg69/OMKEXlE0s4=; b=iRsBiKZLoWhsmk6gtcQS/CSfRGIWxMFFLvAUUeTYxWjSRV30hg5Gi6lSMj5zGsiUDB3JWtkMjtcZNoIXSlCN3sxdc5dVHgPjgjQa2vsh5ey7cRt1bBsJZ8AlVo8OalsFq2xNlFyCLHmu8kolLdy9ViG0HPU3nDuRikk3OYA9qKx6Ulu1YLgijY9kLmZ1D+8sWqfpDQK0HnHK5Idm4JbjAAbCWR8chA5dVePvTkhmjq/ePoFwKYswes7CKc1eHcFAUVTTRhWc3NPDX/crFC0f26uNBrGR6b7z0MLMJPXiCvoCrd+zZ8B+H+tMonxHvRF7flRJld0iYQCJP4lx3h1FLg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Tue, 16 May 2023 09:39:56 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 05/12] x86/shadow: move OOS functions to their own file 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0190.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a4::8) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8988:EE_ X-MS-Office365-Filtering-Correlation-Id: fb4a8b18-8e91-4616-9dae-08db55e0bfe1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ew8pWgFMpXXYVRPTtq4EkOyEdpztfCi3aZ3XuijvMyFEQ74UsP31Wa8qa1OGo1PX4dlFhaIPHx7o20RWvDo8NKwEPC61UKmJA6DEPQq7uMw7dxFmZgVBGX7l/H2yYanpftb7qn4NmgKRVMI6IT5p0v+9AcNhRTiiBdcW3JHs/tqYnGJXLIiLEw4y3b4+gR5pwCXUstzvbX/Xj5Mxgw5+nsJn8PQi5MaAvsDeyr3MgBkiUcxacdAWY4MK5j0jqcrrkze/PviNw9iFZItltAn4RbD9l4dpxI67AktSV/aIZEk9/vzqFoM9Xq5fIZvb9c450c21cbRDoMej7L/MS99aJNgWxjM5rdZFoWNX8iPtFyHgv2BxFg0ta97Lh1UL/GwvUTK86bGDG9osXNXtzby69GgQnC+mgjniquCcRrtyQG+JOp/NpVdE0SJw3CnCCFsW+P2V1qb9YAadXM0J1hgz++2SCvLUD9RL1rlhBQaeNT67hEgh+WxrqBQx2x2DdaV2fXG1sgBTwFABU2nB09wrk+XmE4DYXK46JhD3CCGEjWvbzvuJ2eLIWvndZt03GEZTqVe9dnVrx0itm33mmfSkmN51pdujNJFz0L6Gg02hNEcxKiLueJLUSw8H/Con7oalA+rbKZ7llSUYr/kPDrgL6mM6HoxSWAoAAqSUyV7fOG99g1RldGXsR7TWbweoMZQY4a+gwlYPGo/Ou6elI6iIXg== 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:(13230028)(376002)(346002)(366004)(136003)(39860400002)(396003)(451199021)(2906002)(316002)(6916009)(31686004)(66946007)(4326008)(8676002)(5660300002)(8936002)(30864003)(66556008)(66476007)(66899021)(41300700001)(86362001)(2616005)(478600001)(54906003)(6486002)(36756003)(6666004)(6506007)(186003)(31696002)(83380400001)(6512007)(26005)(38100700002)(45980500001)(43740500002)(579004)(473944003)(414714003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bmc3SHErZjYvZVU5SzdqR3QvY0FoL29tWHcwMGMyS0dJcjFpOUsxOThrZDUv?= =?utf-8?B?Z3VkTzRaNVhrS0l4QjdmMTZsdURydUVrODhPMmtCMUp2a2szZmIzbTdpS1F2?= =?utf-8?B?cWJhYkJ2QkszSUJkT0FuajdmbEpsVjQvQWFpeWROOE1KRmpTWmhSYm9laUsz?= =?utf-8?B?cHFMbVFOc3k0ajErV1FFTGIxbkdaVEloaFZnUVhmbVhhQ3huYTJtUnhJZmI4?= =?utf-8?B?c0RLRmp5NW5KZ3FXLzBoUCtuRFcydFFnUlZjaDY0M1R3ZFAvdXdBK1FIZ2xM?= =?utf-8?B?WnRnNmVwcWZvMW8rUDNxaTdnaU9xMFE4WGZTS2Uyc21NU1krRzI3Z08wZTNM?= =?utf-8?B?bWpNYzR1QnBWN0ZlSG1ueUtvbjJhek5KVkxxUk9Gb1YxNGkyWCtTdGY5NG01?= =?utf-8?B?d0U1UlNGdHpyczdZK2pUUFB3VVRpUzJoNURGL2VCMWZFbWlyV3I5Z3NZeUY1?= =?utf-8?B?S0ZTa0xjRXJyRWFHa3ovVTNscTc5TGpzakdtL2pKamYvQy9SUkRCc2pEaGpi?= =?utf-8?B?alozVklBMjlOK09yMGZISDhTNE9UMDBIaUhxaTYxc2toeGpVV1NoQklEWmJm?= =?utf-8?B?aUVadC9OV0d5bWZFdTgzUHM1Rm5hQjZqQkJpQ3pNWlRVL0d3Nk9WelBaNjgv?= =?utf-8?B?TW11eHgxYlB6R1hLYmdMcllRUC9TanJ6YndlU2t2Y3h6ZmRneTBwdzNJdHRu?= =?utf-8?B?YXN6Q2h2WXJkTVZJaXFNRzVzVzRoSEh1cWI1NDRKRHdYTkFrZHoxeWdGT0FY?= =?utf-8?B?ZDlVci9OUjlDT0dsVEljOTFNUUxrUmdra1p4bmNKTzhVUUVNdFJ4aWpJQ1No?= =?utf-8?B?dUxLVWtMT2w3VjcyTUNsUXN1MGZXaENMNGlHZy9DYjI0eldtZHpvR2xJUjV2?= =?utf-8?B?KytpdWY0SWZCQWRKMjQrOWFEWEdETVYrblltTjZIWFo5bExBcGl5Qlp0NC8w?= =?utf-8?B?aDN2TFR5TTY4SG5Ldjh5eHl1dlFIYVVNbzFrQWFGSFNWMFQ4bHVQWmR3OVNI?= =?utf-8?B?MTkrb2tDZjhXWmR3ZHVJTGF6ZnNmdWFFeUkwOExaSzBxWWhobFpha2tGNGlZ?= =?utf-8?B?OXFSbHJITlRJWE0rbFZHSXVzYmJjZFBRQS80UkpHWUtzbmxMTUMrVERnUmNp?= =?utf-8?B?U0hsYkFpTGd0b2htaFR5d1BXVkFSK3B0ZCtEMC9zWmt0SXF4V0pIR3M3Z2NM?= =?utf-8?B?NnU0eHk0WFUxR3JuUE8xVjhPbkxEbmFiSjI3LzJFa2owNzd2dEg3SDBveVFj?= =?utf-8?B?bXJRbkpydjV1Z1d0Nk1zVTBCeFFxQmNuYXlBa0UyTEt3K0M0UVNsRU9hTDUv?= =?utf-8?B?bllFbEJUNXkvNm1UV0cvVERQcG5MNEc5UUhnRXVybWdJUDQvdjFBc2RmWDJa?= =?utf-8?B?M2R1YnBsTG5MSGJGWTNDWHJsd1I2NExVYXNndGUxYkJERGJ3NU1MZDBBMmY0?= =?utf-8?B?RnJTcmN6NjlSRWlHRUNleHFCb3lhV3Z6NFJlVG9WKzlLK3RnNktnNWtlUUds?= =?utf-8?B?NTJ4MHEwTDRzUW9ZL1lDUDVZMW50bjM3VzF0TC9xZ0ZGWVp2S0pQWExXN1Fz?= =?utf-8?B?Zk56Qit1R1FMa0hCMjV0Z3hnOHY2dHVYb2VUUldJU2dsQm1aeW1lQlZMS09L?= =?utf-8?B?SzJqck81UElpMlZySTdnNjZ3ekd6azFVS1FNSHF6SG9uRWxHeFZUdWpuUW52?= =?utf-8?B?aWFEdU90clhzNzhyaVZLa2sycGM4T0o1ZnRIajdvazBRaDdnV3lqQXljNGdr?= =?utf-8?B?K0Ivek9jaUJjcXZGbVR0akgvL21waUNnNWE4K1BSMWd6NVJ2NHE5V3hsUUtu?= =?utf-8?B?MkJjS3M0T3RDOGtIeExFSHB3czhSL05aTEVsMDh0Z204MTVFVDhqY2REVm1R?= =?utf-8?B?Vks0ZFN1T2FqTWh3YjBQUEJGdmRUSWI0TUpiTUpXMTk1eFhwYzVNb1VwZW9Y?= =?utf-8?B?Wlo4cFVrcDQvMUdhU3lSaGNURTFVTWw3RWR4TlpJNlBNR21PVUhqSVorNGxu?= =?utf-8?B?ejVYSkp2bTAyVk0xMU5CMUJzNlRnOFNxZ0NuQWIyZ1V4cDVPMjlhdzV3QkFi?= =?utf-8?B?MldZY0lvZFR3NHAybVc5aGpqY1lYeXZOWThpaExWejdCVmJDeDdvVm5IZnkv?= =?utf-8?Q?Wj6Ycpxm2qfsODM+09dFwGKzi?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: fb4a8b18-8e91-4616-9dae-08db55e0bfe1 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:39:58.9369 (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: JhSnzmbYXB9ebWjk2ylLn8ZqiJPJF3x3mwlnAsMoqIO3+pQ71GLs8mhCJhALYtJHe3DIGrXjxctq+bewi0SgVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8988 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684222840393100001 Content-Type: text/plain; charset="utf-8" The code has been identified as HVM-only, and its main functions are pretty well isolated. Move them to their own file. While moving, besides making two functions non-static, do a few style adjustments, mainly comment formatting, but leave the code otherwise untouched. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- v2: Adjust SPDX to GPL-2.0-only. A few more style adjustments. --- a/xen/arch/x86/mm/shadow/Makefile +++ b/xen/arch/x86/mm/shadow/Makefile @@ -1,6 +1,6 @@ ifeq ($(CONFIG_SHADOW_PAGING),y) obj-y +=3D common.o set.o -obj-$(CONFIG_HVM) +=3D hvm.o guest_2.o guest_3.o guest_4.o +obj-$(CONFIG_HVM) +=3D hvm.o guest_2.o guest_3.o guest_4.o oos.o obj-$(CONFIG_PV) +=3D pv.o guest_4.o else obj-y +=3D none.o --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -140,576 +140,6 @@ static int __init cf_check shadow_audit_ __initcall(shadow_audit_key_init); #endif /* SHADOW_AUDIT */ =20 -#if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) -/*************************************************************************= */ -/* Out-of-sync shadows. */ - -/* From time to time, we let a shadowed pagetable page go out of sync - * with its shadow: the guest is allowed to write directly to the page, - * and those writes are not synchronously reflected in the shadow. - * This lets us avoid many emulations if the guest is writing a lot to a - * pagetable, but it relaxes a pretty important invariant in the shadow - * pagetable design. Therefore, some rules: - * - * 1. Only L1 pagetables may go out of sync: any page that is shadowed - * at at higher level must be synchronously updated. This makes - * using linear shadow pagetables much less dangerous. - * That means that: (a) unsyncing code needs to check for higher-level - * shadows, and (b) promotion code needs to resync. - * - * 2. All shadow operations on a guest page require the page to be brought - * back into sync before proceeding. This must be done under the - * paging lock so that the page is guaranteed to remain synced until - * the operation completes. - * - * Exceptions to this rule: the pagefault and invlpg handlers may - * update only one entry on an out-of-sync page without resyncing it. - * - * 3. Operations on shadows that do not start from a guest page need to - * be aware that they may be handling an out-of-sync shadow. - * - * 4. Operations that do not normally take the paging lock (fast-path - * #PF handler, INVLPG) must fall back to a locking, syncing version - * if they see an out-of-sync table. - * - * 5. Operations corresponding to guest TLB flushes (MOV CR3, INVLPG) - * must explicitly resync all relevant pages or update their - * shadows. - * - * Currently out-of-sync pages are listed in a simple open-addressed - * hash table with a second chance (must resist temptation to radically - * over-engineer hash tables...) The virtual address of the access - * which caused us to unsync the page is also kept in the hash table, as - * a hint for finding the writable mappings later. - * - * We keep a hash per vcpu, because we want as much as possible to do - * the re-sync on the save vcpu we did the unsync on, so the VA hint - * will be valid. - */ - -static void sh_oos_audit(struct domain *d) -{ - unsigned int idx, expected_idx, expected_idx_alt; - struct page_info *pg; - struct vcpu *v; - - for_each_vcpu(d, v) - { - for ( idx =3D 0; idx < SHADOW_OOS_PAGES; idx++ ) - { - mfn_t *oos =3D v->arch.paging.shadow.oos; - if ( mfn_eq(oos[idx], INVALID_MFN) ) - continue; - - expected_idx =3D mfn_x(oos[idx]) % SHADOW_OOS_PAGES; - expected_idx_alt =3D ((expected_idx + 1) % SHADOW_OOS_PAGES); - if ( idx !=3D expected_idx && idx !=3D expected_idx_alt ) - { - printk("%s: idx %x contains gmfn %lx, expected at %x or %x= .\n", - __func__, idx, mfn_x(oos[idx]), - expected_idx, expected_idx_alt); - BUG(); - } - pg =3D mfn_to_page(oos[idx]); - if ( !(pg->count_info & PGC_shadowed_pt) ) - { - printk("%s: idx %x gmfn %lx not a pt (count %lx)\n", - __func__, idx, mfn_x(oos[idx]), pg->count_info); - BUG(); - } - if ( !(pg->shadow_flags & SHF_out_of_sync) ) - { - printk("%s: idx %x gmfn %lx not marked oos (flags %x)\n", - __func__, idx, mfn_x(oos[idx]), pg->shadow_flags); - BUG(); - } - if ( (pg->shadow_flags & SHF_page_type_mask & ~SHF_L1_ANY) ) - { - printk("%s: idx %x gmfn %lx shadowed as non-l1 (flags %x)\= n", - __func__, idx, mfn_x(oos[idx]), pg->shadow_flags); - BUG(); - } - } - } -} - -#if SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES -void oos_audit_hash_is_present(struct domain *d, mfn_t gmfn) -{ - int idx; - struct vcpu *v; - mfn_t *oos; - - ASSERT(mfn_is_out_of_sync(gmfn)); - - for_each_vcpu(d, v) - { - oos =3D v->arch.paging.shadow.oos; - idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; - if ( !mfn_eq(oos[idx], gmfn) ) - idx =3D (idx + 1) % SHADOW_OOS_PAGES; - - if ( mfn_eq(oos[idx], gmfn) ) - return; - } - - printk(XENLOG_ERR "gmfn %"PRI_mfn" marked OOS but not in hash table\n", - mfn_x(gmfn)); - BUG(); -} -#endif - -/* Update the shadow, but keep the page out of sync. */ -static inline void _sh_resync_l1(struct vcpu *v, mfn_t gmfn, mfn_t snpmfn) -{ - struct page_info *pg =3D mfn_to_page(gmfn); - - ASSERT(mfn_valid(gmfn)); - ASSERT(page_is_out_of_sync(pg)); - - /* Call out to the appropriate per-mode resyncing function */ - if ( pg->shadow_flags & SHF_L1_32 ) - SHADOW_INTERNAL_NAME(sh_resync_l1, 2)(v, gmfn, snpmfn); - else if ( pg->shadow_flags & SHF_L1_PAE ) - SHADOW_INTERNAL_NAME(sh_resync_l1, 3)(v, gmfn, snpmfn); - else if ( pg->shadow_flags & SHF_L1_64 ) - SHADOW_INTERNAL_NAME(sh_resync_l1, 4)(v, gmfn, snpmfn); -} - -static int sh_remove_write_access_from_sl1p(struct domain *d, mfn_t gmfn, - mfn_t smfn, unsigned long off) -{ - ASSERT(mfn_valid(smfn)); - ASSERT(mfn_valid(gmfn)); - - switch ( mfn_to_page(smfn)->u.sh.type ) - { - case SH_type_l1_32_shadow: - case SH_type_fl1_32_shadow: - return SHADOW_INTERNAL_NAME(sh_rm_write_access_from_sl1p, 2) - (d, gmfn, smfn, off); - - case SH_type_l1_pae_shadow: - case SH_type_fl1_pae_shadow: - return SHADOW_INTERNAL_NAME(sh_rm_write_access_from_sl1p, 3) - (d, gmfn, smfn, off); - - case SH_type_l1_64_shadow: - case SH_type_fl1_64_shadow: - return SHADOW_INTERNAL_NAME(sh_rm_write_access_from_sl1p, 4) - (d, gmfn, smfn, off); - - default: - return 0; - } -} - -/* - * Fixup arrays: We limit the maximum number of writable mappings to - * SHADOW_OOS_FIXUPS and store enough information to remove them - * quickly on resync. - */ - -static inline int oos_fixup_flush_gmfn(struct vcpu *v, mfn_t gmfn, - struct oos_fixup *fixup) -{ - struct domain *d =3D v->domain; - int i; - for ( i =3D 0; i < SHADOW_OOS_FIXUPS; i++ ) - { - if ( !mfn_eq(fixup->smfn[i], INVALID_MFN) ) - { - sh_remove_write_access_from_sl1p(d, gmfn, - fixup->smfn[i], - fixup->off[i]); - fixup->smfn[i] =3D INVALID_MFN; - } - } - - /* Always flush the TLBs. See comment on oos_fixup_add(). */ - return 1; -} - -void oos_fixup_add(struct domain *d, mfn_t gmfn, - mfn_t smfn, unsigned long off) -{ - int idx, next; - mfn_t *oos; - struct oos_fixup *oos_fixup; - struct vcpu *v; - - perfc_incr(shadow_oos_fixup_add); - - for_each_vcpu(d, v) - { - oos =3D v->arch.paging.shadow.oos; - oos_fixup =3D v->arch.paging.shadow.oos_fixup; - idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; - if ( !mfn_eq(oos[idx], gmfn) ) - idx =3D (idx + 1) % SHADOW_OOS_PAGES; - if ( mfn_eq(oos[idx], gmfn) ) - { - int i; - for ( i =3D 0; i < SHADOW_OOS_FIXUPS; i++ ) - { - if ( mfn_eq(oos_fixup[idx].smfn[i], smfn) - && (oos_fixup[idx].off[i] =3D=3D off) ) - return; - } - - next =3D oos_fixup[idx].next; - - if ( !mfn_eq(oos_fixup[idx].smfn[next], INVALID_MFN) ) - { - TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_OOS_FIXUP_EVICT); - - /* Reuse this slot and remove current writable mapping. */ - sh_remove_write_access_from_sl1p(d, gmfn, - oos_fixup[idx].smfn[next], - oos_fixup[idx].off[next]); - perfc_incr(shadow_oos_fixup_evict); - /* We should flush the TLBs now, because we removed a - writable mapping, but since the shadow is already - OOS we have no problem if another vcpu write to - this page table. We just have to be very careful to - *always* flush the tlbs on resync. */ - } - - oos_fixup[idx].smfn[next] =3D smfn; - oos_fixup[idx].off[next] =3D off; - oos_fixup[idx].next =3D (next + 1) % SHADOW_OOS_FIXUPS; - - TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_OOS_FIXUP_ADD); - return; - } - } - - printk(XENLOG_ERR "gmfn %"PRI_mfn" was OOS but not in hash table\n", - mfn_x(gmfn)); - BUG(); -} - -static int oos_remove_write_access(struct vcpu *v, mfn_t gmfn, - struct oos_fixup *fixup) -{ - struct domain *d =3D v->domain; - int ftlb =3D 0; - - ftlb |=3D oos_fixup_flush_gmfn(v, gmfn, fixup); - - switch ( sh_remove_write_access(d, gmfn, 0, 0) ) - { - default: - case 0: - break; - - case 1: - ftlb |=3D 1; - break; - - case -1: - /* An unfindable writeable typecount has appeared, probably via a - * grant table entry: can't shoot the mapping, so try to unshadow - * the page. If that doesn't work either, the guest is granting - * his pagetables and must be killed after all. - * This will flush the tlb, so we can return with no worries. */ - shadow_remove_all_shadows(d, gmfn); - return 1; - } - - if ( ftlb ) - guest_flush_tlb_mask(d, d->dirty_cpumask); - - return 0; -} - - -static inline void trace_resync(int event, mfn_t gmfn) -{ - if ( tb_init_done ) - { - /* Convert gmfn to gfn */ - gfn_t gfn =3D mfn_to_gfn(current->domain, gmfn); - - __trace_var(event, 0/*!tsc*/, sizeof(gfn), &gfn); - } -} - -/* Pull all the entries on an out-of-sync page back into sync. */ -static void _sh_resync(struct vcpu *v, mfn_t gmfn, - struct oos_fixup *fixup, mfn_t snp) -{ - struct page_info *pg =3D mfn_to_page(gmfn); - - ASSERT(paging_locked_by_me(v->domain)); - ASSERT(mfn_is_out_of_sync(gmfn)); - /* Guest page must be shadowed *only* as L1 when out of sync. */ - ASSERT(!(mfn_to_page(gmfn)->shadow_flags & SHF_page_type_mask - & ~SHF_L1_ANY)); - ASSERT(!sh_page_has_multiple_shadows(mfn_to_page(gmfn))); - - SHADOW_PRINTK("%pv gmfn=3D%"PRI_mfn"\n", v, mfn_x(gmfn)); - - /* Need to pull write access so the page *stays* in sync. */ - if ( oos_remove_write_access(v, gmfn, fixup) ) - { - /* Page has been unshadowed. */ - return; - } - - /* No more writable mappings of this page, please */ - pg->shadow_flags &=3D ~SHF_oos_may_write; - - /* Update the shadows with current guest entries. */ - _sh_resync_l1(v, gmfn, snp); - - /* Now we know all the entries are synced, and will stay that way */ - pg->shadow_flags &=3D ~SHF_out_of_sync; - perfc_incr(shadow_resync); - trace_resync(TRC_SHADOW_RESYNC_FULL, gmfn); -} - - -/* Add an MFN to the list of out-of-sync guest pagetables */ -static void oos_hash_add(struct vcpu *v, mfn_t gmfn) -{ - int i, idx, oidx, swap =3D 0; - mfn_t *oos =3D v->arch.paging.shadow.oos; - mfn_t *oos_snapshot =3D v->arch.paging.shadow.oos_snapshot; - struct oos_fixup *oos_fixup =3D v->arch.paging.shadow.oos_fixup; - struct oos_fixup fixup =3D { .next =3D 0 }; - - for (i =3D 0; i < SHADOW_OOS_FIXUPS; i++ ) - fixup.smfn[i] =3D INVALID_MFN; - - idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; - oidx =3D idx; - - if ( !mfn_eq(oos[idx], INVALID_MFN) - && (mfn_x(oos[idx]) % SHADOW_OOS_PAGES) =3D=3D idx ) - { - /* Punt the current occupant into the next slot */ - SWAP(oos[idx], gmfn); - SWAP(oos_fixup[idx], fixup); - swap =3D 1; - idx =3D (idx + 1) % SHADOW_OOS_PAGES; - } - if ( !mfn_eq(oos[idx], INVALID_MFN) ) - { - /* Crush the current occupant. */ - _sh_resync(v, oos[idx], &oos_fixup[idx], oos_snapshot[idx]); - perfc_incr(shadow_unsync_evict); - } - oos[idx] =3D gmfn; - oos_fixup[idx] =3D fixup; - - if ( swap ) - SWAP(oos_snapshot[idx], oos_snapshot[oidx]); - - copy_domain_page(oos_snapshot[oidx], oos[oidx]); -} - -/* Remove an MFN from the list of out-of-sync guest pagetables */ -static void oos_hash_remove(struct domain *d, mfn_t gmfn) -{ - int idx; - mfn_t *oos; - struct vcpu *v; - - SHADOW_PRINTK("d%d gmfn %lx\n", d->domain_id, mfn_x(gmfn)); - - for_each_vcpu(d, v) - { - oos =3D v->arch.paging.shadow.oos; - idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; - if ( !mfn_eq(oos[idx], gmfn) ) - idx =3D (idx + 1) % SHADOW_OOS_PAGES; - if ( mfn_eq(oos[idx], gmfn) ) - { - oos[idx] =3D INVALID_MFN; - return; - } - } - - printk(XENLOG_ERR "gmfn %"PRI_mfn" was OOS but not in hash table\n", - mfn_x(gmfn)); - BUG(); -} - -mfn_t oos_snapshot_lookup(struct domain *d, mfn_t gmfn) -{ - int idx; - mfn_t *oos; - mfn_t *oos_snapshot; - struct vcpu *v; - - for_each_vcpu(d, v) - { - oos =3D v->arch.paging.shadow.oos; - oos_snapshot =3D v->arch.paging.shadow.oos_snapshot; - idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; - if ( !mfn_eq(oos[idx], gmfn) ) - idx =3D (idx + 1) % SHADOW_OOS_PAGES; - if ( mfn_eq(oos[idx], gmfn) ) - { - return oos_snapshot[idx]; - } - } - - printk(XENLOG_ERR "gmfn %"PRI_mfn" was OOS but not in hash table\n", - mfn_x(gmfn)); - BUG(); -} - -/* Pull a single guest page back into sync */ -void sh_resync(struct domain *d, mfn_t gmfn) -{ - int idx; - mfn_t *oos; - mfn_t *oos_snapshot; - struct oos_fixup *oos_fixup; - struct vcpu *v; - - for_each_vcpu(d, v) - { - oos =3D v->arch.paging.shadow.oos; - oos_fixup =3D v->arch.paging.shadow.oos_fixup; - oos_snapshot =3D v->arch.paging.shadow.oos_snapshot; - idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; - if ( !mfn_eq(oos[idx], gmfn) ) - idx =3D (idx + 1) % SHADOW_OOS_PAGES; - - if ( mfn_eq(oos[idx], gmfn) ) - { - _sh_resync(v, gmfn, &oos_fixup[idx], oos_snapshot[idx]); - oos[idx] =3D INVALID_MFN; - return; - } - } - - printk(XENLOG_ERR "gmfn %"PRI_mfn" was OOS but not in hash table\n", - mfn_x(gmfn)); - BUG(); -} - -/* Figure out whether it's definitely safe not to sync this l1 table, - * by making a call out to the mode in which that shadow was made. */ -static int sh_skip_sync(struct vcpu *v, mfn_t gl1mfn) -{ - struct page_info *pg =3D mfn_to_page(gl1mfn); - if ( pg->shadow_flags & SHF_L1_32 ) - return SHADOW_INTERNAL_NAME(sh_safe_not_to_sync, 2)(v, gl1mfn); - else if ( pg->shadow_flags & SHF_L1_PAE ) - return SHADOW_INTERNAL_NAME(sh_safe_not_to_sync, 3)(v, gl1mfn); - else if ( pg->shadow_flags & SHF_L1_64 ) - return SHADOW_INTERNAL_NAME(sh_safe_not_to_sync, 4)(v, gl1mfn); - printk(XENLOG_ERR "gmfn %"PRI_mfn" was OOS but not shadowed as an l1\n= ", - mfn_x(gl1mfn)); - BUG(); -} - - -/* Pull all out-of-sync pages back into sync. Pages brought out of sync - * on other vcpus are allowed to remain out of sync, but their contents - * will be made safe (TLB flush semantics); pages unsynced by this vcpu - * are brought back into sync and write-protected. If skip !=3D 0, we try - * to avoid resyncing at all if we think we can get away with it. */ -void sh_resync_all(struct vcpu *v, int skip, int this, int others) -{ - int idx; - struct vcpu *other; - mfn_t *oos =3D v->arch.paging.shadow.oos; - mfn_t *oos_snapshot =3D v->arch.paging.shadow.oos_snapshot; - struct oos_fixup *oos_fixup =3D v->arch.paging.shadow.oos_fixup; - - SHADOW_PRINTK("%pv\n", v); - - ASSERT(paging_locked_by_me(v->domain)); - - if ( !this ) - goto resync_others; - - /* First: resync all of this vcpu's oos pages */ - for ( idx =3D 0; idx < SHADOW_OOS_PAGES; idx++ ) - if ( !mfn_eq(oos[idx], INVALID_MFN) ) - { - /* Write-protect and sync contents */ - _sh_resync(v, oos[idx], &oos_fixup[idx], oos_snapshot[idx]); - oos[idx] =3D INVALID_MFN; - } - - resync_others: - if ( !others ) - return; - - /* Second: make all *other* vcpus' oos pages safe. */ - for_each_vcpu(v->domain, other) - { - if ( v =3D=3D other ) - continue; - - oos =3D other->arch.paging.shadow.oos; - oos_fixup =3D other->arch.paging.shadow.oos_fixup; - oos_snapshot =3D other->arch.paging.shadow.oos_snapshot; - - for ( idx =3D 0; idx < SHADOW_OOS_PAGES; idx++ ) - { - if ( mfn_eq(oos[idx], INVALID_MFN) ) - continue; - - if ( skip ) - { - /* Update the shadows and leave the page OOS. */ - if ( sh_skip_sync(v, oos[idx]) ) - continue; - trace_resync(TRC_SHADOW_RESYNC_ONLY, oos[idx]); - _sh_resync_l1(other, oos[idx], oos_snapshot[idx]); - } - else - { - /* Write-protect and sync contents */ - _sh_resync(other, oos[idx], &oos_fixup[idx], oos_snapshot[= idx]); - oos[idx] =3D INVALID_MFN; - } - } - } -} - -/* Allow a shadowed page to go out of sync. Unsyncs are traced in - * multi.c:sh_page_fault() */ -int sh_unsync(struct vcpu *v, mfn_t gmfn) -{ - struct page_info *pg; - - ASSERT(paging_locked_by_me(v->domain)); - - SHADOW_PRINTK("%pv gmfn=3D%"PRI_mfn"\n", v, mfn_x(gmfn)); - - pg =3D mfn_to_page(gmfn); - - /* Guest page must be shadowed *only* as L1 and *only* once when out - * of sync. Also, get out now if it's already out of sync. - * Also, can't safely unsync if some vcpus have paging disabled.*/ - if ( pg->shadow_flags & - ((SHF_page_type_mask & ~SHF_L1_ANY) | SHF_out_of_sync) - || sh_page_has_multiple_shadows(pg) - || !is_hvm_vcpu(v) - || !v->domain->arch.paging.shadow.oos_active ) - return 0; - - BUILD_BUG_ON(!(typeof(pg->shadow_flags))SHF_out_of_sync); - BUILD_BUG_ON(!(typeof(pg->shadow_flags))SHF_oos_may_write); - - pg->shadow_flags |=3D SHF_out_of_sync|SHF_oos_may_write; - oos_hash_add(v, gmfn); - perfc_incr(shadow_unsync); - TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_UNSYNC); - return 1; -} - -#endif /* (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) */ - - /*************************************************************************= */ /* Code for "promoting" a guest page to the point where the shadow code is * willing to let it be treated as a guest page table. This generally --- /dev/null +++ b/xen/arch/x86/mm/shadow/oos.c @@ -0,0 +1,606 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/*************************************************************************= ***** + * arch/x86/mm/shadow/oos.c + * + * Shadow code dealing with out-of-sync shadows. + * Parts of this code are Copyright (c) 2006 by XenSource Inc. + * Parts of this code are Copyright (c) 2006 by Michael A Fetterman + * Parts based on earlier work by Michael A Fetterman, Ian Pratt et al. + */ + +#include "private.h" + +#if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) + +#include + +#include + +/* + * From time to time, we let a shadowed pagetable page go out of sync + * with its shadow: the guest is allowed to write directly to the page, + * and those writes are not synchronously reflected in the shadow. + * This lets us avoid many emulations if the guest is writing a lot to a + * pagetable, but it relaxes a pretty important invariant in the shadow + * pagetable design. Therefore, some rules: + * + * 1. Only L1 pagetables may go out of sync: any page that is shadowed + * at at higher level must be synchronously updated. This makes + * using linear shadow pagetables much less dangerous. + * That means that: (a) unsyncing code needs to check for higher-level + * shadows, and (b) promotion code needs to resync. + * + * 2. All shadow operations on a guest page require the page to be brought + * back into sync before proceeding. This must be done under the + * paging lock so that the page is guaranteed to remain synced until + * the operation completes. + * + * Exceptions to this rule: the pagefault and invlpg handlers may + * update only one entry on an out-of-sync page without resyncing it. + * + * 3. Operations on shadows that do not start from a guest page need to + * be aware that they may be handling an out-of-sync shadow. + * + * 4. Operations that do not normally take the paging lock (fast-path + * #PF handler, INVLPG) must fall back to a locking, syncing version + * if they see an out-of-sync table. + * + * 5. Operations corresponding to guest TLB flushes (MOV CR3, INVLPG) + * must explicitly resync all relevant pages or update their + * shadows. + * + * Currently out-of-sync pages are listed in a simple open-addressed + * hash table with a second chance (must resist temptation to radically + * over-engineer hash tables...) The virtual address of the access + * which caused us to unsync the page is also kept in the hash table, as + * a hint for finding the writable mappings later. + * + * We keep a hash per vcpu, because we want as much as possible to do + * the re-sync on the save vcpu we did the unsync on, so the VA hint + * will be valid. + */ + +#if SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES_FULL +void sh_oos_audit(struct domain *d) +{ + unsigned int idx, expected_idx, expected_idx_alt; + struct page_info *pg; + struct vcpu *v; + + for_each_vcpu(d, v) + { + for ( idx =3D 0; idx < SHADOW_OOS_PAGES; idx++ ) + { + mfn_t *oos =3D v->arch.paging.shadow.oos; + + if ( mfn_eq(oos[idx], INVALID_MFN) ) + continue; + + expected_idx =3D mfn_x(oos[idx]) % SHADOW_OOS_PAGES; + expected_idx_alt =3D ((expected_idx + 1) % SHADOW_OOS_PAGES); + if ( idx !=3D expected_idx && idx !=3D expected_idx_alt ) + { + printk("%s: idx %x contains gmfn %lx, expected at %x or %x= .\n", + __func__, idx, mfn_x(oos[idx]), + expected_idx, expected_idx_alt); + BUG(); + } + pg =3D mfn_to_page(oos[idx]); + if ( !(pg->count_info & PGC_shadowed_pt) ) + { + printk("%s: idx %x gmfn %lx not a pt (count %lx)\n", + __func__, idx, mfn_x(oos[idx]), pg->count_info); + BUG(); + } + if ( !(pg->shadow_flags & SHF_out_of_sync) ) + { + printk("%s: idx %x gmfn %lx not marked oos (flags %x)\n", + __func__, idx, mfn_x(oos[idx]), pg->shadow_flags); + BUG(); + } + if ( (pg->shadow_flags & SHF_page_type_mask & ~SHF_L1_ANY) ) + { + printk("%s: idx %x gmfn %lx shadowed as non-l1 (flags %x)\= n", + __func__, idx, mfn_x(oos[idx]), pg->shadow_flags); + BUG(); + } + } + } +} +#endif + +#if SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES +void oos_audit_hash_is_present(struct domain *d, mfn_t gmfn) +{ + int idx; + struct vcpu *v; + mfn_t *oos; + + ASSERT(mfn_is_out_of_sync(gmfn)); + + for_each_vcpu(d, v) + { + oos =3D v->arch.paging.shadow.oos; + idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; + if ( !mfn_eq(oos[idx], gmfn) ) + idx =3D (idx + 1) % SHADOW_OOS_PAGES; + + if ( mfn_eq(oos[idx], gmfn) ) + return; + } + + printk(XENLOG_ERR "gmfn %"PRI_mfn" marked OOS but not in hash table\n", + mfn_x(gmfn)); + BUG(); +} +#endif + +/* Update the shadow, but keep the page out of sync. */ +static inline void _sh_resync_l1(struct vcpu *v, mfn_t gmfn, mfn_t snpmfn) +{ + struct page_info *pg =3D mfn_to_page(gmfn); + + ASSERT(mfn_valid(gmfn)); + ASSERT(page_is_out_of_sync(pg)); + + /* Call out to the appropriate per-mode resyncing function */ + if ( pg->shadow_flags & SHF_L1_32 ) + SHADOW_INTERNAL_NAME(sh_resync_l1, 2)(v, gmfn, snpmfn); + else if ( pg->shadow_flags & SHF_L1_PAE ) + SHADOW_INTERNAL_NAME(sh_resync_l1, 3)(v, gmfn, snpmfn); + else if ( pg->shadow_flags & SHF_L1_64 ) + SHADOW_INTERNAL_NAME(sh_resync_l1, 4)(v, gmfn, snpmfn); +} + +static int sh_remove_write_access_from_sl1p(struct domain *d, mfn_t gmfn, + mfn_t smfn, unsigned long off) +{ + ASSERT(mfn_valid(smfn)); + ASSERT(mfn_valid(gmfn)); + + switch ( mfn_to_page(smfn)->u.sh.type ) + { + case SH_type_l1_32_shadow: + case SH_type_fl1_32_shadow: + return SHADOW_INTERNAL_NAME(sh_rm_write_access_from_sl1p, 2) + (d, gmfn, smfn, off); + + case SH_type_l1_pae_shadow: + case SH_type_fl1_pae_shadow: + return SHADOW_INTERNAL_NAME(sh_rm_write_access_from_sl1p, 3) + (d, gmfn, smfn, off); + + case SH_type_l1_64_shadow: + case SH_type_fl1_64_shadow: + return SHADOW_INTERNAL_NAME(sh_rm_write_access_from_sl1p, 4) + (d, gmfn, smfn, off); + + default: + return 0; + } +} + +/* + * Fixup arrays: We limit the maximum number of writable mappings to + * SHADOW_OOS_FIXUPS and store enough information to remove them + * quickly on resync. + */ + +static inline int oos_fixup_flush_gmfn(struct vcpu *v, mfn_t gmfn, + struct oos_fixup *fixup) +{ + struct domain *d =3D v->domain; + int i; + for ( i =3D 0; i < SHADOW_OOS_FIXUPS; i++ ) + { + if ( !mfn_eq(fixup->smfn[i], INVALID_MFN) ) + { + sh_remove_write_access_from_sl1p(d, gmfn, + fixup->smfn[i], + fixup->off[i]); + fixup->smfn[i] =3D INVALID_MFN; + } + } + + /* Always flush the TLBs. See comment on oos_fixup_add(). */ + return 1; +} + +void oos_fixup_add(struct domain *d, mfn_t gmfn, + mfn_t smfn, unsigned long off) +{ + int idx, next; + mfn_t *oos; + struct oos_fixup *oos_fixup; + struct vcpu *v; + + perfc_incr(shadow_oos_fixup_add); + + for_each_vcpu(d, v) + { + oos =3D v->arch.paging.shadow.oos; + oos_fixup =3D v->arch.paging.shadow.oos_fixup; + idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; + if ( !mfn_eq(oos[idx], gmfn) ) + idx =3D (idx + 1) % SHADOW_OOS_PAGES; + if ( mfn_eq(oos[idx], gmfn) ) + { + int i; + for ( i =3D 0; i < SHADOW_OOS_FIXUPS; i++ ) + { + if ( mfn_eq(oos_fixup[idx].smfn[i], smfn) && + (oos_fixup[idx].off[i] =3D=3D off) ) + return; + } + + next =3D oos_fixup[idx].next; + + if ( !mfn_eq(oos_fixup[idx].smfn[next], INVALID_MFN) ) + { + TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_OOS_FIXUP_EVICT); + + /* Reuse this slot and remove current writable mapping. */ + sh_remove_write_access_from_sl1p(d, gmfn, + oos_fixup[idx].smfn[next], + oos_fixup[idx].off[next]); + perfc_incr(shadow_oos_fixup_evict); + /* + * We should flush the TLBs now, because we removed a + * writable mapping, but since the shadow is already + * OOS we have no problem if another vcpu write to + * this page table. We just have to be very careful to + * *always* flush the tlbs on resync. + */ + } + + oos_fixup[idx].smfn[next] =3D smfn; + oos_fixup[idx].off[next] =3D off; + oos_fixup[idx].next =3D (next + 1) % SHADOW_OOS_FIXUPS; + + TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_OOS_FIXUP_ADD); + return; + } + } + + printk(XENLOG_ERR "gmfn %"PRI_mfn" was OOS but not in hash table\n", + mfn_x(gmfn)); + BUG(); +} + +static int oos_remove_write_access(struct vcpu *v, mfn_t gmfn, + struct oos_fixup *fixup) +{ + struct domain *d =3D v->domain; + int ftlb =3D 0; + + ftlb |=3D oos_fixup_flush_gmfn(v, gmfn, fixup); + + switch ( sh_remove_write_access(d, gmfn, 0, 0) ) + { + default: + case 0: + break; + + case 1: + ftlb |=3D 1; + break; + + case -1: + /* + * An unfindable writeable typecount has appeared, probably via a + * grant table entry: can't shoot the mapping, so try to unshadow + * the page. If that doesn't work either, the guest is granting + * his pagetables and must be killed after all. + * This will flush the tlb, so we can return with no worries. + */ + shadow_remove_all_shadows(d, gmfn); + return 1; + } + + if ( ftlb ) + guest_flush_tlb_mask(d, d->dirty_cpumask); + + return 0; +} + +static inline void trace_resync(int event, mfn_t gmfn) +{ + if ( tb_init_done ) + { + /* Convert gmfn to gfn */ + gfn_t gfn =3D mfn_to_gfn(current->domain, gmfn); + + __trace_var(event, 0/*!tsc*/, sizeof(gfn), &gfn); + } +} + +/* Pull all the entries on an out-of-sync page back into sync. */ +static void _sh_resync(struct vcpu *v, mfn_t gmfn, + struct oos_fixup *fixup, mfn_t snp) +{ + struct page_info *pg =3D mfn_to_page(gmfn); + + ASSERT(paging_locked_by_me(v->domain)); + ASSERT(mfn_is_out_of_sync(gmfn)); + /* Guest page must be shadowed *only* as L1 when out of sync. */ + ASSERT(!(mfn_to_page(gmfn)->shadow_flags & SHF_page_type_mask + & ~SHF_L1_ANY)); + ASSERT(!sh_page_has_multiple_shadows(mfn_to_page(gmfn))); + + SHADOW_PRINTK("%pv gmfn=3D%"PRI_mfn"\n", v, mfn_x(gmfn)); + + /* Need to pull write access so the page *stays* in sync. */ + if ( oos_remove_write_access(v, gmfn, fixup) ) + { + /* Page has been unshadowed. */ + return; + } + + /* No more writable mappings of this page, please */ + pg->shadow_flags &=3D ~SHF_oos_may_write; + + /* Update the shadows with current guest entries. */ + _sh_resync_l1(v, gmfn, snp); + + /* Now we know all the entries are synced, and will stay that way */ + pg->shadow_flags &=3D ~SHF_out_of_sync; + perfc_incr(shadow_resync); + trace_resync(TRC_SHADOW_RESYNC_FULL, gmfn); +} + +/* Add an MFN to the list of out-of-sync guest pagetables */ +static void oos_hash_add(struct vcpu *v, mfn_t gmfn) +{ + int i, idx, oidx, swap =3D 0; + mfn_t *oos =3D v->arch.paging.shadow.oos; + mfn_t *oos_snapshot =3D v->arch.paging.shadow.oos_snapshot; + struct oos_fixup *oos_fixup =3D v->arch.paging.shadow.oos_fixup; + struct oos_fixup fixup =3D { .next =3D 0 }; + + for ( i =3D 0; i < SHADOW_OOS_FIXUPS; i++ ) + fixup.smfn[i] =3D INVALID_MFN; + + idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; + oidx =3D idx; + + if ( !mfn_eq(oos[idx], INVALID_MFN) && + (mfn_x(oos[idx]) % SHADOW_OOS_PAGES) =3D=3D idx ) + { + /* Punt the current occupant into the next slot */ + SWAP(oos[idx], gmfn); + SWAP(oos_fixup[idx], fixup); + swap =3D 1; + idx =3D (idx + 1) % SHADOW_OOS_PAGES; + } + if ( !mfn_eq(oos[idx], INVALID_MFN) ) + { + /* Crush the current occupant. */ + _sh_resync(v, oos[idx], &oos_fixup[idx], oos_snapshot[idx]); + perfc_incr(shadow_unsync_evict); + } + oos[idx] =3D gmfn; + oos_fixup[idx] =3D fixup; + + if ( swap ) + SWAP(oos_snapshot[idx], oos_snapshot[oidx]); + + copy_domain_page(oos_snapshot[oidx], oos[oidx]); +} + +/* Remove an MFN from the list of out-of-sync guest pagetables */ +void oos_hash_remove(struct domain *d, mfn_t gmfn) +{ + int idx; + mfn_t *oos; + struct vcpu *v; + + SHADOW_PRINTK("d%d gmfn %lx\n", d->domain_id, mfn_x(gmfn)); + + for_each_vcpu(d, v) + { + oos =3D v->arch.paging.shadow.oos; + idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; + if ( !mfn_eq(oos[idx], gmfn) ) + idx =3D (idx + 1) % SHADOW_OOS_PAGES; + if ( mfn_eq(oos[idx], gmfn) ) + { + oos[idx] =3D INVALID_MFN; + return; + } + } + + printk(XENLOG_ERR "gmfn %"PRI_mfn" was OOS but not in hash table\n", + mfn_x(gmfn)); + BUG(); +} + +mfn_t oos_snapshot_lookup(struct domain *d, mfn_t gmfn) +{ + int idx; + mfn_t *oos; + mfn_t *oos_snapshot; + struct vcpu *v; + + for_each_vcpu(d, v) + { + oos =3D v->arch.paging.shadow.oos; + oos_snapshot =3D v->arch.paging.shadow.oos_snapshot; + idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; + if ( !mfn_eq(oos[idx], gmfn) ) + idx =3D (idx + 1) % SHADOW_OOS_PAGES; + if ( mfn_eq(oos[idx], gmfn) ) + { + return oos_snapshot[idx]; + } + } + + printk(XENLOG_ERR "gmfn %"PRI_mfn" was OOS but not in hash table\n", + mfn_x(gmfn)); + BUG(); +} + +/* Pull a single guest page back into sync */ +void sh_resync(struct domain *d, mfn_t gmfn) +{ + int idx; + mfn_t *oos; + mfn_t *oos_snapshot; + struct oos_fixup *oos_fixup; + struct vcpu *v; + + for_each_vcpu(d, v) + { + oos =3D v->arch.paging.shadow.oos; + oos_fixup =3D v->arch.paging.shadow.oos_fixup; + oos_snapshot =3D v->arch.paging.shadow.oos_snapshot; + idx =3D mfn_x(gmfn) % SHADOW_OOS_PAGES; + if ( !mfn_eq(oos[idx], gmfn) ) + idx =3D (idx + 1) % SHADOW_OOS_PAGES; + + if ( mfn_eq(oos[idx], gmfn) ) + { + _sh_resync(v, gmfn, &oos_fixup[idx], oos_snapshot[idx]); + oos[idx] =3D INVALID_MFN; + return; + } + } + + printk(XENLOG_ERR "gmfn %"PRI_mfn" was OOS but not in hash table\n", + mfn_x(gmfn)); + BUG(); +} + +/* + * Figure out whether it's definitely safe not to sync this l1 table, + * by making a call out to the mode in which that shadow was made. + */ +static int sh_skip_sync(struct vcpu *v, mfn_t gl1mfn) +{ + struct page_info *pg =3D mfn_to_page(gl1mfn); + + if ( pg->shadow_flags & SHF_L1_32 ) + return SHADOW_INTERNAL_NAME(sh_safe_not_to_sync, 2)(v, gl1mfn); + else if ( pg->shadow_flags & SHF_L1_PAE ) + return SHADOW_INTERNAL_NAME(sh_safe_not_to_sync, 3)(v, gl1mfn); + else if ( pg->shadow_flags & SHF_L1_64 ) + return SHADOW_INTERNAL_NAME(sh_safe_not_to_sync, 4)(v, gl1mfn); + + printk(XENLOG_ERR "gmfn %"PRI_mfn" was OOS but not shadowed as an l1\n= ", + mfn_x(gl1mfn)); + BUG(); +} + +/* + * Pull all out-of-sync pages back into sync. Pages brought out of sync + * on other vcpus are allowed to remain out of sync, but their contents + * will be made safe (TLB flush semantics); pages unsynced by this vcpu + * are brought back into sync and write-protected. If skip !=3D 0, we try + * to avoid resyncing at all if we think we can get away with it. + */ +void sh_resync_all(struct vcpu *v, int skip, int this, int others) +{ + int idx; + struct vcpu *other; + mfn_t *oos =3D v->arch.paging.shadow.oos; + mfn_t *oos_snapshot =3D v->arch.paging.shadow.oos_snapshot; + struct oos_fixup *oos_fixup =3D v->arch.paging.shadow.oos_fixup; + + SHADOW_PRINTK("%pv\n", v); + + ASSERT(paging_locked_by_me(v->domain)); + + if ( !this ) + goto resync_others; + + /* First: resync all of this vcpu's oos pages */ + for ( idx =3D 0; idx < SHADOW_OOS_PAGES; idx++ ) + if ( !mfn_eq(oos[idx], INVALID_MFN) ) + { + /* Write-protect and sync contents */ + _sh_resync(v, oos[idx], &oos_fixup[idx], oos_snapshot[idx]); + oos[idx] =3D INVALID_MFN; + } + + resync_others: + if ( !others ) + return; + + /* Second: make all *other* vcpus' oos pages safe. */ + for_each_vcpu(v->domain, other) + { + if ( v =3D=3D other ) + continue; + + oos =3D other->arch.paging.shadow.oos; + oos_fixup =3D other->arch.paging.shadow.oos_fixup; + oos_snapshot =3D other->arch.paging.shadow.oos_snapshot; + + for ( idx =3D 0; idx < SHADOW_OOS_PAGES; idx++ ) + { + if ( mfn_eq(oos[idx], INVALID_MFN) ) + continue; + + if ( skip ) + { + /* Update the shadows and leave the page OOS. */ + if ( sh_skip_sync(v, oos[idx]) ) + continue; + trace_resync(TRC_SHADOW_RESYNC_ONLY, oos[idx]); + _sh_resync_l1(other, oos[idx], oos_snapshot[idx]); + } + else + { + /* Write-protect and sync contents */ + _sh_resync(other, oos[idx], &oos_fixup[idx], oos_snapshot[= idx]); + oos[idx] =3D INVALID_MFN; + } + } + } +} + +/* + * Allow a shadowed page to go out of sync. Unsyncs are traced in + * multi.c:sh_page_fault() + */ +int sh_unsync(struct vcpu *v, mfn_t gmfn) +{ + struct page_info *pg; + + ASSERT(paging_locked_by_me(v->domain)); + + SHADOW_PRINTK("%pv gmfn=3D%"PRI_mfn"\n", v, mfn_x(gmfn)); + + pg =3D mfn_to_page(gmfn); + + /* + * Guest page must be shadowed *only* as L1 and *only* once when out + * of sync. Also, get out now if it's already out of sync. + * Also, can't safely unsync if some vcpus have paging disabled. + */ + if ( (pg->shadow_flags & + ((SHF_page_type_mask & ~SHF_L1_ANY) | SHF_out_of_sync)) || + sh_page_has_multiple_shadows(pg) || + !is_hvm_vcpu(v) || + !v->domain->arch.paging.shadow.oos_active ) + return 0; + + BUILD_BUG_ON(!(typeof(pg->shadow_flags))SHF_out_of_sync); + BUILD_BUG_ON(!(typeof(pg->shadow_flags))SHF_oos_may_write); + + pg->shadow_flags |=3D SHF_out_of_sync|SHF_oos_may_write; + oos_hash_add(v, gmfn); + perfc_incr(shadow_unsync); + TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_UNSYNC); + return 1; +} + +#endif /* (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) */ + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ --- a/xen/arch/x86/mm/shadow/private.h +++ b/xen/arch/x86/mm/shadow/private.h @@ -439,6 +439,7 @@ int sh_unsync(struct vcpu *v, mfn_t gmfn /* Pull an out-of-sync page back into sync. */ void sh_resync(struct domain *d, mfn_t gmfn); =20 +void oos_hash_remove(struct domain *d, mfn_t gmfn); void oos_fixup_add(struct domain *d, mfn_t gmfn, mfn_t smfn, unsigned long= off); =20 /* Pull all out-of-sync shadows back into sync. If skip !=3D 0, we try @@ -464,6 +465,7 @@ shadow_sync_other_vcpus(struct vcpu *v) sh_resync_all(v, 1 /* skip */, 0 /* this */, 1 /* others */); } =20 +void sh_oos_audit(struct domain *d); void oos_audit_hash_is_present(struct domain *d, mfn_t gmfn); mfn_t oos_snapshot_lookup(struct domain *d, mfn_t gmfn); From nobody Sat May 11 04:42:11 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=1684222851; cv=pass; d=zohomail.com; s=zohoarc; b=BPqibOh+nR+9b6rvUW1FRFzUDHn+9ypp3dGYiqGcS/H5NSmkM0mZBqlXL19TmEO6EvL9Xfyq4VFMF11sgRaXnnJijnzqo5XHj416cNPEBdhxxzTOtyC/ZOiOJhadJJKod7BMhwKyUOt1WDdEtc/QpxSB+6SuIYgjN45ZkIMJTa4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684222851; 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=fk5gtEXHOHX/0G/rLup+XQBTQcNEBbA/Wd3XareT6hc=; b=UYMPP9w7XmAO57UDEMVwm4FXSTnEBY0Nvlp8/t7Oso87wR2auMgJPSMuYQmoCWdW8cSitdxHX458gyhP8DuKN6FFi/0pwMxCS+UFUi9h91gDxorDq1tRE+w3p8hb0KcvLIOFkTud4zDDRq9reDmLtPZF2xEUvxnVRqIr7F8li+w= 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 1684222851694888.6079917097929; Tue, 16 May 2023 00:40:51 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.534992.832544 (Exim 4.92) (envelope-from ) id 1pypIK-00084P-7G; Tue, 16 May 2023 07:40:28 +0000 Received: by outflank-mailman (output) from mailman id 534992.832544; Tue, 16 May 2023 07:40:28 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypIK-00084I-47; Tue, 16 May 2023 07:40:28 +0000 Received: by outflank-mailman (input) for mailman id 534992; Tue, 16 May 2023 07:40:27 +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 1pypIJ-0006iO-Eu for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:40:27 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20611.outbound.protection.outlook.com [2a01:111:f400:7d00::611]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id ebc29790-f3bc-11ed-8611-37d641c3527e; Tue, 16 May 2023 09:40:25 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8988.eurprd04.prod.outlook.com (2603:10a6:20b:40b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Tue, 16 May 2023 07:40:24 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:40:24 +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: ebc29790-f3bc-11ed-8611-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lgva9R4Kz9hWh79Su6qQs4tm+oMIrB7+fNZAwXUFkwUc8JO0+Nfhfe7QF+W+/hIeL9iffCAd4QaAcAHQlMtUSw7AYU+Ai3J0KoobWwGVA6Yk0tMTidIhbwOkCws/8syagcpOl6Cj1rVJynZoD8xOszHtaeqropTf6fJJyj4oSzJJnXOJpuqhiO0Rs9nR8dkSbLL6XPhDciysEiI2ZEBj0fhVEmjU70IfKWvWGlRPyftPVhkRBMCybSbo7Iw4jEfma8PMwsl7Hbw3yH/BXhTlH3vpT9expLBRhief6SMW2+oU0n0j1PCysTq4piUKTPRmXJ0iGkWrXlVThUkBlLG0Zg== 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=fk5gtEXHOHX/0G/rLup+XQBTQcNEBbA/Wd3XareT6hc=; b=SOCMbqAis+NeL4/G9oAnkN3D9DEUdQjk3j3lwDdZaLpLWc2CkoulIJxtCtFXDRnGGHohnCNAMWtbFJkRYxSxeajjdWyyd3ujMYOpcjF7XYXAAustGDvOXBWPBsZbqent6TKM4DyQBvw1mP3/4lGFJtP6+VbQIEX71LoqsgEryP8UglTCehYYIjKB4lj3nPnuzrRjnVODZ0h1v9ODobNDGG+kmu7Goi3bCQex2PyjfbbZWLSmNReTbg0hjqkqZm+tfx+j2sgjM/yOPlAdmYng4YqKmfA6vVwByb8g/1StUjClcJTzlLpQUfiY9H+LY6TVc1deftOXXeowPsORHfRusg== 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=fk5gtEXHOHX/0G/rLup+XQBTQcNEBbA/Wd3XareT6hc=; b=C/OFq4a8l6NcyKQs5YiP+g7pfJuBJiiFPy259RZUSTXySfqNmnDHl+FGTQeh/YT8s0OuEQ1zMU+WvVr9Gwo0qBffFPbChzZgBZ8+hI/qP8UPyeQDUmDIkVF53FNEWux6OD7MGy036BMJUcL13d01bCSHe8kKNdjkS4k2QzwFdyd7uQAixsox6lG/ZKlRWC83Hh0KN24DOZxjDI3/m8/ls5+w7+fgN0GlhC6VX/5BPy45yLUz+yL18kn2c3bt3DG1R/dfMG6l49KAPg+PCAh8YTd54jt7i7st1A8ZBdP0Wq2zmHZnzrMb/2wuNyHcbGgo/CFC0g204zigCGS05gp27A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <3c05fb6c-f71e-1b86-6146-96f2b3f3c9ae@suse.com> Date: Tue, 16 May 2023 09:40:22 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 06/12] x86/shadow: restrict OOS allocation to when it's really needed 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0051.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:48::12) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8988:EE_ X-MS-Office365-Filtering-Correlation-Id: 79688538-1ef5-4160-2166-08db55e0cf19 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BIlFoF3U5vvIPQ1zMoBElYhKga5zqxP4ZsOC/fKG+NTuxJRvmDpmA5AWamLJN53NujMz/Q+d+8lIeyujDsicTQ1+SlE7Dgcje0MEu0Ui1WgEUIyQPzWepDr3DVASuiSUY/aIPemU5u0BtpDhEv2BhcSD64A84Lr67FEIz1jCjKsBpEIvRyUGxbBHTW3O8FavpD3+Rk7C+quiZlcH8VEf6AKLOaiYGHZ0O1sULAp+yADw0oSELdReFQjdZs+84dNEGaEotaBFF6hw/4RFAva+XyC3gZHNcNuaatmwZbW/pjLZEBfEoJaVqMYQ+HYY2usNZs46slL+B1piBHIprp3u/h7uWzwQuQRg3B2CprBNoBBuO43MM7bGKM7MrcVwRguUL7lr2O2FMauLyBCCFmGiCM93B+Zxl0DDUcZxwiP0O0R68PmUAu83Xctu/F4a+QbLd8yjuiJagmKD+61Tdxs6K4at8z9ZmWFAcVnUGeD2WAK0lNGkVLVpiAAIE71Of0RjawKFxu13rKck1pvgONzxnHag68H9oykwEd0SvNKtjVfEbAOL2xLmodIJzE3A/qkcqChTG0mJXqj2BqHiS37ct8U/nYdy1OfO3aRDnoFnmwZD6HqxMJI94XAqFXmMaymYSex5AM0/4satCWqEsi5wxQ== 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:(13230028)(376002)(346002)(366004)(136003)(39860400002)(396003)(451199021)(2906002)(316002)(6916009)(31686004)(66946007)(4326008)(8676002)(5660300002)(8936002)(4744005)(66556008)(66476007)(41300700001)(86362001)(2616005)(478600001)(54906003)(6486002)(36756003)(6506007)(186003)(31696002)(83380400001)(6512007)(26005)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eXZkclYxZVJYa2hNTXEyZFJCWXlvZWx3TmUxS3E2bHhvU3BnVk9MWEVyUlRq?= =?utf-8?B?NzNieHRkTy9DTkMyTUlId0Q1OEZLZ2Vlc0FLYzVtcWpKWTUwSzR5Q0FqTVhQ?= =?utf-8?B?OWpEQ1IvejhlZmFERW5CSWNEN0lEaU15bGtVSWE5MHVRVXdKRUxQVDRnL1Jy?= =?utf-8?B?SXMvU1lobUlSeGd4ZTV0YUR1b1Z3VCtTVGIwbDNvWVlTaXNVK0VYOHZoNFEr?= =?utf-8?B?S2RlYVI3NkJQWjlqMjgrd2pkN1lRcEVIYjE1NWcvK2VBTk5mdHN2b25MaFoy?= =?utf-8?B?YVdkL3AyUk80MlkyUnZsOW1JdEs3b3JyYXJNanZ5clJweE03Ky9hdmRGZ2pN?= =?utf-8?B?RTBUazlOdEFoZWd1TmFTYW9QVUwwbFRsNk51aEx5NG9GeVFPVFl5U0UyalR4?= =?utf-8?B?T09JTFpPY1RzdFlxTC9ObXFzS0hEWTZWeWdpeGxHM2NuUHdIRjNLWFUxZHdC?= =?utf-8?B?L3Y5NXB0NXJyTDNaRDhMYVZadHRMd3VDdmNmaHQrTVl2RTN6MmtSQ1RuUU9s?= =?utf-8?B?REU4bXBJM0tjc3BFeHY1Z2FIVFVnNlNPMzNsQTYrNDlMeW1KV0Jld1k1Ympk?= =?utf-8?B?alpXR3A3OFdZakRlVjZxTUJUWUFXemxNM2JaMkhvVzhCSVdPenF3dTJUNTNU?= =?utf-8?B?SngyTENoamJFZGVYdGVIMHhmcWt4UVVUR2R1d2xCejVub2RlS0ZIOTlrcS9W?= =?utf-8?B?UkJFaExzV2hrMEVrK3BZeHlOS215b3FscDhTdnVlRlZrZ2txRzYwcHM1NFRa?= =?utf-8?B?QldmVEpBczhlY3pEaG9pRkdYdGpPcUxkQVd0QWR2VUNsV0FLU2F4MDZCZnlU?= =?utf-8?B?aTNUUGhVSnBkZW1pWlIzcHV1dFhwUDhiamI2WDIzNU5FYnlheFBhb2JQRW5J?= =?utf-8?B?NDJCSVNON25XdmxEUWhIdkNLT0VTUW9TVHd0blZhLzJGSDg1M0ltcHJ1VDMx?= =?utf-8?B?bnExVHM0M1Bsd05ZWVlFM254OUx0VjFScWhSMjBqTWxnbDFJVFJ3dG9HK3oy?= =?utf-8?B?WjZUMDJiUWowWEZUTUpuWWZOR2cwNXQ5bU1adkdOemF6ZFh2Y1VSa2pUUitK?= =?utf-8?B?ajNLalBwdkJUY1FVQ2UwSDlVMXRvc3VtU2VKNW80SEhKQkZsa0pEbjA4NFoz?= =?utf-8?B?SWZYS04za3llM3haNFJ5NmltaEZTV2NQOGd6YWd2NW80YkFBRldiVXJSa25O?= =?utf-8?B?RkQvS2tUMkZBN1JBMFM2RHhJTEgveDlUQkFmZ3k0TTkxSXd5VDBhL2lvUHha?= =?utf-8?B?dW5YTVJlV1FNU0dGRWxVVnBjNVRQTmppSUdmb21YWnR0bFo1VmFGSUlCNllS?= =?utf-8?B?b2d2eE5BeHgwQUovN1c1MitTN20zZk9tZDFwU2NVaFcyQjd1WTBQS1dVQThY?= =?utf-8?B?TUk5Wm5mWkNSekkxam1JTXhrQ2x6MjF2VU81c0RzaC9zclhZQU9YbE9qS2d2?= =?utf-8?B?UEVRTDRoQmk4QkNLRXExdVhNZUtUOVZNQXN6R0N1WG5pWHlER0E0SFN3Zjli?= =?utf-8?B?VUFhMWs4U3hDd1JEMzYxSVFLak5YbUNFQi81VjIrc1FlRnRuQ3hwOTV4WDBo?= =?utf-8?B?RVhqWm0vd3k2SjMzRWpkYTBQSWRrRVhJWkhCdGl2Y3l5cmo4TDFEWlR0TWls?= =?utf-8?B?SnhmOCt6N2ZEenpYQ21zZTFrd3RxRkxFNzJYWmI4RTJLeHcvSVFrMjhRd0o4?= =?utf-8?B?Q2ZhTnllbjRqdUJ0TzNVdzhZaTR5YzQ3ZjZNaTJOTEpqMnUvWmMzSHF5R3Zj?= =?utf-8?B?dHZyQjFBN2dGUEc4emsyOG5ySWVkcTBQY3cvNFVwZkhrV281QXYxU0wrV1BK?= =?utf-8?B?d28zaHhIYngwWWFoY3k1MlV0SWpwUWRSYWIrZnBqNFBmM2dMQ1RvT2JVQWEy?= =?utf-8?B?V2ZpcVBLcUhScE9MVDdaNC9xWUttMDdqaGlpSGZWd1k2UzRvbERLTmFoanN3?= =?utf-8?B?ZVFQK3cvN2M0NC9veXY1UnNmb3ZqQjJEUEZ4NHdzb1l5T2RFRXk2ekxOeFhl?= =?utf-8?B?N0d0TnQ1ano1cy9JQlcwZ2ZRVWNZSmZmV3BReW5FWHFkN3VpdjhvaWdab0ps?= =?utf-8?B?ejVzb3E2UEFlUVVLRU00SUJzaEVvUk81elJiSVJacUhWeTJIQUlSUzBDMGFQ?= =?utf-8?Q?pBPqQY6RSP0t9a43P7BpmzuQN?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79688538-1ef5-4160-2166-08db55e0cf19 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:40:23.9683 (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: EWFBATjjxIMaX0RjuwXKakxAVcoHyhwHDSQmItUAl6PEISR8JkNwMl+vlZyCj7MeLKmNGn9dhLwdV+sajJ1Qzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8988 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684222852038100001 Content-Type: text/plain; charset="utf-8" PV domains won't use it, and even HVM ones won't when OOS is turned off for them. There's therefore no point in putting extra pressure on the (limited) pool of memory. While there also zap the sh_type_to_size[] entry when OOS is disabled altogether. Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- v3: New. --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -61,7 +61,9 @@ const uint8_t sh_type_to_size[] =3D { [SH_type_l4_64_shadow] =3D 1, [SH_type_p2m_table] =3D 1, [SH_type_monitor_table] =3D 1, +#if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) [SH_type_oos_snapshot] =3D 1, +#endif }; #endif /* CONFIG_HVM */ =20 @@ -1771,7 +1773,8 @@ static void sh_update_paging_modes(struc #endif /* (SHADOW_OPTIMIZATIONS & SHOPT_VIRTUAL_TLB) */ =20 #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) - if ( mfn_eq(v->arch.paging.shadow.oos_snapshot[0], INVALID_MFN) ) + if ( !(d->options & XEN_DOMCTL_CDF_oos_off) && + mfn_eq(v->arch.paging.shadow.oos_snapshot[0], INVALID_MFN) ) { int i; From nobody Sat May 11 04:42:11 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=1684222877; cv=pass; d=zohomail.com; s=zohoarc; b=f8pAcznmyc0EkZaRc7OMBqFbibSLsb8cqVWZew7tJci7kiaq+pcbSs/SpkKhRbx6F2tn4H1HFyNmF1V14iNlTlIMvy8eZkN0J5T9Y7s+Eso5AVuiSJyyB3KDXD9x2xTXE+tY8Sg32a2Kik4Kkjq3v2FJgecQXtHAIBVppJFbzBc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684222877; 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=H9Nh4XX47pvzSkaQ+Ro93eqswTOe4k38U8vTCnXpMhA=; b=Y+WI4Mtp/ofSpZbZqrb9ywUnFhqyWhYcb9Zyy7KW80HYT8+XkznscwbBRKFWK8ikJt27Zm4N67yoj1pgDaSZJB6fjq9w+BC3+wbb6ZCm5SN/yzcPG9yg6+IFLz2PqXMKOZ4n+adUz+h5bzGvR9xQNlLiGcp3614Rr7u5BbgAsow= 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 168422287758341.36716498146677; Tue, 16 May 2023 00:41:17 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.535000.832554 (Exim 4.92) (envelope-from ) id 1pypIm-0000KU-GH; Tue, 16 May 2023 07:40:56 +0000 Received: by outflank-mailman (output) from mailman id 535000.832554; Tue, 16 May 2023 07:40:56 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypIm-0000KN-DX; Tue, 16 May 2023 07:40:56 +0000 Received: by outflank-mailman (input) for mailman id 535000; Tue, 16 May 2023 07:40:55 +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 1pypIl-0006iO-GK for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:40:55 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2060c.outbound.protection.outlook.com [2a01:111:f400:7d00::60c]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id fca8eebd-f3bc-11ed-8611-37d641c3527e; Tue, 16 May 2023 09:40:54 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8988.eurprd04.prod.outlook.com (2603:10a6:20b:40b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Tue, 16 May 2023 07:40:52 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:40:52 +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: fca8eebd-f3bc-11ed-8611-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LESN9Lz+A77zqz/xxXRoqlGtXA+cx+68kKUgkcioU7YfAEVQ3KzAyAw4InYh4Xt9wPIPn2BcLhyx1p4ghOoH40DEXYtJjM2OkJcQmdYiECF1yrzC1YFaS99SlUDnYiM32D+KAPKLIfS/pYCUPgcn+D0zGUzJtbH6YV1SCYu8mPoOETYdaPZHn0hWGvDnAJKDBLDBer7w2YCdtjbwEyUqBDEh8OvsqoWCpl180rVrpoQT8MJqimIteTzKnMdQicb+dhkIcw2KqXF5ESq0rPxLR28wMf4Etx1xojmLk88P0rUuGNOmMHTB7/+mtte9o3KEB4welbvD3UCBlHRrZL1JiQ== 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=H9Nh4XX47pvzSkaQ+Ro93eqswTOe4k38U8vTCnXpMhA=; b=NdiUpbXW9NKtSDqhLs32Z2wHbUDmcJC7x9Kf3O4Q5mRuH04o633QBggfD6i3T76FvLyo99jNlV8NhW696Ft5izNKDwjCpFVbbHwnwbxJ5xWvjRjuDn8R9eC4NiNB9MT7cSPI8+aoFUF/pL3CZRp1UVFYkMCB+yTc4v7kWVryvneLGnnsTXKutDFT1XkxVCrNcaTEz6fW2/3EB+dNxSzG5TNYUTEJfzKWxeeod9JZOPxgaCDj51oEzbiMB1gDKnANVcTY/iFmP9PRv/nbDYggLtpS8F/UEccOWw4K5M+kJG2Yc+9HF9Ll4SE4RYnizc97jC4img3w6wGW0mSJwCGysw== 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=H9Nh4XX47pvzSkaQ+Ro93eqswTOe4k38U8vTCnXpMhA=; b=dqmBO3YSjhye44QfYOimkqdmnBFyj7sPSTYje0JJ/uwg6LCueoPrZD/N5gMsgEeUuDOWttOTltJmPH/MOByGUnvmxqMg6hbpVpk1Av6zZDQpaPMzNPBcqSh2rBGNRx4tB5CpZ3kyDW3TpaFQAv3zfcBgNy0wNiqRGTvq80vzlgRqpTRO46hiHA2VSbynsg0VqdPfAmCzMBBCYuzaabgxeyq2kPUhwzkpYFGwpmPikJPQFQlDYkN2flOkwShlpXniLQuSerjDbjmSBRjxjewf8mzM4GBNbZAcKCv3jZdovnYgiMtpn0X2D7DRTYaB0owPg0WEPr39MLurdypOJ8F5Vg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <834a38d1-6917-7aa8-c560-0c943abb44c5@suse.com> Date: Tue, 16 May 2023 09:40:50 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 07/12] x86/shadow: OOS doesn't track VAs anymore 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0192.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ab::11) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8988:EE_ X-MS-Office365-Filtering-Correlation-Id: e3692e86-6cdd-47fb-13c5-08db55e0e00c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kBRLAhLVuxWiGPamyyPsvLdrFJIEKwG9T+zZAXL7UHq5rw91mxS7STYEKzV0hZVq4WIowZPmr8GgwPvpI0nkG1morDCkVzPA4WT9q6NZSlYwaLd2DTcCdNn76uxqW6gXiJvU03VdCXtqiIk5UOQl+wBvoi45WjOZZ5n/Ikbs4MKTww9mH28Gxt+9RcC7io2nIEkem7ZhvgQHwROLRlgJsTiVFikxjLLVIliZ0/IHQNltEkjSsdoWDvmhI9EzssYWcOUoUCl87ftaI2HC8mYUjgc7HMFy8BMZO2ugui+LB1ktPnsF/yN4ubtOyRtOMiqDkIiuE6Kb1NzdfRCHfXwvcoJJmlTMt9d5ncjZ97G6FM7/YsTKwdi9H6xLk+SRURc8FBgjak7PmXtrvPt2D+3mbazdIYz8ipJYosKMu2apgv5FMEMKr8Qtf1YU+TGh1GoLOpnfb3OBTbCSH33BMYdYIMqUIKRXyDxv+F2ynUYM4wJ/6bzXbZ6eJrElKeTIPisznT6ilCgaonqZUHu7oJr+gg42noJOEAy9yNQS/gQoxr9qTt+oRU4DiSYbo5D4zqI7bqmMJxui2+ej/xJh2l40b2ERC/aTPDBY0JBNQwGPvMCshAKrjWUOKPm7W3paQdzmTdeVQY574jg2Tp5xCgq1qw== 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:(13230028)(376002)(346002)(366004)(136003)(39860400002)(396003)(451199021)(2906002)(316002)(6916009)(31686004)(66946007)(4326008)(8676002)(5660300002)(8936002)(66556008)(66476007)(41300700001)(86362001)(2616005)(478600001)(54906003)(6486002)(36756003)(6506007)(186003)(31696002)(83380400001)(6512007)(26005)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZVFnUXJQZG1Zb0JPM1JXYnJ6a0lhdlVjZ2pwSXlKWXVDcXppK2ZKK2FucVVZ?= =?utf-8?B?Si83V01WV0M2VTFqRFkzTzN6UXpYV2Zab090UUt1VmFIK3hxYWRqSHAzRUJO?= =?utf-8?B?aW4zeE5OR29UeEtpcFJEK1E2OWpiaHQ4Y2NXQUY2VXUyQ0JwR1B0NjBJcDd4?= =?utf-8?B?TGN1cno3U0c0T0F6NVgyUnl1YzJ6b0Y3emUyZEJlcDZPK0lZZkRCZWJlbVNK?= =?utf-8?B?aE1KY0xkMmVLNS9Xc0VJUXVYUG1FSUJRNmZSa3JLamQ0MW4wRC9RNmttN1Zh?= =?utf-8?B?c1RtVE45UkxqbGNTZkhIVFJ3WG5tVUVtMmgzN2t6RThlczB0QUlyQnR6UEU4?= =?utf-8?B?Ym5NTjJnbVZYaVUrKy9jNTNvcVQ4MkcrM2pndjA1QWM5MWJ5WHFmWWVNYVN2?= =?utf-8?B?M0pDV3E1UE5NODhWWDk4Q25kRDY4TC8rTWI1L052b292VEpRa09nR1B4c0F3?= =?utf-8?B?dUpLeTZWdGhwTWp3NC80WTRucGlSNUxkNEt1MlBidHM1MHNtUnFudXlIUkds?= =?utf-8?B?ZDN4ZTZNbzYxeW9KSjR3cGlick1rS2VSNVoydXk2V08wTkRqNkI0a2NZODBt?= =?utf-8?B?QS9HNFNyZDJVZnBFT1BLa2xpTG4zaVY0bGdOZW9ZQk10eWVPVmpEcFpGRlVG?= =?utf-8?B?Q2FDc2xrbG1GVThEeGVkaU9RcER3Rk9mVTNuSWFYVU9vbDNtdkJYQmZRcXNQ?= =?utf-8?B?WHZMNEsrWVRWeHk5UWNUS1UyZEJ5enFpT2FRcm9FSG9rODlZMjd2elBJeThx?= =?utf-8?B?ODhrQjE2Nm5UNFBDMFBjNy9UQ2JBWmE3UWF4YzBFbmFWa1ZFTExOTUN3R3hK?= =?utf-8?B?QjFNdllWR1hERWc5N2JtcVl4NXc0Mkc2MTNLYWRENjgvK3YyZXpRenMrS1Zy?= =?utf-8?B?bDhlc0FZa3pVQi9neWQ4VzRjWVNWZkJJcVRnUE5YYnRDTEc1aTFXajd0OHRh?= =?utf-8?B?eGNJTUI4WEdBbEFmNnVNUGRCeGpSZEd2L3dZSkQ2eDRpVEdrTk1tSFRUajk1?= =?utf-8?B?Yllqa1hGY0NnSXlTSmd6ZHJTcWdyaTY0ZzJybFd4YlgwUkltb0JPQllYSmRs?= =?utf-8?B?RWRDNHpKQkxkY1RJR21TQmhVbkJDdDFrOWU5d1F1MnFLNnp1dlRSS1RKYUlm?= =?utf-8?B?NVc0Tk1pdkZ5VHNSREdlQnN1SXJFM2JnTTd0cm5qb3VFenk3VEpMTGk5TnJJ?= =?utf-8?B?NVF5M1lNNGxoZmZIRVRQTGl3RWxZamdiekNHVCsyWnpocWJkOEZXdjB1cUNC?= =?utf-8?B?WWwxMGdrcFVBWFN5R1ZYcUJqY2crMEdlZVA5ZnVzd01TYVF3NmlFby8vS09U?= =?utf-8?B?T0gvZng3UzhPOEtBN1Q3alV3R0Z4cTR1U0Q2TDVaM3IvUDYrNlZpRnRoR3VN?= =?utf-8?B?QXFiNTNIQUFhTHVLYXA3ME5Hbm9TazFzNGxJNWF6cDREL3NJTGp4Q1RZd0ly?= =?utf-8?B?ZWFSeXlKQlBCMjBaS2JlcTJoMS9Zb3ErLzhzdzBnM2U5ejRmRWRsVWxpRGhu?= =?utf-8?B?NUtlZnhOek9xeVM0VUNwNFhMVGp5a2dncWJXeCtsNGs1dGI2dW52NWhYd1VI?= =?utf-8?B?WlVxbzFJWStrTUlyY3d3ZzJBSHFMT293Q2M1T2FXQXpwMHFwZHRCLzJ0WDBD?= =?utf-8?B?bE9CTVRsclFQd0QxWnhPMllpMUlYZzJ6Smp6Kzl6VjZKNzc3TFE3YTl3UTBr?= =?utf-8?B?K3RjbEhHYnp5S3Ivb0NwaURLUjBmMjFJTndMVHc4cCsyditYaHB5NkZJa0Jm?= =?utf-8?B?WlRhUFRYOWNOWEswZmxuU2xvUENoK3ZYMEFVb2krajVPaWhVWE4zREplNkNo?= =?utf-8?B?NWRBb25wQUFWQ28rN3hSTXZ5VmFXNGRkcHlRWWVCTHNPSENRUW1DbWozOTBI?= =?utf-8?B?TUp0MDhlNHlZTFd4OTlBMkhDNnZESlZrZDg3VTlYNGthWlppVUJrR2wvWXdl?= =?utf-8?B?T3duS3FoUVB1QmxRVWlHV1loMmNKYTRuN2JiUThJbEcrUnJyOWk0bDR4a1Bl?= =?utf-8?B?UVB4eE5RQ2dpem1SNVo0WS9PZDFTajhxSXlOWHdXTHFhOGh5QmhVcEZyOGtZ?= =?utf-8?B?TVdNT3ZnVjhGQ3JmZGlmYlhtbVMrZHFuckRRT0g2VTZ1TzZ0eU91ck9wQklJ?= =?utf-8?Q?1m/GhupuflVZfa9JilZ7Jg4ll?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3692e86-6cdd-47fb-13c5-08db55e0e00c X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:40:52.4220 (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: 52kfRysJJE1vGN75oFRRPRh8C/BKcH4z095LQAhTmzEP5xSacf89pqj09bj87rmm5XMgt88atD9lIbYDwH8LeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8988 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684222879643100001 Content-Type: text/plain; charset="utf-8" The tracking lasted only for about two weeks, but the related comment parts were never purged. Fixes: 50b74f55e0c0 ("OOS cleanup: Fixup arrays instead of fixup tables") Signed-off-by: Jan Beulich Acked-by: Roger Pau Monn=C3=A9 --- I'm heavily inclined to fold this into "x86/shadow: move OOS functions to their own file". This largely removes the justification for the per-vCPU hash. Is there any other reason to name there in exchange? --- v3: New. --- a/xen/arch/x86/mm/shadow/oos.c +++ b/xen/arch/x86/mm/shadow/oos.c @@ -51,13 +51,10 @@ * * Currently out-of-sync pages are listed in a simple open-addressed * hash table with a second chance (must resist temptation to radically - * over-engineer hash tables...) The virtual address of the access - * which caused us to unsync the page is also kept in the hash table, as - * a hint for finding the writable mappings later. + * over-engineer hash tables...). * * We keep a hash per vcpu, because we want as much as possible to do - * the re-sync on the save vcpu we did the unsync on, so the VA hint - * will be valid. + * the re-sync on the same vcpu we did the unsync on. */ =20 #if SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES_FULL From nobody Sat May 11 04:42:11 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=1684222895; cv=pass; d=zohomail.com; s=zohoarc; b=EAT/Fu9hZWUbKd1/WSlUblQCMbYRGHOZ46J/h5cHyq6ct4r2v/PftRTjU44b8iD8nkEFKcoie/ATlEhja08cgCvmQfWcFjPMsT4Hmoar2eEhuVefNxvkto9v6E4/lgaHxDlaiN9j2+oE7wXUfEdA2KGcUDagEUNBX48MSS2NwTM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684222895; 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=A5NXxvDRQXD0WHTV28k08tC6LtvezCvIIN1lLE6iH/8=; b=l2zsady+eEuALXjfhGnSTo2DofUidRphwYsTDvUi0ehNBS2jJ+u7cWZ6WsWuCf9m8XMB/PcV1/YFGmAexWnrLd3IRJRzTA+4UF7nTI04AeyLfT+TTicVMZ6mS+/E46T64Naepxqp4ohS5RFy7Dp5S6wKoNFG99oD5X2YfJs/39M= 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 1684222895629857.0544650641539; Tue, 16 May 2023 00:41:35 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.535001.832563 (Exim 4.92) (envelope-from ) id 1pypJ5-0000o6-No; Tue, 16 May 2023 07:41:15 +0000 Received: by outflank-mailman (output) from mailman id 535001.832563; Tue, 16 May 2023 07:41:15 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypJ5-0000nz-L4; Tue, 16 May 2023 07:41:15 +0000 Received: by outflank-mailman (input) for mailman id 535001; Tue, 16 May 2023 07:41:13 +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 1pypJ3-0000ks-S2 for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:41:13 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20607.outbound.protection.outlook.com [2a01:111:f400:7d00::607]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 07e1bfd7-f3bd-11ed-b229-6b7b168915f2; Tue, 16 May 2023 09:41:12 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8988.eurprd04.prod.outlook.com (2603:10a6:20b:40b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Tue, 16 May 2023 07:41:11 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:41:11 +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: 07e1bfd7-f3bd-11ed-b229-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EAgr2drEjkyUIiw7JOxAEKj0NBHR7FCPysbM2YGXYIzwvB4ONBdKWpY1dODvU45BR1wqB8NjMQIwvjhtMU1NMbE7mdGwQOBMPisoTQvsVURvCEHW0cLMgIwqkGNToUINyonOgDPaGwRDOqNK9q/YaF+DrY/jqXAetpFb6COvUyubLvfXUpMI1yvM+CaHvcTJwYp5U84dS/kLlppOi0pi+M+ffeWf6SUwwL5qT7wEKuLEs4Yzi8UGClIqiP2kGR2hNUY+dZXQXXZmUix+NF9xv0ftm23VVYczwLpS+IkULZb7Q0md9zM4GC1vSlvp+5SBgX55ul0FCeOL/KAvSFV8tA== 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=A5NXxvDRQXD0WHTV28k08tC6LtvezCvIIN1lLE6iH/8=; b=IQdVFRQGPSg/8liKRqJZuGoaziYlooUgIPUi4VNU0pBCMdW+Z/Q4hzRQ9eHWc0bhYe+/VDxUW5VEzadPyeKX/I4h3+ptHX8shUodzq1I9eb2TWz5Cavs+GTn2aPjTqveO5Jpb8sAMf4N3iIUxh/GXRv2tc0X30YhQEdkv+JcxDGTu05gtFAn0p9iu+LmG8WJypcaO1lwzU/VvF4s8ix4CkMpr5KMdCO6tJfYcyeOvD/RY+DWytVztc8+XrBLtivSZKVcnycCw/lLjm843CeIBvkzQcap2++qJsazzrdRT0nr8Ezej9Ogn+FVuP2aipd71FOo6PQhgEgmOHmX1m672w== 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=A5NXxvDRQXD0WHTV28k08tC6LtvezCvIIN1lLE6iH/8=; b=13v2vaeZsUBg1ICCqZNPmIG5o7bpRSAEgCob9EWqyq/6kwduTbVwBmVjj+BLQUaJe/dLA//c2QRYLpyAVpCLvXa4dT+QEKEcMFkKIOVEQoKRxxOMlDmReXJ8CUaaSYXBm4ulKWbrQCMEdfTmLxxP+gZeeftAHs+R4TXFC2Rm4nuxh5G5pzSEMFgEkODnT8ay+Fh05WPDf5F90tZ4VTYfYkjBf3rjLJ+XE6MFwe5ULf651xAR/dead6220icpFQ51lQ8y7Qrq8QilgQHCqeCHgAfu79ftVNfDSWdmdhKmn/oD2HutH3iwPcOGRP5rDQ1yQR7Ww+nSQGI/KSs3Nm86nw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Tue, 16 May 2023 09:41:10 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 08/12] x86/shadow: sh_rm_write_access_from_sl1p() is HVM-only 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0068.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9a::12) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8988:EE_ X-MS-Office365-Filtering-Correlation-Id: c9ad2052-9393-46c3-e628-08db55e0eb95 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /Eov954o4miSyvxE9UQie6Q+eEJpkKJMGeqVClJ5F3ch1ndk1YbKVUGfpoew2E0LCFUFjHT57hDUi/RcM8eajBG8rqqwtFiHnw1Pg+UIr4sTKuwVyoKVRlbezgNW4QWHes3DesRrAfvX3KnfuXZ2B4Ic+ij5G6tYWs0kW8XdNTHHeO2cdrECU1B3Rn/RHcxMzSk1MBG+ZBSloPc3dWT/d3wKJeIYb+DBrVg458xHFAJew2HrzX0RDArmGWNiIlb8FigFGKMqHuvikkrphtMPjittV3k569GGD08Rp/b0eaz+r3jt4J//6VSasUE83N6xTglNMofizpwq0Z8wcSOSSCtYgGQyyAH5ngiJAqfJ4BSW5rAxGeDMGLt6BaniM7bj7u8J4ovEE7+rkDJXUwCCjrULjZrnjndD9jmEZZ+oIHdcGJ4nR13FzMY7FAaJ0ZGK/efeQ6ORFOljeE6Pb0sf3pKvMmRjp7gPmdH7zoamczJaM47I3SogKjIvDRejSuXt/rsxWMydnoIJU4hQXJnq8dsuLaX1p+Ke4jArHueDg+0ygfvND3CNCjbr8GX2NSHCiKF04kCF75B8WXYpIODo9SKoXLQFl8BOELgGjV3jdp/kESu8CibNuH/gnhct1jUh6V2/ySiLF4WE3+0G0/kJLIWurid3L6YmE7V2X6eVcQpBK7rLls830Qq5xUSNGsl6 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:(13230028)(376002)(346002)(366004)(136003)(39860400002)(396003)(451199021)(2906002)(316002)(6916009)(31686004)(66946007)(4326008)(8676002)(5660300002)(8936002)(66556008)(66476007)(41300700001)(86362001)(2616005)(478600001)(54906003)(6486002)(36756003)(6506007)(186003)(31696002)(83380400001)(6512007)(26005)(38100700002)(45980500001)(43740500002)(357404004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bzhhcjN6Q2puN0ZZY0k4TUlsZUpaNTdMc3owc0RXcFE3Skw1OE5venJPNXIv?= =?utf-8?B?cWY3MGFYTnB4ZEZPTEZCTFFuZzVob2FsV1MwVEg2MGVxUDdwU29oY3RMS242?= =?utf-8?B?RkZvYlVCaExFNnpGZ1B6Q3lsUTdIWmVCODBjZzJoRmR3QVc1M0hxYmM3U0VP?= =?utf-8?B?cFUyKzZ5bFpBS214U0lVU0krZGV3V2RhalJpMWR0TEVFdzZUc2szYWo5TVVW?= =?utf-8?B?UUFJRXMxTXB1aVMwTUx2aHZkSXV2MXJXaXRCaU5qUEozdXlnK1FrRkhaN0Qv?= =?utf-8?B?YkIvbmxjZ0ZHZG9UbDlPVEdOMFp3QXp0OWV6NHBWVVczRXpIUFVlVVZoVXBK?= =?utf-8?B?MDdJaUFacENSK1Bici85VkU0azV6MVdwNU9CdmJDbVB4QnlwOHVnL1U3UGRP?= =?utf-8?B?dC8vZXRhMXAzcWsyZlg3cXBmbDUrZkV1bkhtTXFuQzRmeXV5L2NTQS90QVVB?= =?utf-8?B?TXBDWW9QeGdqT2c0aHgvZVBlZmp0cWQwTmNWN3NqV1NNMlk3TGFvUWx3UWZZ?= =?utf-8?B?YWRUcXNiZVRqUFJuZllDcFdIdkpjOHdCWnA1V0REZ1lFN3F1eWpqY1poUy9Y?= =?utf-8?B?Uk1jNE9zenpQYlhpeGtXWjRmOUpRQTdRUWNnWnBBVzkydlVQRHU4UExCb1Bw?= =?utf-8?B?Ky8wbmZhOG44b1NxY3ZSRmNudE5GMFgxMU5qQkVrazVhZzluYUVJbkZxSlU3?= =?utf-8?B?RzJmOHJtNzhTZ0haMlRrelh0TGJENnFBeUZJOHViRnRDSVJQSEpIRm1jcm9I?= =?utf-8?B?aFV1SFhqcVBTZ0dyK2ZBT1R0TVhjOHZ5SkZUQVB1cW1iVVJ2MFdIOStTeldr?= =?utf-8?B?cnh1TEVSOWRTeW1wNWJwelRJWkJGVDRacnFoOWl5QzU5cGJEcVFnanFpeWJ3?= =?utf-8?B?bnc1OFYzd040NTdXQkpJanVzOU5PUWM4VXZxYllNb21MeDlPSC9yK0hmbVp6?= =?utf-8?B?bis4YlJ0SUdpZXg3TGJHZk9kbGhSNTlSaEJYVzV5MlhzZzdETjhVdjhyZVhK?= =?utf-8?B?dytSODFVeU5jQUZQVU82M1ptTmkwcFdTY2lRWkUrM25tYnNTOXpJQ3BRazVL?= =?utf-8?B?SnlUaVlKV0dwV1BhYjlySXZ0ZGVlcUJSVU1PaDB4bzd3RnV2cWZaZlJ4V3JV?= =?utf-8?B?YVpLZ0twYVFZbXNkWTVtWEE4eVgzaVBYeUZEWk0yZVEwWFlRVjg0QWxZNEFT?= =?utf-8?B?aENGY29jblhyVlpYbE9DMVJibFB3N3hGdE9RcU1QZlhaNnhYRXJ1cGNMbjc2?= =?utf-8?B?V21FOWRxV24zWHJwWnl2WThOTzBXVUVUUjVmS0FDays1NWhHd1RFNDhOSVJx?= =?utf-8?B?TEVLbWU5cHBRekwxL0U0K1ZGU200cm5NcU54bGp5eUgyNGRTYm9kUmpnaHV2?= =?utf-8?B?R1BodmtnVDRWRTU5TklwZFhMYk9HMVVnRnpIbjNFUjkvUGwxbnZpc28waXA2?= =?utf-8?B?S1BJczdqUnJuaElYbXk2cnRWTm94Z0JjVDBJME1CUlVzM3IzZEtNa3ZpdUhH?= =?utf-8?B?aThpT2R3cjNaMFNQSkozekc5c0xGOVlURkpWb054bytHMmVDR2F6dm14NGtG?= =?utf-8?B?TDdydDlpSkJ5aDZybzluSms0aG9YMlZsaElwaTNSVmZFZ3ZJSGpTUTNUTTRN?= =?utf-8?B?cEl3V1gyQzlaQlE3aTVXZ1hnZWxvS3ZFbnBHcE9wOW1jVFh2bUQ5eUdVTUhP?= =?utf-8?B?b2xYYTFiRmo0MkVGYkQ0ZzJTYUZTdit3UmRKMVZkTlQ3VWZUMDlXTElCT25W?= =?utf-8?B?YUpub0lCL21jZXFlc1pibHJBT1ZqZks2R25hK1dqeGczbVBVZjhoRkVtVzFC?= =?utf-8?B?T0UzaTVxWVp0VzhxSHBvdW5VRW9saTJDYXpIQXVlR2UrZWlEMmRJRlVnNDIy?= =?utf-8?B?RTFjMDdXS2tiUWdFQWVYaGtDdHE1WDVZSUY0SHB5MUxTcUl0WWJWby8rckdE?= =?utf-8?B?aFhtbE13UFR0eThBT2RDZXdxN0w2NG0xaXd0aU85UXUrUWVCYnA2N082Ry96?= =?utf-8?B?a2FoYVlGUDF3bjVQaUE2ZG54RjcwSXhSNkNISkVBeHFoSnQvU2xhZTZWZmM2?= =?utf-8?B?blpRTmVuZ2JrdmNwSVcxZFJ6blZyRW5pZUt6RkR6OFd1cFQ2Y1lLVHJCWEZo?= =?utf-8?Q?qeXcKQUKcNOojFkpca4iRqFZ0?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c9ad2052-9393-46c3-e628-08db55e0eb95 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:41:11.7806 (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: l72wAz+IDvMH1hb0F4xlpCg9k8azFnPdsPTp7tJ1rf5A45MjghWemYTS1EzbRZbg1UCFtg9lG/P1f/x1BuYASg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8988 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684222897703100001 Content-Type: text/plain; charset="utf-8" The function is used from (HVM-only) OOS code only - replace the respective #ifdef inside the function to make this more obvious. (Note that SHOPT_OUT_OF_SYNC won't be set when !HVM, so the #ifdef surrounding the function is already sufficient.) Requested-by: Andrew Cooper Signed-off-by: Jan Beulich --- v2: New. --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -3417,9 +3417,7 @@ static void cf_check sh_update_cr3(struc int sh_rm_write_access_from_sl1p(struct domain *d, mfn_t gmfn, mfn_t smfn, unsigned long off) { -#ifdef CONFIG_HVM struct vcpu *curr =3D current; -#endif int r; shadow_l1e_t *sl1p, sl1e; struct page_info *sp; @@ -3427,12 +3425,10 @@ int sh_rm_write_access_from_sl1p(struct ASSERT(mfn_valid(gmfn)); ASSERT(mfn_valid(smfn)); =20 -#ifdef CONFIG_HVM /* Remember if we've been told that this process is being torn down */ if ( curr->domain =3D=3D d && is_hvm_domain(d) ) curr->arch.paging.shadow.pagetable_dying =3D mfn_to_page(gmfn)->pagetable_dying; -#endif =20 sp =3D mfn_to_page(smfn); From nobody Sat May 11 04:42:11 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=1684223281; cv=pass; d=zohomail.com; s=zohoarc; b=WPmI0jcR8e3T8JFRK8sITtk9//FPLgveBisjjPYmc2fXIMv8XxIRpCTWcgSJvcwOHUSsJnVMAKNpIbaVZuSWHJpxM2S+J50Zgakim8vzmL+dkCPldGkmvw1GXZMqZLpBjXWCkD9a5+4fiqueMBPQBCleiWsrplFSR8ckdeWp6Zw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684223281; 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=na5tx/nGh+nhBImZ7UOWh0/j40yoMt2VPnfqJBakobc=; b=TcFA4xwyBs+WObbcfhN96f90SzbhaifcxtwRJaXdVnGQ/wGZ1TW8P4EPyNunVZE70djlkXbjQWA11ZkHKG1icjgFBMRIyPgFQqUv3zBlx67OPAqaMCUwvQ8ib5UybxUrekIWpDnaHvZgJCfSJshRge34y6+GU6MhWL7+aMjc/Bo= 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 1684223281163709.5054034364347; Tue, 16 May 2023 00:48:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.535016.832594 (Exim 4.92) (envelope-from ) id 1pypPE-0002qH-0e; Tue, 16 May 2023 07:47:36 +0000 Received: by outflank-mailman (output) from mailman id 535016.832594; Tue, 16 May 2023 07:47:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypPD-0002q5-Sj; Tue, 16 May 2023 07:47:35 +0000 Received: by outflank-mailman (input) for mailman id 535016; Tue, 16 May 2023 07:47:34 +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 1pypJS-0006iO-0N for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:41:38 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on061e.outbound.protection.outlook.com [2a01:111:f400:fe0c::61e]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 15c9742b-f3bd-11ed-8611-37d641c3527e; Tue, 16 May 2023 09:41:36 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8988.eurprd04.prod.outlook.com (2603:10a6:20b:40b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Tue, 16 May 2023 07:41:34 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:41:34 +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: 15c9742b-f3bd-11ed-8611-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PwDP8lrmopysT0jkBOYL0tQU94M6nwMe8EquTAPdA1iqQfaU6m6YcLwbqCGph5G/apICtXr9I7Tn69iSa3MZrXIA7TAaq+7w6ZhKyloeeN40qX5cwC0V9c+f30VL56UCYuI/vjp6B8aUWPtDGN5iCP47a6zIk+vrIl/pUOXxf0l5DKnm4APnYKkG2tWQ71X37mL17I4Oo2xOicpPWo5A/MqIVjlk/rMmAhWhrTP9pIcIjRa32N7G6AvG8KrME05dlsi6xnG92+FOjweqLas8usYupryxqMZ73TiJH+WXQ6qy7KbPffpOE9FnywZwo9HqlLP4sFTe2Vwapz8Kj7MVbA== 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=na5tx/nGh+nhBImZ7UOWh0/j40yoMt2VPnfqJBakobc=; b=XcBJ7ClmZcu1ydINascp1KnXejJrfp/lVqwDLUUJOhWY217WAQeMAOvxnYAuKA2jbL9J7iB/zYq5THWxosZbVLcZ0O7PMuh6hV7tA/RtMQdYstaNr3OmxOsLI4XRGeagBUnwjneLWDh7YExVh2JpLQxPCoHRlYr2UNwNXKRFs9It7sDjDlJE7REhB12aKcFevdo9t84Euj7W8lGcDsi2HIQ41CV46+M9PpaTyneipb8qUsCw5LrIg2fNRYXlj+7hOyZSPi5ga57P5V2AxugAP+H4oy3etocLdIVnPKgAh8uoN+M/BDZmF97KjxaMw9sBZRob8K/rQVViUb94qQjCHw== 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=na5tx/nGh+nhBImZ7UOWh0/j40yoMt2VPnfqJBakobc=; b=wM1wxf5OxHc2RXF8KC9nHn+JU/BG1mahSDHGEAwof2o84juFhwgemRaqdGPJey7FgmGr+eulSQCmziYRdV9XSO1mmQrK0cyOi+rmhbpQiq1hwc8yKLHYVLgiZkFF3vk1DWnSMOLpr0NkuRN78ySNM/fhtyndSq9pleKjNTCH3XmBp+niuMAy9nWKrx09X+dVujSoSGiIgeSN83ngNLRsz1qNzVr5KhKiKtFd4H1tBtQR8AZn2112xZZHnflnFLRyVFc9iT27dLNP2DC/FkdhFowRZFSMaM0d61UnYYnoc19ByjVhKZvhQ+qZnKyS3TbZFZseOqv2IYd7MXEAd7Egwg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Tue, 16 May 2023 09:41:33 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 09/12] x86/shadow: drop is_hvm_...() where easily possible 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0025.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::12) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8988:EE_ X-MS-Office365-Filtering-Correlation-Id: 38651a2e-22ff-4734-1efa-08db55e0f957 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ofPcZp4K2huLoi7lv7vcziDK1iQXGEATSCK6xSN3p8B1xhq2U5Lh11QXilyG7gtH+c3jOB35/YXnY2J8m6UM5o8/5Vo1DB1GuUT1r2PPP+JCV5TNRV9MynCPiz6EvjAitCTHe6V7qOnxYE939AX4JPgOj2MBvgu070/JJkH1+DeNEc1Gb/U5sCMyhELRocjtByaRDY7/VI11Ncb85MPEMdUSAtNHZEhBwiGGuNtJ16JckSshbYjTXmhyUCaUv+W+LScteWZz02Km1JUjslh4KfjXfxMp2MfmLf4NPNhGDZqbyDQCX7S5+b6Dnxm73kCz9IDGwZSEnUvw4VOdizJEdYBheI4Ht1YptAsGI8Dx9v4FfGVrlR8KOskPPad0fi50MA1nl2Unt3zmHd+lu2DAYHSAGsgHBbD1AZPmgQHisKIPcyvAxpHvqNGtsCEAwU7zXg11VLcITdcIzfT9hxVfh1x0+GhdXNXiEiCORhJDD426QcqoJ619L93q35YpEprgLlTuA6axz1FqxbFmZwDzq+gYbjzyzXu2uzHyCb1ZPREqp4twPL2hH/dnRjjZaT9lyDKuYiuY+zozTe5cInhV20KOodgIsWT8L1UOtIGj5eEcVMsxZorgR4pBV5W6WvVt2xB/W6Hcui5DNy2fL16CpA== 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:(13230028)(376002)(346002)(366004)(136003)(39860400002)(396003)(451199021)(2906002)(316002)(6916009)(31686004)(66946007)(4326008)(8676002)(5660300002)(8936002)(66556008)(66476007)(41300700001)(86362001)(2616005)(478600001)(54906003)(6486002)(36756003)(6506007)(186003)(31696002)(83380400001)(6512007)(26005)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ejZzTTJVYVNGdE13cjZqL0Y5UjdxSVBZenpSdEVFY3pwWk54QzFidFZ3Q1dt?= =?utf-8?B?NHZXYTc2SXZ4OEVWUTUyTURwdVFwM25RU0I2R2VLeklRRlVGeHkrTGNpNm5t?= =?utf-8?B?ckpFaEpwU0kxOVVPUm9waGtqNkxaL1VSWUlCVUFqVUlwaWRnZkFGZVFVQ2NM?= =?utf-8?B?WkRwZTV1YzlYcmZNeFRlOVNBRzhWREp6TTN4Qy9JbFU1cklaZzZONmNsZnd5?= =?utf-8?B?Y2dsSE9Rc3Zubng5R3Z6T1U4MkxYTTFCemlrc2JMMHF2VU1XTkxuYWpOaWlj?= =?utf-8?B?OEkralVaU3RFYWgwbUJ2N25rU3kvbENTRFlPd2JjM1piTkQ0eVpRZkhzVmNk?= =?utf-8?B?OFgxZmNiemlsamtPRUpsdzRlWXYvcitCYlRhdi9kUzdLN2t5eHlxOE8zT2Nx?= =?utf-8?B?R3Fmd0NaMDFuWVUrSjAzOXVPdXRwU2Q1aCtJSE94eDkwMGlua0RKSDl6eFgz?= =?utf-8?B?YXdQVm4xWWZyOTVJMXg2VGJ0bkNmRHFLaGZjMDhhaGZCQWJXQy81OFd6TWd4?= =?utf-8?B?ZDdRT1NZd083SzR6MlFOYStkczdZeVhNbUtCRVRBc2hKckZRb21xRkVHcTBJ?= =?utf-8?B?bEdzdThMMXMxaEo0Q3QxUitMRmdjSnBwMU1hYkhYWXlwU0tqRHZpVWplT0ho?= =?utf-8?B?c2J4SDhhNlZNYXN4RjlUVG5jU1dpY2x1SzROakJCWjVaQWtWUXEwWlM3QWlx?= =?utf-8?B?Qy91blV3NDJUbjRGcitCQTkrQm1xT2k2bnFid1FWYk0vNTE4WW44Q3dQRnhV?= =?utf-8?B?QWxmM2pKYTNsc0FpajhFV1JNb2VOejVOOFluc2sxTHRHRTFlSUtiK1pudDVn?= =?utf-8?B?bEI3NjErTEJ5ckZsWVJxZlN0ZUdKRzRlQWFYcmJ2NDExRVMzR2c2dC9XL1Qz?= =?utf-8?B?enZJVzNKK1o4UTlaWDdId1NLZDU4djU3WGRJWWVzdUozV2gxWTBkNzBZMCtC?= =?utf-8?B?TkxxS0ZJZXdTZkNVQS96aytrZHFOTUZjUStDL3NLWmxibDBRY1Y4UXMybm50?= =?utf-8?B?OFVzSk55eUxFaDYyQVowU3I5bys4eXJvbGlCN0JOR3BVQWFVb3hBcm9KdFVs?= =?utf-8?B?MjFORndDa2EwcHNtMWxob3RYZWFWS01PRTgwOFBGc0lGcUkrbDZuN1Iva0Nl?= =?utf-8?B?aUFBQ3dwQW5UcGhNM2N1TExNOUNHQ3VuYUg5YlNnR3BJczVuSkRYZXZPYTEw?= =?utf-8?B?VkdqZm1KSnp5YmgwNHNVY2x3dFVINjlmbjBES3pQa1BLOUxRMG5VdEJnNEp4?= =?utf-8?B?K2hjVk8wMkJQR1lrZmJ5NVcwd2F4NDd1c3R4b3NxYXVHRFRURHRjWlJqTlht?= =?utf-8?B?cUdjTWZmYzNYTjEyRVk1Y3RWWVgvcnRmeFV5RWVNKzF5TXhYdGduY0h2Qldj?= =?utf-8?B?UzBScGhrem9LTGYwQlNMaFo4WE04bEI0WVd0QlFZb05GVThxUzdrV3lHdDRk?= =?utf-8?B?dFhKT3lRdndqdDkyeWtZaVloalg1bE95cEYvRjFFTXNsazlodEFnaVRhSGI0?= =?utf-8?B?LzJPRTFVMVM1Zll0SXkyMklDQmFWcWxkWHJXQkFkalNuQjJTRG10aC9xU1RM?= =?utf-8?B?aDFoSHlDQVdlT3ZjRCt5OHhJVkg3ODRpaGwraXlrRlBMWm5ESzN5UFFiQXY5?= =?utf-8?B?S0FuU05CQnM1MGNRei9UUjFDT1pLWURVbzkvaG53RDQrWnU2NXIxOEdVaUJQ?= =?utf-8?B?Nm9IUitYSkdaUFJKMnUzUCswUGJOajdYc0h4WVVtQTl6RytqV01zcDlEekV5?= =?utf-8?B?a3JkSXpCbkVpOTVNLzdrVWI0Mnh2WmZhQTNHdHpiUFVvWmlpbDBVTkhjMjJR?= =?utf-8?B?VnIwbXJXMWcxc0wraEl6dmVFVWxXbXdaN1Mxa0VlT3VJd25pb1JjeFp4cFho?= =?utf-8?B?NjQ3ZGVkWDI1NGY0R3UwV1U3eUs3N0FmOTV0ZFNYSllTV003KzZ2dk5oU1Fa?= =?utf-8?B?RTk0MCtDUGRLNHJVeHViTUx5QUFWekxkOUFUWWJmMUdxcWNrUi9aVTVScFNI?= =?utf-8?B?bzd1dXJqYU9lZjl3Q2t4KzlXY0YvaWtxaVZQQTc2K09Oc3VIYlVKTE51SXV6?= =?utf-8?B?NDZSaFBtclVKT2hpQklyUkcrQWR1QW5VL1A0RktsQ0hSOW5zWmJBYzFlL0Ni?= =?utf-8?Q?kuZjesH/7s+N9SrgaqI+yWj08?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 38651a2e-22ff-4734-1efa-08db55e0f957 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:41:34.8465 (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: iyu7/ceSWDdvQ2hEl1prD0BjH15Yjtj40PB5h+bINJPhC2bXnkNUByte1RLAghvjRESPoDQWEjqh0ew5JRrojw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8988 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684223282695100001 Content-Type: text/plain; charset="utf-8" Emulation related functions are involved in HVM handling only, and in some cases they even invoke such checks after having already done things which are valid for HVM domains only. OOS active also implies HVM. In sh_remove_all_mappings() one of the two checks is redundant with an earlier paging_mode_external() one (the other, however, needs to stay). Signed-off-by: Jan Beulich --- v2: Re-base over changes/additions earlier in the series. --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1511,7 +1511,7 @@ int sh_remove_all_mappings(struct domain && (page->count_info & PGC_count_mask) <=3D 3 && ((page->u.inuse.type_info & PGT_count_mask) =3D=3D (is_special_page(page) || - (is_hvm_domain(d) && is_ioreq_server_page(d, page))= ))) ) + is_ioreq_server_page(d, page)))) ) printk(XENLOG_G_ERR "can't find all mappings of mfn %"PRI_mfn " (gfn %"PRI_gfn"): c=3D%lx t=3D%lx s=3D%d i=3D%d\n", mfn_x(gmfn), gfn_x(gfn), --- a/xen/arch/x86/mm/shadow/hvm.c +++ b/xen/arch/x86/mm/shadow/hvm.c @@ -192,10 +192,6 @@ hvm_emulate_write(enum x86_segment seg, if ( rc || !bytes ) return rc; =20 - /* Unaligned writes are only acceptable on HVM */ - if ( (addr & (bytes - 1)) && !is_hvm_vcpu(v) ) - return X86EMUL_UNHANDLEABLE; - ptr =3D sh_emulate_map_dest(v, addr, bytes, sh_ctxt); if ( IS_ERR(ptr) ) return ~PTR_ERR(ptr); @@ -246,10 +242,6 @@ hvm_emulate_cmpxchg(enum x86_segment seg if ( rc ) return rc; =20 - /* Unaligned writes are only acceptable on HVM */ - if ( (addr & (bytes - 1)) && !is_hvm_vcpu(v) ) - return X86EMUL_UNHANDLEABLE; - ptr =3D sh_emulate_map_dest(v, addr, bytes, sh_ctxt); if ( IS_ERR(ptr) ) return ~PTR_ERR(ptr); @@ -445,8 +437,7 @@ static void *sh_emulate_map_dest(struct =20 #ifndef NDEBUG /* We don't emulate user-mode writes to page tables. */ - if ( is_hvm_domain(d) ? hvm_get_cpl(v) =3D=3D 3 - : !guest_kernel_mode(v, guest_cpu_user_regs()) ) + if ( hvm_get_cpl(v) =3D=3D 3 ) { gdprintk(XENLOG_DEBUG, "User-mode write to pagetable reached " "emulate_map_dest(). This should never happen!\n"); @@ -475,15 +466,6 @@ static void *sh_emulate_map_dest(struct sh_ctxt->mfn[1] =3D INVALID_MFN; map =3D map_domain_page(sh_ctxt->mfn[0]) + (vaddr & ~PAGE_MASK); } - else if ( !is_hvm_domain(d) ) - { - /* - * Cross-page emulated writes are only supported for HVM guests; - * PV guests ought to know better. - */ - put_page(mfn_to_page(sh_ctxt->mfn[0])); - return MAPPING_UNHANDLEABLE; - } else { /* This write crosses a page boundary. Translate the second page. = */ --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -3426,7 +3426,7 @@ int sh_rm_write_access_from_sl1p(struct ASSERT(mfn_valid(smfn)); =20 /* Remember if we've been told that this process is being torn down */ - if ( curr->domain =3D=3D d && is_hvm_domain(d) ) + if ( curr->domain =3D=3D d ) curr->arch.paging.shadow.pagetable_dying =3D mfn_to_page(gmfn)->pagetable_dying; =20 --- a/xen/arch/x86/mm/shadow/oos.c +++ b/xen/arch/x86/mm/shadow/oos.c @@ -577,7 +577,6 @@ int sh_unsync(struct vcpu *v, mfn_t gmfn if ( (pg->shadow_flags & ((SHF_page_type_mask & ~SHF_L1_ANY) | SHF_out_of_sync)) || sh_page_has_multiple_shadows(pg) || - !is_hvm_vcpu(v) || !v->domain->arch.paging.shadow.oos_active ) return 0; From nobody Sat May 11 04:42:11 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=1684222940; cv=pass; d=zohomail.com; s=zohoarc; b=Ml8Luge1D8/O7NRzd0zYXz2HkktDQEOLaaj0HeVpGIaDrTShwl3B4rvd0CMZcrwi1yDKAL2o6tja8ikJrruMHcAdy4Z1NML2soGyZLfd2JcMNzNOLwXScyYqieCArmaLvCmR/T6D1p6/yxY3yTuVDWmbj71ZPu+prX8ttVIzSTg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684222940; 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=ZITHlve6KzewL4/nVxygx6EqipDtPX6ixQIP0ctjoDI=; b=I6WODE3ZxtgHFW2Hb4uHX57ckWTBGl9n0IEMGKSbc6k/UmZeDzhG+VtHnsiEn3SuplmlW2TMqJzCoTPChGWFCP/IlfHsj8hhoL58cu4uPIGot1IXEV7Y1A/KtNwvr7+admaYtNKX15oi15wYQ+JsS4Jq1DAd/0Zed8hGab7r4jM= 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 1684222940406884.6212430885312; Tue, 16 May 2023 00:42:20 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.535009.832573 (Exim 4.92) (envelope-from ) id 1pypJo-0001YA-53; Tue, 16 May 2023 07:42:00 +0000 Received: by outflank-mailman (output) from mailman id 535009.832573; Tue, 16 May 2023 07:42: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 1pypJo-0001Y3-2R; Tue, 16 May 2023 07:42:00 +0000 Received: by outflank-mailman (input) for mailman id 535009; Tue, 16 May 2023 07:41:59 +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 1pypJn-0001Xt-4Z for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:41:59 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20604.outbound.protection.outlook.com [2a01:111:f400:7e1a::604]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 22e09797-f3bd-11ed-b229-6b7b168915f2; Tue, 16 May 2023 09:41:58 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VI1PR04MB9810.eurprd04.prod.outlook.com (2603:10a6:800:1df::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.32; Tue, 16 May 2023 07:41:55 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:41:54 +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: 22e09797-f3bd-11ed-b229-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gLpJfnqyJNH2BsjYz7bANMYnLyJXzDJDmLkWkdZOLOfN3l2kZce63GG6yYo1UC24G+dW0vJMiflomj+v4NNTxNLCy7bhAgdgwa/r3tI8qayn+GpS8Bs/a6U7N4EHqHxBfjsMD/pGhIPOaPUoLlOnFhd7/LUHZg59Fq0bvujKfUdwPEdej/Lex0lPkDdJzlHPlCtV+O5IdNM5ei17pd6E8omM5cNvKR5o0iDy8XT5D5AIwEJCJzDWLICrkJSGBrUjpk4Af8BwiTrXC8SFWFwVmIFx/uB5BTe1DQ5mnlPIp9tNY2jPJ8z7K+W/cyk9T9vG6nG74LypeYdaEVnTiGU+TQ== 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=ZITHlve6KzewL4/nVxygx6EqipDtPX6ixQIP0ctjoDI=; b=kMa/e6OpAfvd8/6N9wPGMOODwkxj+arv4y3lMAtVLfat9cEeoRHFx5j67wQh3SdVlRWZb7vkrTjtk7kvkS0DmWyqRr8pe4uNA0TiUcY8pJzrIH3pEb9qHXPRg9KBXHjcAqUEkFNCWstOX7Fh4Vr/KVgIxqgYnR8cyA51QYJ1lUs7C2X2NIZWjEOH0kOHh5YLFgd+XX54nFukmZNzAMLVOxx3mXSWvj1ZpLlXrlqa0dlOI/A9wNhvv9OKxuzZUlpofAfNYuo4Z0az0RNMxfBSyuxGrU1bAlmc4C6kFnrRZa1yC/vni1Rlazxe5r4boR713xfusb+/uZnN+IJOMaE2rw== 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=ZITHlve6KzewL4/nVxygx6EqipDtPX6ixQIP0ctjoDI=; b=NYpbA8MOiRJgXK3zgaToYQkRoitxTuQxrdw25VaZCDvPZD5qgaoRU8c5i6tsuMO8UBrs5tkSUi1i1PSlq0v78WWKxuw+AHdz49r6F5/my2fkfnQHH1Ug7RV/zNt8Wh2P1WdPPXf6x6gyU4+Q86QYuB4/4kOIPcpzqWwQaP2o/LGZSyIGuCUxDLOgs+b+lTMk2cQNN23U6OX6MsAxwRRp2i8n0G1JVTJgXCswGY3hYnQspsGVgMxAKJXTe7o7z9tCkamObrU5x7sH5D9cK4OEjAvmP5q030QQ69tKBNUx7uTQmfqRTjWctNKE7fEYt+wXUhxRCFECSoFy32dObksVMg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Tue, 16 May 2023 09:41:53 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 10/12] x86/shadow: make monitor table create/destroy more consistent 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR2P281CA0080.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9a::13) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|VI1PR04MB9810:EE_ X-MS-Office365-Filtering-Correlation-Id: dbe1e6a5-356f-4983-1220-08db55e10545 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3pUdJ7oAV3RKkdmEUfSPKP+tFZ75X4FyIGPuWS3U+RnEp48KYSgujLaN8ZRxoplZMZO3l7zNMVHJB1w/sfy9oPHDvjVEyr4K6ko9k9/5gfCV1l7PrSC/unsOAmPMDW6zutwXX1lgx1CGpFr4gn8N00VfpHV+g7FTrFZcTjH3ionKeo7nbVuRARmWznBhSPwq1wgh1VZdD96Kvx6j6Z5B6AVk04MyDHHdNG/51ZGS2qyKkvzW/gezxm2fIxINTks857ATo6MFNQOrYCLH51PvVy/9ybCzmW/VGKHSXJnGqSLiT1O87rSqLCJbIXSHMbN+3UE+hGHlAIYIbpaTNK54AbPYwvtcsWW5bTOO6pwj8Kh/3IcwzmUPOHN2pzY0kL4c+UdUxwVl/JOH963uJuYWJFAtfBQrRCWa/HB5Y2sPk8WFOMPeOUEO9cZZUxf4eFr6DAWv0gMiFj+qwATEYFTlhMbmgEdRYQ64wZhB1T21wwytFK399mxuC/SGAYCIfpX0xEc5ynVXd7qiPHDkYSyvyd+OLGOFm0Jdp4pxSvK6a0hzVMJhWZyRN7u9TN2yhodfVK2rRMiUQaF6YgN5uE4I8MRdvA7+AujykSfwjUkwFBWmwD7VJP6OX45eUkfqJD3AW/pIhW1H+3/v8+fmpabIQQ== 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:(13230028)(396003)(136003)(346002)(376002)(366004)(39860400002)(451199021)(26005)(83380400001)(5660300002)(4326008)(6916009)(6512007)(316002)(66556008)(66476007)(66946007)(6506007)(6486002)(31686004)(2616005)(186003)(36756003)(31696002)(478600001)(66899021)(54906003)(2906002)(38100700002)(86362001)(8676002)(41300700001)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MHVEVnoyMnA1Y1Y1R295d1NrU3Q0bGpySlZhK2ZzSjlScmlnOGcrVTQxSU9C?= =?utf-8?B?V1RpbmM0Zll3TWpkL1JDKzFJSVA1ZGdSZWhSckpNVVlHazNxNVR3QjZjZ0lM?= =?utf-8?B?c3hqT0tJekhDTThPVm9wWGpDVEZueGJGWXZtb096MHd6Nk5CRDRvMDZvcms1?= =?utf-8?B?MTZ3SW9NL0J6emFjK2RQQlFhRUdEVkUwc0EvYnhRZVp4Tzc5VHJvSEZlaVNx?= =?utf-8?B?VE1jM0RpbjJ3ZHMySi9Uek5RSlMxS1dNdm9mNVpJUG05bjZXNTdKQTVDVUFj?= =?utf-8?B?RWQwYmpvUnp5eUNWL0NXa0xjUDBHbFdjUTU2YmF2ZUZ6aldsWm14M0FPMFpj?= =?utf-8?B?eUt6c25HWTdydzVTL1orR2pEOWJpTE1LWHJpMkwyNDdlOXhBY3lsaHY4T1BF?= =?utf-8?B?MmQrY0FZenRBUUViN3g1M3V5N01lVEhqZFdvTmpaS3JYbkgzMHUzUTArdkdh?= =?utf-8?B?WGZYNDhFZlEvRlJoemNHUHM1NHlLbm9KVlFZVkFiekhmVVdtcGdMc1pXQVha?= =?utf-8?B?YmM0TTFNNkRQRzdMODZ0Vzc4UysydVZLWExJNFlwTml2a3RkUVZYSDhwSVRK?= =?utf-8?B?UW9SWW1ubDFMQ2dGa3lTSG9pWGFldjVmUVh5SFVZNnhjRFZSeGw3NUttMGlW?= =?utf-8?B?N2RZN1FCbWNjQVF1MU1XZnplbmE3SWJ3N3NtSlJwZjByV1pmOUJkTHJ5a1Ju?= =?utf-8?B?WTBRWWk5cHJSZlRnL3RVQU0wZlFlTm1hWmhsdlNKMHB4dWtjSmg0cXBXbExW?= =?utf-8?B?cVl5QjNGY1FDOFpQTnJVb0Fzc2FDeittNWhQcVJYNGYrUTQybHQ0cG9GMktu?= =?utf-8?B?TkZiWUpMR1F0VzVrK0tFaFN0dmlPaWdPbm5WQXZ2eVdCK1JsTmlUNmxjb2Rh?= =?utf-8?B?STBUL2NhRUQ2M2psWVhhOTI1TDRiVVE2OEJCaCtrbFBWZjdGcmkzcmw1bVRJ?= =?utf-8?B?a0xFbk5EcTFNaHZjT1BBYUxSSm5kbVFBdzQ4MThLcjhFSDNSOUlNWGNkM0JZ?= =?utf-8?B?Q3dEUzcvUXRORndiSHV3NHBBenl1eS9ORXh6OG5uU1BPUWpzTElXV3lpSi9u?= =?utf-8?B?dVkxY0t5WGdyOWRnendicVUyVVJvclBqZVVaWlpJc1F2WEh5ekx6VFVhcm9J?= =?utf-8?B?cGpmU0ZhMmhQVXRWUENBazJuaEV0Q2R6d0xkS1BiRElFbHVVWEJOUnpuQ28x?= =?utf-8?B?UDF4RjBUdzF5d3VnaVI1TlJCc3V1bXllbEpuOHNmcU5QaDJQU3ZKT0lSZC9l?= =?utf-8?B?TElCbE5HVE1EWDhYaHluNFRnTUhpalVrallrUjFxNVhaeWY5a2I4U0F0WUdR?= =?utf-8?B?VzhuZWlqcDJwNHdudU5KWEhNbjUrcWNtWGJxSHJFNXlUVUJjWjdIRlZCVlB0?= =?utf-8?B?Z1BTZ1BFOWloMk1HUnllSEc2RU1JbmJnSUpBTVJ6bzhTSE1LdTFBSW5tNzdh?= =?utf-8?B?SHV5aHJqWmNqTytEdDlLbnErMjl0ZFBXeDR0Q2NvWFRRT0RRZnlqdXFGSFJk?= =?utf-8?B?enJSK0NML0ZWcC9PeUkwRWJhbkY4MXVoSkR0RDNlc3BxV2dTNjZkanVpb2lh?= =?utf-8?B?MDJnRmthYU5ZK005YkhIZmtjNW1HWXBZOExGeUVsSm9JNS9DMUdVa0FYUnQ3?= =?utf-8?B?UkhCMnZoL0lWMGFvL1E0MEtZOEFqc3owUmV3M09naUxPZEJBdmdGWDQ3TUVR?= =?utf-8?B?WDV4Y3ZwRGVOZ3hrWWpsSndOcVBRVUZYcUFRUTJRWVcrRks4ZURDKzBoR1g4?= =?utf-8?B?QUtybEdJUEFNQlVZMkJZY0FmNVFOamkvK2YwZlFSTlVycjNyYTlaREoyd0d5?= =?utf-8?B?Vk9wc1BjZHR5NXhDcFhyME9NbHMvSUxKVXU1SXpvZTI2N3NMaVIxWm9TQmFB?= =?utf-8?B?SG9kOXhKNWJwTUVBZWxsek5rNnJWQ2QxQ3VMTW0xaFpnNkdVK0hFZnVYQmZB?= =?utf-8?B?RWY2ODRDQUhiK08vM2tEaHcrSDFnaVZXWGVYR2hqdW5LSEJwTUhsYTg1SE1W?= =?utf-8?B?SWhUV1NmVENGb3hIa0Jhd3BKYmcvQ3BRS1VHSzhhbnVoaVRTbmxabFNRcjFt?= =?utf-8?B?N3pzcUttSHBpMzdYdE5lM2lvL1JSbDNvWXV2dGVLQlZabG9YRWpNNFllSXRG?= =?utf-8?Q?RgY2yRdJzbl0c1VukmzT9pIEX?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: dbe1e6a5-356f-4983-1220-08db55e10545 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:41:54.8543 (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: xJXm8nO9OFjeDqBkEBtFU+NJcgQLtMqWa2yKJwXVRETTgYABj83aFDzdhHOehVQqCFLw2YjH84jCTSMvJa60yQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB9810 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684222940881100001 Content-Type: text/plain; charset="utf-8" While benign at present, it is still a little fragile to operate on a wrong "old_mode" value in sh_update_paging_modes(). This can happen when no monitor table was present initially - we'd create one for the new mode without updating old_mode. Correct this in two ways, each of which would be sufficient on its own: Once by adding "else" to the second of the involved if()s in the function, and then by setting the correct initial mode for HVM domains in shadow_vcpu_init(). Further use the same predicate (paging_mode_external()) consistently when dealing with shadow mode init/update/cleanup, rather than a mix of is_hvm_vcpu() (init), is_hvm_domain() (update), and paging_mode_external() (cleanup). Finally drop a redundant is_hvm_domain() from inside the bigger if() (which is being converted to paging_mode_external()) in sh_update_paging_modes(). Signed-off-by: Jan Beulich --- v2: Style adjustment. --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -119,9 +119,9 @@ void shadow_vcpu_init(struct vcpu *v) } #endif =20 - v->arch.paging.mode =3D is_hvm_vcpu(v) ? - &SHADOW_INTERNAL_NAME(sh_paging_mode, 3) : - &SHADOW_INTERNAL_NAME(sh_paging_mode, 4); + v->arch.paging.mode =3D paging_mode_external(v->domain) + ? &SHADOW_INTERNAL_NAME(sh_paging_mode, 2) + : &SHADOW_INTERNAL_NAME(sh_paging_mode, 4); } =20 #if SHADOW_AUDIT @@ -1801,7 +1801,7 @@ static void sh_update_paging_modes(struc sh_detach_old_tables(v); =20 #ifdef CONFIG_HVM - if ( is_hvm_domain(d) ) + if ( paging_mode_external(d) ) { const struct paging_mode *old_mode =3D v->arch.paging.mode; =20 @@ -1854,13 +1854,12 @@ static void sh_update_paging_modes(struc make_cr3(v, mmfn); hvm_update_host_cr3(v); } - - if ( v->arch.paging.mode !=3D old_mode ) + else if ( v->arch.paging.mode !=3D old_mode ) { SHADOW_PRINTK("new paging mode: %pv pe=3D%d gl=3D%u " "sl=3D%u (was g=3D%u s=3D%u)\n", v, - is_hvm_domain(d) ? hvm_paging_enabled(v) : 1, + hvm_paging_enabled(v), v->arch.paging.mode->guest_levels, v->arch.paging.mode->shadow.shadow_levels, old_mode ? old_mode->guest_levels : 0, From nobody Sat May 11 04:42:11 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=1684223276; cv=pass; d=zohomail.com; s=zohoarc; b=X2y0o4moqLpFbSITwccUsEsambXeO1uC816nYEKN2oj+kDwjMU0HpwBos5fnpzDKhDb60js6yTvjFbn9e3KY1mjnGQJ9bF4wJomB9MRk7JqiXspQfCdYUQ4SyerH9X68w81PLKIBqHfoA5kvM+l88zitr7ZDZRuiu42xgVaM/DI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684223276; 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=+LSqkT5W5RDveh4x9HUNVR27+X3P8oPB/8p3ASxxGxk=; b=inFCXfH3OHAsJEN5qY4wokXPkTSQawNG8jUh7NIe9vGlOi4/YCaio88PFJcUx5J/5A87fKBETV8VP00Qf6dGeIdhQRKjEMP1Liu9Fg5x1Ywa04tm24JUmjBxf2FQ3AeBCeUFXkIwFiXDu3jEg8Iya4AtjbGCO0SoPEHaKVDbCIs= 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 168422327619092.52354889115645; Tue, 16 May 2023 00:47:56 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.535018.832604 (Exim 4.92) (envelope-from ) id 1pypPF-00036Y-BA; Tue, 16 May 2023 07:47:37 +0000 Received: by outflank-mailman (output) from mailman id 535018.832604; Tue, 16 May 2023 07:47:37 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypPF-00036R-7h; Tue, 16 May 2023 07:47:37 +0000 Received: by outflank-mailman (input) for mailman id 535018; Tue, 16 May 2023 07:47:35 +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 1pypK7-0006iO-Kn for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:42:19 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2062b.outbound.protection.outlook.com [2a01:111:f400:7e1a::62b]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 2e3d5930-f3bd-11ed-8611-37d641c3527e; Tue, 16 May 2023 09:42:18 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VI1PR04MB9810.eurprd04.prod.outlook.com (2603:10a6:800:1df::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.32; Tue, 16 May 2023 07:42:15 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:42:15 +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: 2e3d5930-f3bd-11ed-8611-37d641c3527e ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bq/lQuVdBH8OJVxvLkuI7ZYKR/3R51JXaBu1RSxMhygmomyGqoeM+Lw+EHn5Q8kGVhlaJTs6wnMtHwvGDQ/HNVdhN9UEKFOdWNnxWHbnGJTZh7BuQXsoNYbZdlPL5CxK1dBNDzivvuU9Y18j01RDeijHebKkyD7sUBBgKpk6pnIgQldJ+fiN2QTziuePEwBjIL4qevJu7t354A99X0hXVm6ZEyQom+tFOek3mYKa1MFb17CkgXoY6O6B4epVvy3s/c+pSxp0bhSDC/3LgMikexMdcMNJVyy2VNbGWnIaPNMtWj07etmT8Itu29ZMPUA0F3U1TOOAr9lm1nO+hLFJug== 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=+LSqkT5W5RDveh4x9HUNVR27+X3P8oPB/8p3ASxxGxk=; b=W1oryS4xJc4AboF//dZiex3vCKd7FomkrFqFqmUCI6Xk0A4Er4nq2reCE0l1Y/tEd3iNLm5eEL/GuApuMcickx7q6KBB+sAH0D/MuCRrtG9g1dfkXWMfOGcFtKD3aZ105fPwIlOH4F8K5cYDuhF9WkkgsvFKqgyL6SPDazvRCguQ8eCwFoBbwUW787+cNxJlTVUVqZswfUeirQQ6ksEqRBPfz8BHPw14GtmrLNDJSti0Qj5ju89Z0QI8TTpl4axU0FbfGeyXbpsudwqHlLROY6K8TrhptwpY8ljTqlu7gbbtctczsVt7V/ZS8iVnSqpkBkg7lJuaXrBMn8c3TdCtGQ== 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=+LSqkT5W5RDveh4x9HUNVR27+X3P8oPB/8p3ASxxGxk=; b=HT+XURQm6DZxJNRPAre7SDdErzwHUZE9pk4XCR0lZ4WvBvcSmSQmQpA9kUehTjSBO8xEZyvE/cH90Ettd5Ha2MXHVEJ6OdaM01aKmgvOTDbW99gDX1whBakTmMvsXbmJ9Gg0jxxluttld1I11chSRc2nNw9HIV6aVpKJQ9DhujHHWR4noZGF3hvowxiUsLJjvdkE4upNieVprWdRsCRlp4D6+sBRsQvdpvrij4kAxOPIfBWfX1svM0Jz00cSvQSIaB8CI5N9ZPmPzQWell5NNTZYDoCnKFC/wd9IvHu8Fl6NVTjuZxWWjZZ47tT4lh9cKCfmsBasN6s5+bWWRlYfWg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Tue, 16 May 2023 09:42:13 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 11/12] x86/shadow: vCPU-s never have "no mode" 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR0P281CA0169.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b4::11) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|VI1PR04MB9810:EE_ X-MS-Office365-Filtering-Correlation-Id: 7f0340b1-cae1-4ddf-dc95-08db55e1114a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0yIGKYfk/tiFqWsKOXXoUYwRe5snVo7ETbsbRajTsKHM2G3KXrqRFD55NrT8eBPqAUEdkhjzn1bNmLb50u5GW+CQi31yqukXu0yeVKuTZcina60xdp3bgg81mm24EU6M/brVyI6ZOu1mAwIVKypJfHtTTyG4grCSigf3x/kGJjVKhXMzB7D7mIilRLeQbL5Q1YOvCBVO4NH7Zs2mjC7bBXbn9riWTfpoI5QkFhTyF80gwPonw9vdyGlcMFQ0JLIUf9bEas4yU05XjKDCt48IlFwWIEtsVS1zZtifkGyhXwb7oXe1rnL7KYMXFMZfK5wEwXCYdALZXMUb3bMpPPX9LufdluIYdUOPsBi2dlm8HJ9WlGx67C2/lEXcv7qAKa+ZX1hamaj5tKdArwhVqDYDm45K09qQzkPvPIm88MJckczqCRi3jah0pyEhQ2ABuXhAkvvvsh9inRYXLQol4HvUTt6GysVmGkBsOJNH2GrZAAWSZOqNaUWdl8pWlBrtz5Hn0ZZEO1QJnNH44Vg20jtAaBslof8RPpWUWeG94Fkq0boOslzfrotGsQ1nk+CeKmNyYDCAuUUcka4u3Cz6I7ocuVrWMOzt68Dzk50w2gGXBwxt0oixCTDdqUQqUPqDHaopt0caw5WfzhuRLrCUXWnV+w== 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:(13230028)(396003)(136003)(346002)(376002)(366004)(39860400002)(451199021)(26005)(83380400001)(5660300002)(4326008)(6916009)(6512007)(316002)(66556008)(66476007)(66946007)(6506007)(6486002)(31686004)(2616005)(186003)(36756003)(31696002)(478600001)(66899021)(54906003)(2906002)(38100700002)(86362001)(8676002)(41300700001)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?blQrcEJidktyTXU0U0tzNkFseU1PanZyU1NaOUpRZVJVWGIwKzRvSnpHSmNZ?= =?utf-8?B?bURMODRiT2x3VW5VZjZWd1FjT2NnaUJHVUk1Y3NQeEZYTFl2WWxpVG0rY2l0?= =?utf-8?B?aS9xYzI0d1RoY3pCV0RVTTZZbEVmaUZ2dmNiUXpCb21NTWRYbi9WekwyaTFK?= =?utf-8?B?REhZWnlJNHhkME4weFVwQU9XOXd3cDNRQitLYjJ5T0VONG5FYnNDRGkzcWpk?= =?utf-8?B?VXlyamY4TmRGMy9XYVRrRURMVUJuT0UvVmVtRTdXMlBGTUpwcWtqUVpBRW5J?= =?utf-8?B?ZlB0N01OMjFTU2t5V0ZTR2RjZ0tiVzNDTDhQZXQrWFBtQmFNY0s3MXNKQUVH?= =?utf-8?B?ZEtCUVlSeE5NdDR2K21va2l4MXpldkpuSlZjTnZOS3FOMEJMOUhIOEdzVFc4?= =?utf-8?B?WXBNUkR1TmpXMG1EMVpxVS9OVUwxYmZCZmhXNG5VYjIvWitCNmpPenVvcG9i?= =?utf-8?B?bEp0OHNDNjhaWXRsdUk0aDZYT05JdmUzNVdxMTA4aDB5eEFjcGtHUWd2bmgz?= =?utf-8?B?QXZMRm5RZmloU2YxNTBYMXpJQWZDY3RIVkJhMVlBVCtkY1ROUDhlL3N0S3hH?= =?utf-8?B?ZzFDeWZhbGFaak9WSFhVVkZMeHA3L1c0M3daTWpmd2daVndCWitVa01zVTFl?= =?utf-8?B?TXhlZlYyWFQ0SHRBbUdKS1NWTjkxWjFsWU9Sa3lUbko3VWlQY0pjTk01YWRK?= =?utf-8?B?cXpZR3ZuOGtrMnVSR3VxdU5FdHNuTzI4UjZhL1pjREgzUjhiL0R1V1dyTldw?= =?utf-8?B?azFBcHg3ekZoRytjbEVjRDZKSElxNGNiaGJQK2l3aTRSUGZrdkRIejh6N0py?= =?utf-8?B?SmlkbGh2blJzcHpMMkpJbHBJN2lVUmF0US9MSERUNVhsU2d5eWU2ME5wOGhl?= =?utf-8?B?aG1aOWZHWStFYVdiV0xMNDZVSmVNTDU0MXA3Y0VFZmhwODNKUFlKRE1EaDU3?= =?utf-8?B?enY2R3lTRUFDZWUxWVFzblBVYTlTRXladjVmWXEySDV0SEIvVEdzSnBxOE8v?= =?utf-8?B?Q1hyam5XeHZoTjZOenlLeFpKckM3LzFvSWZVZ0JkYktjV0I1SktZM0U4YThy?= =?utf-8?B?aElpOEYwUGdLbi9vQyszMjlONEhYNFJ0UFRyN0RxR3JRVEhiRVgxd3EzK2lN?= =?utf-8?B?YWdJK016NER4MnZlTVllc2xPaWNYSVpZU3lIRCs2Q1RCN1E5TGRlWTEvWXJB?= =?utf-8?B?UHA3Vjg1dzJRMW44TjdTekNpc0k5S01NUDlodjE2UUg4ME5hb0NVd3RBUXNs?= =?utf-8?B?RmlDMlFuNFZ3Um9oelJxQVpkcmo3Syt6WDR3TUU5UmhTcllodVYzYXk0SXU4?= =?utf-8?B?MHR0SnAxRFp0T295UkJRK2FMdWxXaWpGRWZIZTJ3RXhYY0FxV25HRXA5cENE?= =?utf-8?B?NWhTek1YYmV2TE5WcXViSHVHNXVka1JHaDkwRVM5R29meU5BTEFzQ0lOSE1V?= =?utf-8?B?cEhjTTQ0Mm1leUNYK0U5ZmdYRTB4SFRUdStLeXdlejM5OWhrWjdjUkt1L3Vm?= =?utf-8?B?amFma2tFY3F6dGpMTjYybXUyWnFDdUU0QlJLMmlHRGNJQm1NSVJwdnNyeG1M?= =?utf-8?B?WE0relpPQWRCQ1ZFd0x4dDZHWS96UEkwT1NVZnB3aFdZRjdPbndnQXJrMWw1?= =?utf-8?B?b0g3QVpFWUsvU3lQTUxJaWthWVFZZm1veTMvRkdudFM1ZEEzc1kwdTA5QjVh?= =?utf-8?B?RDBxTjk0N1BwK01tOStRMERmZlYxNkwwa3VjelZLeHRTQmJYLzFQdVRFNGJt?= =?utf-8?B?VDJqOUQ0d1gvck82QUdTZThFSGJvL1NXMWVxRkRLeGVqTkVBNW1UYzdZQTlI?= =?utf-8?B?UEJBaGY0OXU2VG02Y0RaazNDdHlnRlAzOVZsSk5EZjBwcXFyZ05oWkt0Y0g1?= =?utf-8?B?V2FlUU1vY3dpMUJLY1Q0M1lUZlZveGpTM01TSXBrVzdEN3RFaVJUa3R1UGQ1?= =?utf-8?B?V3pnS21KWFhlb0k5OTNHd1pBS3gyQktYb2VPNy9nL1JESXJnSlI2S08zaS9q?= =?utf-8?B?VDR4eG9pZDQ1LzNRaitCeEM2OUl2WlYybzFGcTNmbFljeHExWFFTanlpSEtY?= =?utf-8?B?NmJkeDA4cHp2UkgzTkhML0ExOEg1c0VtYkJhUHpNNjV4MUhKSGVvTXhYQ3Mx?= =?utf-8?Q?sEJAWNv5bURs13cq/Xm4hEg7y?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f0340b1-cae1-4ddf-dc95-08db55e1114a X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:42:15.0562 (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: KMeJXUNoJWeW/m+jn6x1YQ+ANK0XN2giIA+u2Ms7HMnpSQeYielmTpeTHI9xgNtKZaj69jQ0V5Xwg7H6unP8fQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB9810 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684223276543100001 Content-Type: text/plain; charset="utf-8" With an initial mode installed by shadow_vcpu_init(), there's no need for sh_update_paging_modes() to deal with the "mode is still unset" case. Leave an assertion, though. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1854,6 +1854,8 @@ static void sh_update_paging_modes(struc make_cr3(v, mmfn); hvm_update_host_cr3(v); } + else if ( !old_mode ) + ASSERT_UNREACHABLE(); else if ( v->arch.paging.mode !=3D old_mode ) { SHADOW_PRINTK("new paging mode: %pv pe=3D%d gl=3D%u " @@ -1862,11 +1864,10 @@ static void sh_update_paging_modes(struc hvm_paging_enabled(v), v->arch.paging.mode->guest_levels, v->arch.paging.mode->shadow.shadow_levels, - old_mode ? old_mode->guest_levels : 0, - old_mode ? old_mode->shadow.shadow_levels : 0); - if ( old_mode && - (v->arch.paging.mode->shadow.shadow_levels !=3D - old_mode->shadow.shadow_levels) ) + old_mode->guest_levels, + old_mode->shadow.shadow_levels); + if ( v->arch.paging.mode->shadow.shadow_levels !=3D + old_mode->shadow.shadow_levels ) { /* Need to make a new monitor table for the new mode */ mfn_t new_mfn, old_mfn; From nobody Sat May 11 04:42:11 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=1684223004; cv=pass; d=zohomail.com; s=zohoarc; b=kpR27gw3dNIUFSR3uN2GrOYO4QEQZ6QkGOdBWoUVZ06c5htQEFcTESpBaUTa+wRILmEZPYIsX0H4IQHLK4TzwhsSDwWUEH9EQZOU52LekYEUY4bpJjqwkUkYfpRL2+qGup6wBh2r6JP9meWqWJIE3MXFiwzLeNpZWIggaoFa1MU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684223004; 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=G0JVlC1dkAfZN2ajpySPkgKYU3aVrOZcOWe5A070b+Q=; b=mFjHL7kxgjuYsv4AnVmcUxvuUsQb3cd0rYm89cGOnimVHSIAJlb1u2mda5OVsQfeY68+QmO0c5kARhAN8N1FmL+cRb3S9l12IQryevoiO6YTKORT552zZZizOGKEPAUs2tPDjvFLImnnzzJdX8M5qzJIMpwigxghHsrPAHvpxy0= 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 1684223004775137.86136378953995; Tue, 16 May 2023 00:43:24 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.535011.832584 (Exim 4.92) (envelope-from ) id 1pypKc-00028E-Dz; Tue, 16 May 2023 07:42:50 +0000 Received: by outflank-mailman (output) from mailman id 535011.832584; Tue, 16 May 2023 07:42:50 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pypKc-000287-B2; Tue, 16 May 2023 07:42:50 +0000 Received: by outflank-mailman (input) for mailman id 535011; Tue, 16 May 2023 07:42:49 +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 1pypKb-00027r-RH for xen-devel@lists.xenproject.org; Tue, 16 May 2023 07:42:49 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20630.outbound.protection.outlook.com [2a01:111:f400:7e1a::630]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 41039c32-f3bd-11ed-b229-6b7b168915f2; Tue, 16 May 2023 09:42:48 +0200 (CEST) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VI1PR04MB9810.eurprd04.prod.outlook.com (2603:10a6:800:1df::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.32; Tue, 16 May 2023 07:42:47 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e442:306f:7711:e24c%4]) with mapi id 15.20.6387.032; Tue, 16 May 2023 07:42:47 +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: 41039c32-f3bd-11ed-b229-6b7b168915f2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Uc/4rCqq9DWcdIKuGe5SoTI3rM/kqdcaQZ3qLUl0bZTDMkcHb63MJ0UCeJb2ubv58YcNNOLxnSBjlTLVO4GUxcknwHCwy3pItgfX2c2yIlC4yuJ3Sd9qLGdOQ3PuiXqREy7dCAmeI11Pe9LpMDVwSQbWaugdb1LwyEqTjwC1uGVsW1BYgDVzrL5aMO6DzN/17tFFr6/KNYLJ4/48n7eQo3iVl9C3hK2I3lxm+Si6t1YBdHrr/rb4gW3hCNKmglJefiHyUVcsIkA9M9TAnjw2zafJfmEGn0/PCU/IRX+xn3FopCkgWBJ4cngOvm7J2kyvfwnG1eZdUeZR96B3ysaYxw== 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=G0JVlC1dkAfZN2ajpySPkgKYU3aVrOZcOWe5A070b+Q=; b=A2jMq2941PMDA14/RasjE9ydKKRuX8go7nzytFKfpIgURIFqCGbugbmOzNWQWopvrdwUgB0AN32/KAnYnOMsxpmRGFbvRpXGXkL2gihcs/QgWU0e5R4l8r7odggkaT0DQc++3QsvP3aUrHjINoWSeW8tKdUTlDvBPx5k4LqXp80v+rzEu/1uMi/RiJs21vOpjbHgAM0q/dCRhv3K4QXXfETk93hD6CnA4xHe1VAkVVslESHTYDcmPVvE4J69VAo4boqzeQTp1HKjAkW/1aXQP+TprErsJ25QNfM1GeUcbrCxcwn+PkLbrZr9NR1CoybdnKM3EXzTyxIlX1De0wY5JA== 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=G0JVlC1dkAfZN2ajpySPkgKYU3aVrOZcOWe5A070b+Q=; b=t9rqnB9tWiXSLN+bMnxvUqCnUZ38i6F23EdNyImvuKrZyXn7ABjBc2MTOBMRygQBYGQ6HX0lo+KkMe1Y9Lgz1FLCwxVUS9Lo8e0gDu5LueN+zWYrDVGIqMsH3Fux3uUFtPcxGIRme2nawcQkPy2lT05ezoUerCI2bzeWX7JdaxDh9Y7snil4OtCdPC9ljN0nUWi5E0+hX/7jEyp4mtexqV52WOAoP8U8OHFX91JbRStefFyeWuZLG/aRGWMLSCJB3p128kWnbEl6wDZBu69IQqCjKbRgL+j8yCBw7ED6JFcVuEj1FSdl4UsPD1pYxlDzy8JTFhnYzplNB0BVxiCK0g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Tue, 16 May 2023 09:42:45 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Subject: [PATCH v3 12/12] x86/shadow: adjust monitor table prealloc amount 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 , Tim Deegan References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> In-Reply-To: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0008.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::14) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|VI1PR04MB9810:EE_ X-MS-Office365-Filtering-Correlation-Id: cb9a0fa4-6eb2-4ad8-5a30-08db55e1249b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fo1hKvmhYMls1YY/C0Seo9l/8V9/+fb05kweTfzMH+w0cCbwDGdDJf73usl48fHa7zqxd7x4TPlcy/pmBRrq6ut5TdzfI3A7X48geMZNkK+sFdSJ0UlN+1kbKweZWOg2jwpFwoL2TT7PpEr4cm8ggGp72HXY3mkMRNNtTHNXNU6zrEaNyU/syzuQpxFK1UcLCDtgd9ZyL08ka1dJA1yA7A6xXadO/KvWimpg4R9IRJ2+D/KTXDioHPFSwDnUIbalmL+VK16ftmLeWaad8SgB+ZtK7DiGhAwpiFKNt7Yjlng/tAyCTy8b82N/0DG5IukkXAi9zrHIOC5sZx7LZ4mbLFrnePXHr+PhMmRkpl8Ostk/unJ2QGeF9buMrYDHVa9s7GbvbEmVc0LCkntcFTnBUeLX28EB+K4kDNwo2Mzf1jLsKslopWKVHGt9J9AVadITm3d+W06tyh4wvEF3oaCRYDAITg+NfY6xHmVJR2baISrvlTGW+zVIkW3kCWrPoURmE1d7Ixu9qpsvcC6AV1FPxWrE9VDMhbbvlC8wSWAMD7z5NM3piIj64DMfhG8o0iUgMWFx2ZwnP3lejAOiocSrTnoX5Y6xUxdNYCIA91VhvJdebXxvTU03p07QkXct/ztPSjyrjIcwaXhfCHcjiJFO6w== 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:(13230028)(396003)(136003)(346002)(376002)(366004)(39860400002)(451199021)(26005)(5660300002)(4326008)(6916009)(6512007)(316002)(66556008)(66476007)(66946007)(6506007)(6486002)(31686004)(2616005)(186003)(36756003)(31696002)(478600001)(54906003)(2906002)(38100700002)(86362001)(8676002)(41300700001)(8936002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RDcycGd4VFRtbUFVeWxCK2Jpd1lTc0tzY1E5WHp4SHRMVWdXeWxpL0syekhC?= =?utf-8?B?MTQ3eVYzS2NhTkhSSXlaSkpEV2VwNy9LK284MVhLWE9RYUh3ZXRNUm14ZTJh?= =?utf-8?B?bDN0bDdhRHBEUWRUUWZCWnJDRTRWeU5RaUNrV2g5UFJIcC9nTE1ySXVodFdw?= =?utf-8?B?eStib3FjTTJFMytxU0hIbVdzbUJtdW0zenZ4eXlZQ0VYYzYweFd4YmN3TnA3?= =?utf-8?B?ME1HTkhRQXA3eWJmWFpMT2c5VE5pVjZnaXg2ZDF5L3Q1bThzaWRCTjNRVklp?= =?utf-8?B?UFlZcnFzYmVTNWRSeDJmUS9DaWcwWE83VGlaUFk2dTZJZTQ2dER1ZkIrZkJL?= =?utf-8?B?SXRjMEFOMWUrYVJrOE5RK2dUWXFPMCtrTW1mdjhEWDlkc1ZQaUtRdkpOUlNy?= =?utf-8?B?Z1N1NlBWWEpGR2U1K0FWQ0QyNnZUYklnZXBPNmZaOU9YeGZtSFBqVEZpYkVX?= =?utf-8?B?RVZiY3JyUzNWMmlwMFJmbW16SnBuWUZaU0RoZ01IdGNCRElxaVFaWVRWalRP?= =?utf-8?B?bytnYUhOckY0dWlWYm9QdjhTUnhPdWVtSUc3TEpxS2lIOXpBZEU4OC9oaWFx?= =?utf-8?B?aGxseTZnaGRYMVRwamVneG85aUl2RHYzK1dpTWw0NzJpbk1lZWVIRDB0cjha?= =?utf-8?B?L3FLNk9LeVdXNHZZbDNnc0Rpdk9QcFgrYmtrQ3hrWklJeDJtNjEwaGpVanRV?= =?utf-8?B?ckNTS1docy9BbnBYUGEvcCs1QSsvaExoSWxNYnBQanBYaDlYbG1UUnVwMm1K?= =?utf-8?B?UXRwYlE4RS9ocEJEK2dsWkg2SHA1a1QzUEE1QWhNZFRnZHRaNVVuamp0ZnRI?= =?utf-8?B?Y2lRSTM5MDZSb045NC8xTVBFTWg0YkF1SkpWUnBJVHlMcE9OWDFIamJuNEJ5?= =?utf-8?B?dU5tQk5LR3FGb1dQRlF5YW9HQ0xTZkU3WXFieDd4ZmRydTBERWxUVFhDRUF5?= =?utf-8?B?bHRDUU9TaXBKWnU0SmdsRUtMbjdpUjh1aUF6UFI1RjNWc3ltSlFNY255d2Vp?= =?utf-8?B?UTFIVFYrakNhMHFxV08yV1p2RDY4aStQU2NCQUFIaDcrbnMvZkx2QXFyS1l1?= =?utf-8?B?bkNQMmlzdFBEVko2YTR3QkV6QklvbVpmMU5wTlVWOFN6azE4SituUjJSSGRh?= =?utf-8?B?VmJtZkQvdGMxaGlJU1VRZG5HYlJ6dDBDQWIyOTh2S2RMa0s3MmgyeXlTOUlQ?= =?utf-8?B?SkczRi9YZ05rUW1mUUZoT2FHUk40cFE3cmxHYyt6SFRqSXh3SEFyVVIzd3l6?= =?utf-8?B?dU92MFRqUGRReXZJZUZ0SStYSkFMK3N0T20zU3VuMlc1bGY1OWdRa0Zidlpi?= =?utf-8?B?Zjh3b1ZneHg4eGsza2UyMk9vTWlvR2psMU0vMGJHTHAzTmE1UDRwZjJKOUdM?= =?utf-8?B?aExtU0NOQ3JBb3RkeG1wS3JpbTF6QjYwSTNTelJtZ1habHNHMmw4R1pZWlB0?= =?utf-8?B?TDlOTUFpN1J1eGtnbUJEcDlFbFhOQThlK1NScW95YTJWRDVRcVoyeE5EZTJp?= =?utf-8?B?ZmlMd3ZoSEZNTm1nOEhHQzJ4TmplaXBTdWNaSjZmLzBDMU1ueCtZWUtRbkZs?= =?utf-8?B?TmpObUF3RHpFWGFKcXBJbHY5Z2xkanVtTjZ0Zmg2eVc2QXFqL2tDYmZ1UFc0?= =?utf-8?B?d3VpMjU3OVgxdEp6NHlNVTlPMUpsN3hIYUc5RjhQS2hxZzFTZjV1U2o5UmlT?= =?utf-8?B?NkpSTUVyckhMMFpDUERySnpqSTJJUCtGdUFwdC96Z2h1Y2lHc3k5eFJNWHJi?= =?utf-8?B?WDNnVDFRTEtjVmpmbGpxN241YnhJWHA0TTZMaGcrMzhibk5LdjRzZ3RXRnph?= =?utf-8?B?bFpBUy9wQWVsSWdsbWRwbjFiZ3l3SGQrRHZXZEJ0aW1YNjdFR3JRUVByY0s0?= =?utf-8?B?cU5QR2hzYkt2cDJPQXJNbnhURUMwbmhndUc1WGc4VDlmd05JVm9KdDNRS1Ay?= =?utf-8?B?akFtWWZMTE5wM1EzcU4zOVh4NTh4ZGEwNU9KSkhncHNYQmpaZzI4VW9hakI0?= =?utf-8?B?amdXazc5WVVscnd2WllaRGVZSVhOYXFKRGRPbjNDUzVGVFNJQlYxVTI1TitY?= =?utf-8?B?VUNtSzliNXlnQWZDRlhLZEVjNjYxU205SHlZaDZzdlRpWTFBclZMeDRKNzRq?= =?utf-8?Q?SYl1xKupnqAnLqQGLNS0mbc0/?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: cb9a0fa4-6eb2-4ad8-5a30-08db55e1249b X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2023 07:42:47.4554 (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: a44xl5ZM919plSzU7Vwao4AlA5h7Cdi+q6BzgyKKwKRitvrDDoHIT4aoE/6Xdl4WUtbZKNyG8TBC8Ps+LxcyTQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB9810 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1684223004983100001 Content-Type: text/plain; charset="utf-8" While 670d6b908ff2 ('x86 shadow: Move the shadow linear mapping for n-on-3-on-4 shadows so') bumped the amount by one too little for the 32-on-64 case (which luckily was dead code, and hence a bump wasn't necessary in the first place), 0b841314dace ('x86/shadow: sh_{make,destroy}_monitor_table() are "even more" HVM-only'), dropping the dead code, then didn't adjust the amount back. Yet even the original amount was too high in certain cases. Switch to pre-allocating just as much as is going to be needed. Signed-off-by: Jan Beulich --- a/xen/arch/x86/mm/shadow/hvm.c +++ b/xen/arch/x86/mm/shadow/hvm.c @@ -726,7 +726,7 @@ mfn_t sh_make_monitor_table(const struct ASSERT(!pagetable_get_pfn(v->arch.hvm.monitor_table)); =20 /* Guarantee we can get the memory we need */ - if ( !shadow_prealloc(d, SH_type_monitor_table, CONFIG_PAGING_LEVELS) ) + if ( !shadow_prealloc(d, SH_type_monitor_table, shadow_levels < 4 ? 3 = : 1) ) return INVALID_MFN; =20 m4mfn =3D shadow_alloc(d, SH_type_monitor_table, 0);