From patchwork Thu Jan 5 15:59:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090114 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 53686C53210 for ; Thu, 5 Jan 2023 15:59:29 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.471984.732052 (Exim 4.92) (envelope-from ) id 1pDSeF-0008KB-OA; Thu, 05 Jan 2023 15:59:19 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 471984.732052; Thu, 05 Jan 2023 15:59:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSeF-0008K4-LK; Thu, 05 Jan 2023 15:59:19 +0000 Received: by outflank-mailman (input) for mailman id 471984; Thu, 05 Jan 2023 15:59:18 +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 1pDSeE-0008Jw-Fs for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 15:59:18 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on2080.outbound.protection.outlook.com [40.107.14.80]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id e853aee9-8d11-11ed-91b6-6bf2151ebd3b; Thu, 05 Jan 2023 16:59:17 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AS1PR04MB9285.eurprd04.prod.outlook.com (2603:10a6:20b:4df::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 15:59:16 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 15:59:16 +0000 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: e853aee9-8d11-11ed-91b6-6bf2151ebd3b ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hZcD+H4ve0PIG6pU2giq5aYtk29Z7Prsw7S1ywA9nwCa54jRSIr98DdPEDcZhd+Y/U+mpknJAv8xlTRpOTiTmyFvQjblbCq4eMXsPWRcwBCeEPVdvr9ctyv+2u1M5kyT+SMiy+e4SC0oBJ+xiaIK6RhfzMItOmPH8rUS44TGoWW5FhvPEyNQ9Vd5jdSDJxoSrsS0IrNiPddk0cM7d4d3wew4edjqt5gfO+D5C6pAbpJApBDLVy3Yv2hIHgJVxbd7orZNu08waJgiKeWC6X+7qMYLYfm6t4m3wDYKlWMoj83hGjZ4kF2gSNBULvHClufXjEOqYBYehQjPa+MY/FHnUQ== 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=rmoM5XdZSCG0IQymIs8Nrrx2EaS6/cU5V9J6nOA40tQ=; b=mYZswt96NTqvno4IES7zeafWv+2a36rtHyT0gdowFdCT7R+sfR0HXaiGtmayWNzWC2fzBQvI2nMVMvppRP5xO1Zt8umLbzMRUelDL8hQeQnO+WLXqiHxeIWuBMed6j6qcHZBthL7GigNLU0/0vA+clu7JSIpRsXp7A2uZeOxidM1Qw1bwdgouGymAliDajcjybkY7f+OMtkiLSl4LNTFU00JITKahW9krFP3EIU0hG0bF6rUuBfJDDkqGg5P4qOZMe35d8vMER7ttZBftCMxrHIt0l7+xwHRQbBz8f5gPa6QdZUjSOvgS7suFxC1Zbzz1woRwPb40sAVV0ewYakLEQ== 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=rmoM5XdZSCG0IQymIs8Nrrx2EaS6/cU5V9J6nOA40tQ=; b=NN5NO4raLPKWcWez2JHf3sHZRckIwTAjAZgObsXRrYxh3z6bGc+o+NssxGntOkm19X7GZ4yP71VUPlaLKbKqIzpA5zFscnBhdgyK5HiEW/K4dAxejU+93Ld3lrGlFxQ3BGujaM87iACgWFT2/wecreVWiGGDMGsEHScX57u+D3UmNR4whSU8zjAkw09PU8axIsCKWii8fwD/iyEFb1WnJSRZLYmlmcIbo+JboVe7xwYKQjQKITl8pl/SGE9B/dT4R8aRhnJce4a7GtfxFCwKnPF1Q5kqng6pGojWqq7WH6l6KF6e+77KQBNCYJidcMaciqzC5jD2DkVg2IGfl2vU9g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <03ae5a1a-4417-0aa0-27d8-833ade20cc0b@suse.com> Date: Thu, 5 Jan 2023 16:59:14 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 01/11] x86/shadow: replace sh_reset_l3_up_pointers() 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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FR3P281CA0039.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::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_|AS1PR04MB9285:EE_ X-MS-Office365-Filtering-Correlation-Id: 59051f4a-e839-4c34-6f74-08daef35cbcf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FTEVlLgcfqoiXp5dVP/eLRCdy9nVrMuV9os0uKWjLO5FOBp2XqUsOlFFmM2ieAKGN1UApSgusgic7EWQrbRzT0/DoHcbXOlr0lpFvPKqqosfkffCR/IilozbVKHs/7qSUc9uPLQaJSBdL9tPvWKQhQ4IwwEFBlDMYWQAS0plE40qF708ZpVjT2dgeDK/bOFUICNq3mwrJvPXWz4H2cCiFQISiio2yQmtUYlLVjvmvRGbkTn60fn/UTzP02i67DrjjGSk3bLElsRNG9krdO/53jgxZXVuqxcrH7lkfIdQI+JZjw/E/HzyiU4SBXI53aPJDRElbIb6LMCfm7AM+HQPWS6hcJFBJf2GaIdT8E0aNZhd6auEGg2i6oQ2YtVTytSo6Ah+5qDPyLkbCfSVdAI4fzMDZ4cJzK9lHVadm6vIHRVFxIdmzDz+qtREWmDTHw/ul73W3InhDsSHkWM774SNzCM6gymzkxlOBnZpEXUH5JwwE9AZhEUC0wHHGFIPTxtqeBZrgSMqZ9GGf5HKGY9TVe1MtXZsx4Q8jY/XCFCTSMU2XeuDyzc4mFQewQiie769kycTzBpZtmBtn27jAmuM0jOZ69Sd+ButFz4X/mDvLTMD7AafL7qegpvmk7bZhK+rqG2YDnkdCvG8KMarXK6k/lvyb1vj7pnqzPG5fiexHDg8EP7oGllkE2eOkmsuNqCRznDVLBxSGrsQV4YrYUMNhqOgR+i5kPDYpb62TlOE5fI= 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:(13230022)(39860400002)(346002)(376002)(366004)(136003)(396003)(451199015)(54906003)(186003)(26005)(31686004)(66476007)(66556008)(2616005)(6486002)(66946007)(6512007)(478600001)(83380400001)(8676002)(8936002)(5660300002)(41300700001)(4326008)(2906002)(316002)(31696002)(86362001)(38100700002)(6916009)(6506007)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?vZpvvYxDfOit9xYGkAXZeL6zMtKl?= =?utf-8?q?9X7QD+AKW7hkpVWkRmBajDngSwOdUh5HUynYriUeP6XtCdvaDVm213BYxz711pLQw?= =?utf-8?q?zGs7nyB1HJAFAZ95wxH1mgFDtq1WmeroLxB1DLwwcaBea2OVgQ38YLFj1BePtJXvy?= =?utf-8?q?hZDvGkW0PMLfL8ty6Hgb8nqUKh1JTrj4CnRHiyxm5CSwBqoA1txjGDgRvPNlGKiwS?= =?utf-8?q?00TB2N9mqbA1TrswZ7dKSuM2KENA3WkYANn+K6AxwXxek1RC76uT08fjnY9PV3UXh?= =?utf-8?q?oIujMtNUk0p7seufmkbO7MyaO56fLgDNzMuZJTPQm8RJlN6RaCmGDdGBZIJzairSq?= =?utf-8?q?820Nh9z6Fi95vOhClfPqKxWArilIF0RpzX7ZNscSgIsbW3Xva2cUmPP91CIypwzAs?= =?utf-8?q?KDjqAaLDZpQipWovafUFbRe8JN9P5QVLHZQRhDCrSTZmeQR/HihTJ5cz3GYQjuoNe?= =?utf-8?q?y5RoFYY80Gs0OXOvX0d+1n7qPgsNOIrKvWlLQpEA+ce+psckfrUn0od1ka9m5EzRO?= =?utf-8?q?BuvTbAeUMzVyvtkk+EZ2Rar8swbQ4VkdLZtfr/0obTKJQQu38AGWgW8Qq/CKeSk3o?= =?utf-8?q?Q0587knsVsIxGzCoEVwbMjlBkiN4/AritOFWND/+D1pldom6AhagT7THwSKfUCaDI?= =?utf-8?q?V31CFanur6rO1yEwGI7f+hpcJSc8PDZIfw3A9HZysA7c5FsQSsVnUG6zNsnKvHBU2?= =?utf-8?q?kif+95wOMm4uCv8GmYSoFlvjJjnTtcE8mI0yy32uDM83ZPosPZmdCzRvgbV1LpeED?= =?utf-8?q?FDK3ss193se3yYpaHbWYwVOID7gKWXfsFiiJiayrJL3qY3HEOgo65uCca3n0nTsbR?= =?utf-8?q?6VAV4bWuyq9ABbPQC+AfqiCinAfpVw6kSo3uzO8JPxi+ImYVT6YbgMSCmguyvhvRH?= =?utf-8?q?+9wrTOMUtmki57SIwiI/2wn1yMuLSjU//mfOKEAIGrAaWuSgPIAXAaAbgnxTnM4MN?= =?utf-8?q?QtPnySHZW/RsUerZKM3rQqzqb1e6atopUhNKYt/v1Ftcub9CvZrJnpbWOMOoCBY7I?= =?utf-8?q?MnUvwOeNOtBj/nvpl5Tsjrqu6n5FKpDK+5SvAAmUrxEe+XWzrUn0scyOFe+YsJRYT?= =?utf-8?q?XggdjIpMKhCEZcmwLJe4lcybbraeUDGLvQ/iMNk8Ufo9yN3BvtuB9qVVSmuCtN93v?= =?utf-8?q?LgPmFMfd+uFKtjZmigaxCXnqK598/PM53gYGlylFOUEz2mKe8V2D9y+xZhqyhqzT3?= =?utf-8?q?8WDY6mu83dtbpgYtatVN+VAHMOwLKPCTWAf4ZgKAqGMyfWqgLbHYzKLL763vSQJ02?= =?utf-8?q?qPe21rl4W4Cw8t042LhgfMQXa+0priSneGG8W83gqHI/PJZa5nnx2ar6aictZ/+ti?= =?utf-8?q?xDe5gVzC3Lbzy6qHB919+5gnz03j3soKnz6UgvBjjQF3V8oH1RE8MPsm5RtIbdvZD?= =?utf-8?q?MfSntz7GiPfCHRn1k/rzLmzWIML1XoR2dYG0w2LtL1Xsom2a08X2sd9+Yook205r1?= =?utf-8?q?R75YgNqQwigC9p1N0VcoQmau2xg8v1QswsZPbMz6VWNMCs6T9dBsKAVpB169ko7DF?= =?utf-8?q?sCQsxcY6mKqf?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59051f4a-e839-4c34-6f74-08daef35cbcf X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 15:59:15.9114 (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: c/gj38l7AgNF5OFPO0/fRcXrJBCzrlW2XRt8HgGw71aRQk16bZVvetdPzXIEdBp/GzPmfCu+TwqO5d3u/HwuNQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9285 Rather than doing a separate hash walk (and then even using the vCPU variant, which is to go away), do the up-pointer-clearing right in sh_unpin(), as an alternative to the (now further limited) enlisting on a "free floating" list fragment. This utilizes the fact that such list fragments are traversed only for multi-page shadows (in shadow_free()). Furthermore sh_terminate_list() is a safe guard only anyway, which isn't in use in the common case (it actually does anything only for BIGMEM configurations). Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- a/xen/arch/x86/include/asm/domain.h +++ b/xen/arch/x86/include/asm/domain.h @@ -116,6 +116,9 @@ struct shadow_domain { /* OOS */ bool_t oos_active; + /* Domain is in the process of leaving SHOPT_LINUX_L3_TOPLEVEL mode. */ + bool unpinning_l3; + #ifdef CONFIG_HVM /* Has this domain ever used HVMOP_pagetable_dying? */ bool_t pagetable_dying_op; --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -2306,29 +2306,6 @@ void shadow_prepare_page_type_change(str /**************************************************************************/ -/* Reset the up-pointers of every L3 shadow to 0. - * This is called when l3 shadows stop being pinnable, to clear out all - * the list-head bits so the up-pointer field is properly inititalised. */ -static int cf_check sh_clear_up_pointer( - struct vcpu *v, mfn_t smfn, mfn_t unused) -{ - mfn_to_page(smfn)->up = 0; - return 0; -} - -void sh_reset_l3_up_pointers(struct vcpu *v) -{ - static const hash_vcpu_callback_t callbacks[SH_type_unused] = { - [SH_type_l3_64_shadow] = sh_clear_up_pointer, - }; - - HASH_CALLBACKS_CHECK(SHF_L3_64); - hash_vcpu_foreach(v, SHF_L3_64, callbacks, INVALID_MFN); -} - - -/**************************************************************************/ - static void sh_update_paging_modes(struct vcpu *v) { struct domain *d = v->domain; --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -960,6 +960,8 @@ sh_make_shadow(struct vcpu *v, mfn_t gmf } if ( l4count > 2 * d->max_vcpus ) { + d->arch.paging.shadow.unpinning_l3 = true; + /* Unpin all the pinned l3 tables, and don't pin any more. */ page_list_for_each_safe(sp, t, &d->arch.paging.shadow.pinned_shadows) { @@ -967,7 +969,8 @@ sh_make_shadow(struct vcpu *v, mfn_t gmf sh_unpin(d, page_to_mfn(sp)); } d->arch.paging.shadow.opt_flags &= ~SHOPT_LINUX_L3_TOPLEVEL; - sh_reset_l3_up_pointers(v); + + d->arch.paging.shadow.unpinning_l3 = false; } } #endif --- a/xen/arch/x86/mm/shadow/private.h +++ b/xen/arch/x86/mm/shadow/private.h @@ -497,11 +497,6 @@ void shadow_blow_tables(struct domain *d */ int sh_remove_all_mappings(struct domain *d, mfn_t gmfn, gfn_t gfn); -/* Reset the up-pointers of every L3 shadow to 0. - * This is called when l3 shadows stop being pinnable, to clear out all - * the list-head bits so the up-pointer field is properly inititalised. */ -void sh_reset_l3_up_pointers(struct vcpu *v); - /****************************************************************************** * Flags used in the return value of the shadow_set_lXe() functions... */ @@ -722,7 +717,7 @@ static inline void sh_unpin(struct domai { struct page_list_head tmp_list, *pin_list; struct page_info *sp, *next; - unsigned int i, head_type; + unsigned int i, head_type, sz; ASSERT(mfn_valid(smfn)); sp = mfn_to_page(smfn); @@ -734,20 +729,30 @@ static inline void sh_unpin(struct domai return; sp->u.sh.pinned = 0; - /* Cut the sub-list out of the list of pinned shadows, - * stitching it back into a list fragment of its own. */ + sz = shadow_size(head_type); + + /* + * Cut the sub-list out of the list of pinned shadows, stitching + * multi-page shadows back into a list fragment of their own. + */ pin_list = &d->arch.paging.shadow.pinned_shadows; INIT_PAGE_LIST_HEAD(&tmp_list); - for ( i = 0; i < shadow_size(head_type); i++ ) + for ( i = 0; i < sz; i++ ) { ASSERT(sp->u.sh.type == head_type); ASSERT(!i || !sp->u.sh.head); next = page_list_next(sp, pin_list); page_list_del(sp, pin_list); - page_list_add_tail(sp, &tmp_list); + if ( sz > 1 ) + page_list_add_tail(sp, &tmp_list); + else if ( head_type == SH_type_l3_64_shadow && + d->arch.paging.shadow.unpinning_l3 ) + sp->up = 0; sp = next; } - sh_terminate_list(&tmp_list); + + if ( sz > 1 ) + sh_terminate_list(&tmp_list); sh_put_ref(d, smfn, 0); } From patchwork Thu Jan 5 15:59:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090115 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 61A18C3DA7A for ; Thu, 5 Jan 2023 15:59:51 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.471987.732062 (Exim 4.92) (envelope-from ) id 1pDSeb-0000KC-Vf; Thu, 05 Jan 2023 15:59:41 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 471987.732062; Thu, 05 Jan 2023 15:59:41 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSeb-0000K3-Sx; Thu, 05 Jan 2023 15:59:41 +0000 Received: by outflank-mailman (input) for mailman id 471987; Thu, 05 Jan 2023 15:59:40 +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 1pDSea-0000Ja-9G for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 15:59:40 +0000 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2061.outbound.protection.outlook.com [40.107.247.61]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id f4cccead-8d11-11ed-b8d0-410ff93cb8f0; Thu, 05 Jan 2023 16:59:38 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AS8PR04MB8498.eurprd04.prod.outlook.com (2603:10a6:20b:341::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 15:59:36 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 15:59:36 +0000 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: f4cccead-8d11-11ed-b8d0-410ff93cb8f0 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oKo9nrP3Em0BVszABkaGrsSeWIlHIN9fKTE80L45UsjljkAUV7OPHNltFpikUE4zE0JxybWBtjOn+wwRPRmw0tBTTY5SDgH8kEw42RMAIt5mtH2FbErvtCxtb7SIGS2G7Qaj/RhkxL4pskKXE3TvNjbtlo0XVYQUAhR1LNCZhcDD8vzQ6pX+TYuh5CcGcvtmKG5YD6MlklZwrZcXP/flDi83PpjdKtibdqLYkGnkNmVXmv5G+MLIJ6xQ2Eq8V3IyBwe1TazEjuTHI4sLJOcJOEEU7cw7QDCFqt5sjJeBaciD4kssI2Fy01bRKBYJGOpOa0RmiPYzZqhxFzMAJpelmw== 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=ssTI6at9j+dmm0UVb4iktGaytHsP2Cy0qsceqf5wJgQ=; b=hn0DDszc2nBSsRuDm3v5cAL6I62a+2xk0rdW8rcNpdW4lUCKT/u62rNbHeWSLQKyKwga4pPk36HbkDTIHjhqUL+uQFW3o14rkxJj+TMKNUFrwRNbeSX2/lEx0W2Zc6LXe5b3z6/EwM0Hcaefm5uh3wWg26udhARbqN9nA58RsYKV9P7jA7xtExrVv+oPuCyGAqBVpODXPBsM4qv4LT8WTteGx7/18tosmtqMMVDlbYftKcZOzbWiggpDNS/lNdcSdsWmBhc5NBF9Xp3FGmZc+CvrdsUPh5Iq5TNohc48wS6tv6lJBDO41JvnhpXyDtMEkaI5YOB2hpYBW0KF+j292Q== 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=ssTI6at9j+dmm0UVb4iktGaytHsP2Cy0qsceqf5wJgQ=; b=2RBAg+xx8kgkN831po1jqJcIGZOcFlOsr5Ngz2uR5KO1Hz0ccHP46lMwbo2lzVk9W7BpzlDGfcbCSvbOgTEYUyXOoeeELal3nh1rCRhFhXno6m0eSUKesiGGV0t62mA1jh7ZRFKiu4AiGug1JIdfRqJ9gSh2356tCA6uvD/2PaKTuhD6JKHvXGmtlK5x0RgplTCpz/UzEuDJy/8tgxu7bLBnfQs0ZCMpx2WaPowhWqaO2+SQIxVc9kpGycx62kN1YY4XIi/iEkZ7ld6/BLJ4e9I92MvdF5GnBtMSTpKl9fY9sSwM2x7HDI+lrvyl53btvtWG5BLD6G0m6Mxt5iROLw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Thu, 5 Jan 2023 16:59:34 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 02/11] x86/shadow: convert sh_audit_flags()'es 1st parameter to domain 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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FR3P281CA0046.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4a::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_|AS8PR04MB8498:EE_ X-MS-Office365-Filtering-Correlation-Id: 1beecf0d-43f8-45ed-1238-08daef35d7ce X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TCLgu6YBl5RO5kw9pDjgt7TEbbZx1slc1MN/kYGf4ExPPho0prgIVK8xGtOP012TIJqjJTpHZ54IuP/aTZf/21uZhFQc9uKI/qeYOiojFW2/JWCl4eD6Zf5N81iPHLf9f+h7Fv1XWv6G3qeg8e9SphlwaD84QFnKbAHv6ZgDkxiqjN7hWuOqL6EwAOjpqsDxxYBdVRk6pQbdv8RizYUmD1mvOWdmlkl+ogSTSN3Gd8ZHbayx21D965abWYNSFQ6o72vp0Witw7kOpvY5TjYKbye6qjnzsqPTpv7InVZ4n866JojRxmjCCjfOX/S8K+r0bXV8uR5/CWhcVQuKrCK290cgoZMVVYGdGm8jEaffdSftqQ/pVKY7MNaJYEKmo9Frf4fnesl44MG0g5ALijeAY7a0f3m+Xk44CldKLAxZDToYAUVRnyuxgjirY/1ACtamsMovVP3f1eFmaU5UCs+JmJX+j3HATt7THd5QKeYHHf86KVeIQX+jkuP9DtVPMnKk+d4QyC+cOxKLOnjbwqxVMkR50NOfz/XJTOriqxzpvSB0OBLeMko/Dii9a+on3g3sLzulqpmaqlIh18KCU5Ro4B4mXc/24PwcTFN3B0Q3f8LKcB1eWkF2IghSiHFvpEOL4fjohMSFyhYLCengpap9JkBVPqKtUe3jOkfzoR5pdFAO2IiOctPKNeRLtDpjE62WmLLb5EhYoFAeer8IJ7/xiCkJ5bej4317kGcXyJXRzdJL6UBV/5+eQHUOk7a8z1QRat0yMqBXGXnVpVOrS0mO2yA/i/cmiXw/y/A/D+RQGEacthmhrKnaE3pQvqblt/Ke 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:(13230022)(346002)(366004)(396003)(376002)(136003)(39860400002)(451199015)(38100700002)(41300700001)(36756003)(2906002)(8936002)(5660300002)(83380400001)(186003)(6512007)(26005)(478600001)(6486002)(31686004)(6506007)(316002)(66556008)(6916009)(66476007)(31696002)(86362001)(8676002)(54906003)(4326008)(66946007)(2616005)(45980500001)(43740500002)(414714003)(473944003)(357404004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?JzBazzGgHiD3SixhtaR8d5+rMFHB?= =?utf-8?q?W4Eq6MBaeKGxN8BgqHVaazUVPhlr+b7T7p5pCJkdNKW8JE6pN2Cfy2x6lH1HSpkcC?= =?utf-8?q?W3BR7GB/2UXTHvTvsyYCQMo+ZUy7y8UkfhJHhYf0uXMfIf1P+C88CWdSnu0RKLzSo?= =?utf-8?q?t0y0JwVgw698GfMzsDksU6VXpYChYU4Z6kAOUsCCne2SfAuFPiYKEFi0I+znwje9t?= =?utf-8?q?vzW92585Y4CXWSzcYQL0al64K8po0HO1r2aUBZXdAf6oqMdtHvoAjFMy+E9MNxfE6?= =?utf-8?q?o62hO2NnHafQ12D6FAXMkUaz8ATE3n544WmmpgFiGiGafS/JqUiFJqKDsEUOj3NiR?= =?utf-8?q?pK86I3Q8njt3XB9HxUSSfootnHit1m4jSeQxK4Z0eT9w0Dx1svil/NSJuYMe5BfIk?= =?utf-8?q?z+PWHQWSMF170QDc3WM9qYtFwp0qUQ+aBdOzWF/40qS3oIGcoI5ZM8uWzwBjeDUbY?= =?utf-8?q?2rUU04pqR+rYlHbxUnWDkug6ihByOSxwUs41h/zRwrE9B9RPaheD6qF0Z3/CabM03?= =?utf-8?q?14IAlT1Au9iOFX96J2oCIVeWiXqNZlLc7yCIwOtkM4HKCQzhNfAYmi9fnWfGWbxDH?= =?utf-8?q?OCysEGIhUdA56mFwKaBYN4FeEAdoHDfuVmlw+9esR0Teobx0EHmI6VmQHfE9ApNCc?= =?utf-8?q?YT93FIlwGX16NFq5u86eJpx2SKDMHncms1+ScPWxksX2B5gXeizFltoggS48TolEz?= =?utf-8?q?JCDlANWD89iF9zd5JpVmN6KodyIE5VmhLiJHt+QdtfBzUN0AcICZJtxzMRiAydL49?= =?utf-8?q?xAggEjkYb0Winb+xz6hMOUWXQnzdVy7f1eBM7r0tN1xEImXUl+YZ7g3JTf6st+FFG?= =?utf-8?q?YZMuf7BG9tYB0yRufy2P+vKSy7+fIliGGsbmJHKsZxlHXftOFBIqBNxank0YQOHc6?= =?utf-8?q?6QHvY2cBfh7V31hqEIYMyh872o+eWN80S6nt4CG+m0NgYNMXWkjY/TkER7EWe1irx?= =?utf-8?q?XbpdM0cuxDmlnNRKobjOgcAZU7NdA4tNKH+HNeRuO9RgTkHROZld6742vH+WcgGEQ?= =?utf-8?q?dWY3ATCr+4opv486ERh/rzbN1pkUXECYCtu/gZ9pFR88+wzzput6Vk4P8aEAlgeKC?= =?utf-8?q?ZgDy4HLsGcUCjx5pSKe0rCVzZwPQ1u7KaDYgQFauS+PN1N0T89p/r45ONmZ9/6wyA?= =?utf-8?q?ABv0Mc1fBwQcXBVXfZQQ+UAvI3sF2FarrwiiNWAvllNXcd0UXccbom097FfliVK1H?= =?utf-8?q?IzxJf1OxwfRDxyvzkTde3/ayGUFjW7GcqpIb/0UBELwyL2fFl8ZtxZD0WBwbgIL/u?= =?utf-8?q?HMLbilQHcm7WB79TIyFeAN2wEKbqnQuFqMSluHN40KCan7bYYDfz47vlzuP0b7nTA?= =?utf-8?q?gfdydzkGpWaTWgxVFnT93HJ4D/a5AtfEm6SJALbmI5KBx6nNw+BkBLesqtiomsreV?= =?utf-8?q?XBYvUpeCykXBJN55i4oFVLUOgtNWzswZuOedMZIyq0pHDsUIm9o+L6ufz6O9ZRbti?= =?utf-8?q?lq7+jGnZy1Hl/uLhnMLbczc5gkaY8/KefSCK9tFqDFuHz0FNVu8Sr9/FykCNYn3h+?= =?utf-8?q?Mm2AEXmsQHZN?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1beecf0d-43f8-45ed-1238-08daef35d7ce X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 15:59:36.0508 (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: 4metWACwmbaaQeyvmJyFj/QJ02e4TS3mtJkR00Uzs+7WPuBxm9GNKFMW+4vEjTVAzi8HKTSsw74kcczGaFmWYQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8498 Nothing in there is vCPU-specific. With the introduction of the local variable in sh_audit_l1_table(), convert other uses of v->domain as well. Signed-off-by: Jan Beulich --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -3919,13 +3919,13 @@ static void cf_check sh_pagetable_dying( done = 1; \ } while (0) -static const char *sh_audit_flags(struct vcpu *v, int level, +static const char *sh_audit_flags(const struct domain *d, int level, int gflags, int sflags) /* Common code for auditing flag bits */ { if ( (sflags & _PAGE_PRESENT) && !(gflags & _PAGE_PRESENT) ) return "shadow is present but guest is not present"; - if ( (sflags & _PAGE_GLOBAL) && !is_hvm_vcpu(v) ) + if ( (sflags & _PAGE_GLOBAL) && !is_hvm_domain(d) ) return "global bit set in PV shadow"; if ( level == 2 && (sflags & _PAGE_PSE) ) return "PS bit set in shadow"; @@ -3948,6 +3948,7 @@ static const char *sh_audit_flags(struct int cf_check sh_audit_l1_table(struct vcpu *v, mfn_t sl1mfn, mfn_t x) { + struct domain *d = v->domain; guest_l1e_t *gl1e, *gp; shadow_l1e_t *sl1e; mfn_t mfn, gmfn, gl1mfn; @@ -3964,7 +3965,7 @@ int cf_check sh_audit_l1_table(struct vc /* Out-of-sync l1 shadows can contain anything: just check the OOS hash */ if ( page_is_out_of_sync(mfn_to_page(gl1mfn)) ) { - oos_audit_hash_is_present(v->domain, gl1mfn); + oos_audit_hash_is_present(d, gl1mfn); return 0; } #endif @@ -3994,7 +3995,7 @@ int cf_check sh_audit_l1_table(struct vc } else { - s = sh_audit_flags(v, 1, guest_l1e_get_flags(*gl1e), + s = sh_audit_flags(d, 1, guest_l1e_get_flags(*gl1e), shadow_l1e_get_flags(*sl1e)); if ( s ) AUDIT_FAIL(1, "%s", s); @@ -4002,7 +4003,7 @@ int cf_check sh_audit_l1_table(struct vc { gfn = guest_l1e_get_gfn(*gl1e); mfn = shadow_l1e_get_mfn(*sl1e); - gmfn = get_gfn_query_unlocked(v->domain, gfn_x(gfn), &p2mt); + gmfn = get_gfn_query_unlocked(d, gfn_x(gfn), &p2mt); if ( !p2m_is_grant(p2mt) && !mfn_eq(gmfn, mfn) ) AUDIT_FAIL(1, "bad translation: gfn %" SH_PRI_gfn " --> %" PRI_mfn " != mfn %" PRI_mfn, @@ -4064,8 +4065,8 @@ int cf_check sh_audit_l2_table(struct vc gl2e = gp = map_domain_page(gl2mfn); SHADOW_FOREACH_L2E(sl2mfn, sl2e, &gl2e, done, d, { - s = sh_audit_flags(v, 2, guest_l2e_get_flags(*gl2e), - shadow_l2e_get_flags(*sl2e)); + s = sh_audit_flags(d, 2, guest_l2e_get_flags(*gl2e), + shadow_l2e_get_flags(*sl2e)); if ( s ) AUDIT_FAIL(2, "%s", s); if ( SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES_MFNS ) @@ -4116,8 +4117,8 @@ int cf_check sh_audit_l3_table(struct vc gl3e = gp = map_domain_page(gl3mfn); SHADOW_FOREACH_L3E(sl3mfn, sl3e, &gl3e, done, { - s = sh_audit_flags(v, 3, guest_l3e_get_flags(*gl3e), - shadow_l3e_get_flags(*sl3e)); + s = sh_audit_flags(d, 3, guest_l3e_get_flags(*gl3e), + shadow_l3e_get_flags(*sl3e)); if ( s ) AUDIT_FAIL(3, "%s", s); if ( SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES_MFNS ) @@ -4164,8 +4165,8 @@ int cf_check sh_audit_l4_table(struct vc gl4e = gp = map_domain_page(gl4mfn); SHADOW_FOREACH_L4E(sl4mfn, sl4e, &gl4e, done, d, { - s = sh_audit_flags(v, 4, guest_l4e_get_flags(*gl4e), - shadow_l4e_get_flags(*sl4e)); + s = sh_audit_flags(d, 4, guest_l4e_get_flags(*gl4e), + shadow_l4e_get_flags(*sl4e)); if ( s ) AUDIT_FAIL(4, "%s", s); if ( SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES_MFNS ) From patchwork Thu Jan 5 15:59:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090116 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9C37FC3DA7A for ; Thu, 5 Jan 2023 16:00:08 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.471993.732074 (Exim 4.92) (envelope-from ) id 1pDSet-0000pt-Bb; Thu, 05 Jan 2023 15:59:59 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 471993.732074; Thu, 05 Jan 2023 15:59:59 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSet-0000pk-8m; Thu, 05 Jan 2023 15:59:59 +0000 Received: by outflank-mailman (input) for mailman id 471993; Thu, 05 Jan 2023 15:59:58 +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 1pDSes-0008Jw-Ef for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 15:59:58 +0000 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2084.outbound.protection.outlook.com [40.107.247.84]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 00508178-8d12-11ed-91b6-6bf2151ebd3b; Thu, 05 Jan 2023 16:59:57 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AS8PR04MB8498.eurprd04.prod.outlook.com (2603:10a6:20b:341::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 15:59:56 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 15:59:56 +0000 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: 00508178-8d12-11ed-91b6-6bf2151ebd3b ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aBAGFaC+7XaXEaS/dMOryNP8HQJjZaJgWlsPf8YSRNoX2nhTcHx8BN9OPCZ0ghGj2h1mfpcHcxFYWugMFPKXx656Ui1k0WuaWoc0w6b3tBV4el8J+UZ1Uu7uw9ONtKCbUq6MS+Xfq6Z+ehawsia9QN33tmh8bzvxut0cKRvx+sJBlJuBJGgSk80vX92j97RfcIdLMxlcj8Twv/Z1A6Qc9fnLEVQSu3xM7T/1DIec4/nhxrEL6p220Ovb9eSOHt9B/VbPsR3gcITTXVc24NOLyvTBYfbgBhSsjQkfnso54zsfVmW6SqrODVyqdoVch/GiZ2QhIyULe3AtHbQGltzGBQ== 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=0MAeVXjSAqbPszhTtBmGKP8+Eqtn6/71idrhhw4dk4U=; b=cIi/8cE5EczZeXkInl+/1Cs8QWA8mtfdQytQCHE3xg+bLry2lnI7eCVAwAfo9pUdUViw6IsyuZQo5D+qmt0xmKaOzecmby/6M7yUCZjVvN9r1vDyqt5ph4Ppgz/f60xE34HQo7jmvpoS5IR/1U5vUVuMy3OFD07DFPKMaf2+V4kMtpKq6paxBW54qkMR8M+UHek/eNpylprBkzrRWBqY1fR22xcPj/7qk9Cyuyxcgx6x0cCBVcG/+vI+7b5t9jVCad5+aXPUCrjLjQyjh70Nf3s0c7qblO78qeFM3a6GAElP15Lj+EjmdOx27kxNnzEW0WQamr4WjWBO4CM2B9BbpA== 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=0MAeVXjSAqbPszhTtBmGKP8+Eqtn6/71idrhhw4dk4U=; b=CLHNi215qsvBFMX1AQSq46LskidQpk2iR6B37Zv7cfzoL5vw/IpazCn8HHcqPfX/19KQOldOxZJ+NEGitxt02Yh1nwd9ZKrrVbiIp94j38GqNKsbDHj3SXha73mk/4NQu1K0FzJ17jojiFwpr5ng/hurKwRy4fUemfWhnoh2EAdmgSXObAU7qHBH4TGRKdzP/q0BWkI5ENTerJ6+fMBO5IcWj5e+/VMLWRY9xQ7P2QaBUL/5AIwvBFZkKXOb25FNUSw2FJXdiZNqlKLtTFgS9bf6wbxTzYpWeW8cWHhU/xpW5ZyVMIZw3qUiNL+34s66JxgMg0Xkv+bwupAF37osYQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <9096ecd9-b3ec-4d06-8641-f8d6cef19027@suse.com> Date: Thu, 5 Jan 2023 16:59:55 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 03/11] x86/shadow: drop hash_vcpu_foreach() 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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FR0P281CA0112.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a8::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_|AS8PR04MB8498:EE_ X-MS-Office365-Filtering-Correlation-Id: ff7b9a27-cbaa-4d0c-29be-08daef35e3e2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wMA0ow7UH2i2HFI6MYvE66D9IP3H0N4cmahrWnviOiahEWb7sz+WfCQwhn/hTtN0iG2/CLnILb+7ft3cFxkIi5s0h3wON6DmsR7CeZprOaHsvIqHasBJIQKcW/DK8evOSBXFDJebmRcgSjc2EoR5TDkTFLPQqE/KPl8xUJJ1xq2ZRwku/o47QjDsWbTcqzhZf0p07jXebdGkSrs01R+fAosvvylKxK3Uc0bNT0DARD4k4xrK6rOGzdUy3sSBTMVoA44xq/6ZZwmRZhQhd/pB0VLxpqbltW1FlEiryclG4SwHeWfeQywyzO7QuClIAQj9clD/N4I+/+JLsX3/3/8Wf7FWc7KXLuCllg8wxm3aKmvis7ZQb0Gu5AeNrGrcLl+gMYzOP+eMqWJt1xFG/cJ3mEiJXGR9sQ+hk3KZP35vEIuYe3goCGvX7MOWJdIKQNajYmWoHO9kVDQ/Q5OkN7JzW1kbAlTIG6MsfKuvAQ7bd2s8OqShANB+058L2qbiNCU7US8r62xNBr6ln3iqvoeAG3ov7JXgqY1Fii6hM8xR0xj5Ava/wUuahIPuoB9zFLI/hj1N5mkMgwADMnlnpB9hnae65nh6TEtTL5+XRGhFKavpY0j91dVWngn/9W4HJfPsfujZBAgwx2QXBxxOZsuUEn82BLVWkmu6+MbzhUgngf6vrJo+zB8YNVOIff/+zc1uGbYxHYhZ1yssCmFb95pyV4vSIqXdoKenE3wUhktYFIMbYBswtd4uPyy+ZL0KFdhQkV8rlqOe4AhscWeZdbq6gduh7zxFwbOtnT9Od6G4h40c0+dWEvVJpcRNJ/NwZ2D6 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:(13230022)(346002)(366004)(396003)(376002)(136003)(39860400002)(451199015)(38100700002)(41300700001)(36756003)(2906002)(8936002)(5660300002)(83380400001)(186003)(6512007)(26005)(478600001)(6486002)(31686004)(6506007)(316002)(66556008)(6916009)(66476007)(31696002)(86362001)(8676002)(54906003)(4326008)(66946007)(2616005)(45980500001)(43740500002)(414714003)(473944003)(357404004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?z9g1hmksyupMtxq6hlZgSYO2/v6E?= =?utf-8?q?5ir9nVOw91y/sPyhRb/Qo+PPUF04141q92DIHHqBJtYJX6hjOV6hoptLa8dGOyD5o?= =?utf-8?q?KphGE/tEjgSnJ8bGarvBG6JS78IbbLGuT1fGmK7zi7VT5cxp9sGncLOCJpgG6GI5X?= =?utf-8?q?5PnPCv0b5ptOv+V0UkP5LYL8d1aQvHo0aR8FpXP+wZGLMbNXllKgXTEBxKere/CbX?= =?utf-8?q?QeVC6M75rXxinjq2fYFaY9izNOF4qsbFUrd4OEHxUXPL2c2SyAAJhtQRlXEHOS1CC?= =?utf-8?q?hXNRzp8uHxbBf+vVqBdJrCkkhLL3V86jKKDMe1td6Xc5hlrgzHiagU1EWfTpXMQF/?= =?utf-8?q?0hfVKjXT0aUtuUbPBmjIk1I5Dg2+QoJBeyP+026MQA61PChGvGDA/nlKNPneg5NP+?= =?utf-8?q?XlZUlfGsFOxpcPYnrqhb6Pi//Y5cEmrZ0GCG+TcnCND0vlsPSb8Ph9WP6gFM86eQ1?= =?utf-8?q?s+pRaaum6YQEjETb+pDqkM1MHx2MreMuelot0Q29S6iuQOhT27dk+TAaTCQhvBhbd?= =?utf-8?q?pV3PPkJIXXTtIrpJ+mTNEgP+gH4PC2sh+wOgiv1Jm0DCsd2V6udSktrveQjojU4b/?= =?utf-8?q?jmKWEkWNWxReeF2BKbCNkfEbLy+ZGOd+luTQGQ87DdEnmQE7GDBFRbStIj4qePUfs?= =?utf-8?q?LnRvyRuDgS046VAQetebPKXGIKOn6+v1C548Nay9LFtfuSDVRTrV6jZx4BM1ADCly?= =?utf-8?q?PgkpUdH+Qj9qqoT4MuUSaFIVQn5iiULI6wkb5xmiikcUl3chDeEg3ziehHnCJG0fk?= =?utf-8?q?KkSEx4YOBEtx8pEYUjWhJap9xdDlLHQ928gnNdEP7RJ8vHjrSDgUsh44JbosnWeHH?= =?utf-8?q?WCCwL1cS4P75drFkSpQsp+EhPpw/dHTLZe3SugnCzaU/kC48SkAbf8m/x/5xbVcqT?= =?utf-8?q?wCc8CuyCJt6TMKpr507hBkj56AnbfdolBVS/weVZvFnojMhDcKV9fuDMcDa/6uHfH?= =?utf-8?q?BIynuelr1/2On2P52KK3yPftIfnTGS7zz5+1w3S107VoCi5aMYh5ho0MYJtQ/KlMX?= =?utf-8?q?he1Axi+QQsSbHCEzdzQpcRaIY1NSHcnR2gso1CjqmFfX6XpdIvOPjiPDwXJD0+Pl/?= =?utf-8?q?hxdGXvHOx8zbJss9nztNQD0ADVwH4pMco4vAPgna4IWmTJcTkraLVvHOU2xm3IE80?= =?utf-8?q?uezMQyjYQ4N+EdpRSstiOpHHbIw6BwpTEp0yU7l9OvNhUGUeWtAVw64B3C4dGnFAQ?= =?utf-8?q?h54mCLD05adbMjjJ5wHA4Efh2xwpv8L8KVyMNh/ox9sLcO17rqHhJ4Nboo9QT809q?= =?utf-8?q?SsW4kfOAkjy501Vsa8H/nU0KIQDLGUQswCickF4wJVuQeVHcAPT3V2zlc0NDUvv0W?= =?utf-8?q?u5NA2cDSiYaHqzibNt/d7JadIVnSCt+jcTTGPZ5iLkdHUmi6OA9obAdZb1CRwOaAx?= =?utf-8?q?q9OH30hxljhyE8ecLXfZFzoy1MWvcPJLYLhevyDxdOiVFFQijDgqQDguoFyufeoPF?= =?utf-8?q?dKaTslUIpS+EUKTK50av+NS4qXOd0k8AnTPIATJRxeOqBXG6QhhBE0L7ERpl/SYCF?= =?utf-8?q?vPQ5RpMUUJMz?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff7b9a27-cbaa-4d0c-29be-08daef35e3e2 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 15:59:56.3307 (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: JiJSv7t2nDH/vrExr8DiKaQCocO2Paf1PDFdzbgsUuVqoUuUFHSeXzPGQqkyQSJankupVF5RQhgRkEbKst6Qfg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8498 The domain based variant is easily usable by shadow_audit_tables(); all that's needed is conversion of the callback functions. Signed-off-by: Jan Beulich --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1640,59 +1640,11 @@ bool shadow_hash_delete(struct domain *d return true; } -typedef int (*hash_vcpu_callback_t)(struct vcpu *v, mfn_t smfn, mfn_t other_mfn); typedef int (*hash_domain_callback_t)(struct domain *d, mfn_t smfn, mfn_t other_mfn); #define HASH_CALLBACKS_CHECK(mask) \ BUILD_BUG_ON((mask) > (1U << ARRAY_SIZE(callbacks)) - 1) -static void hash_vcpu_foreach(struct vcpu *v, unsigned int callback_mask, - const hash_vcpu_callback_t callbacks[], - mfn_t callback_mfn) -/* Walk the hash table looking at the types of the entries and - * calling the appropriate callback function for each entry. - * The mask determines which shadow types we call back for, and the array - * of callbacks tells us which function to call. - * Any callback may return non-zero to let us skip the rest of the scan. - * - * WARNING: Callbacks MUST NOT add or remove hash entries unless they - * then return non-zero to terminate the scan. */ -{ - int i, done = 0; - struct domain *d = v->domain; - struct page_info *x; - - ASSERT(paging_locked_by_me(d)); - - /* Can be called via p2m code &c after shadow teardown. */ - if ( unlikely(!d->arch.paging.shadow.hash_table) ) - return; - - /* Say we're here, to stop hash-lookups reordering the chains */ - ASSERT(d->arch.paging.shadow.hash_walking == 0); - d->arch.paging.shadow.hash_walking = 1; - - for ( i = 0; i < SHADOW_HASH_BUCKETS; i++ ) - { - /* WARNING: This is not safe against changes to the hash table. - * The callback *must* return non-zero if it has inserted or - * deleted anything from the hash (lookups are OK, though). */ - for ( x = d->arch.paging.shadow.hash_table[i]; x; x = next_shadow(x) ) - { - if ( callback_mask & (1 << x->u.sh.type) ) - { - ASSERT(x->u.sh.type <= SH_type_max_shadow); - ASSERT(callbacks[x->u.sh.type] != NULL); - done = callbacks[x->u.sh.type](v, page_to_mfn(x), - callback_mfn); - if ( done ) break; - } - } - if ( done ) break; - } - d->arch.paging.shadow.hash_walking = 0; -} - static void hash_domain_foreach(struct domain *d, unsigned int callback_mask, const hash_domain_callback_t callbacks[], @@ -3215,7 +3167,7 @@ int shadow_domctl(struct domain *d, void shadow_audit_tables(struct vcpu *v) { /* Dispatch table for getting per-type functions */ - static const hash_vcpu_callback_t callbacks[SH_type_unused] = { + static const hash_domain_callback_t callbacks[SH_type_unused] = { #if SHADOW_AUDIT & (SHADOW_AUDIT_ENTRIES | SHADOW_AUDIT_ENTRIES_FULL) # ifdef CONFIG_HVM [SH_type_l1_32_shadow] = SHADOW_INTERNAL_NAME(sh_audit_l1_table, 2), @@ -3262,7 +3214,7 @@ void shadow_audit_tables(struct vcpu *v) HASH_CALLBACKS_CHECK(SHADOW_AUDIT & (SHADOW_AUDIT_ENTRIES | SHADOW_AUDIT_ENTRIES_FULL) ? SHF_page_type_mask : 0); - hash_vcpu_foreach(v, mask, callbacks, INVALID_MFN); + hash_domain_foreach(v->domain, mask, callbacks, INVALID_MFN); } #ifdef CONFIG_PV --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -326,32 +326,32 @@ static void sh_audit_gw(struct vcpu *v, if ( mfn_valid(gw->l4mfn) && mfn_valid((smfn = get_shadow_status(d, gw->l4mfn, SH_type_l4_shadow))) ) - (void) sh_audit_l4_table(v, smfn, INVALID_MFN); + sh_audit_l4_table(d, smfn, INVALID_MFN); if ( mfn_valid(gw->l3mfn) && mfn_valid((smfn = get_shadow_status(d, gw->l3mfn, SH_type_l3_shadow))) ) - (void) sh_audit_l3_table(v, smfn, INVALID_MFN); + sh_audit_l3_table(d, smfn, INVALID_MFN); #endif /* PAE or 64... */ if ( mfn_valid(gw->l2mfn) ) { if ( mfn_valid((smfn = get_shadow_status(d, gw->l2mfn, SH_type_l2_shadow))) ) - (void) sh_audit_l2_table(v, smfn, INVALID_MFN); + sh_audit_l2_table(d, smfn, INVALID_MFN); #if GUEST_PAGING_LEVELS >= 4 /* 32-bit PV only */ if ( mfn_valid((smfn = get_shadow_status(d, gw->l2mfn, SH_type_l2h_shadow))) ) - (void) sh_audit_l2_table(v, smfn, INVALID_MFN); + sh_audit_l2_table(d, smfn, INVALID_MFN); #endif } if ( mfn_valid(gw->l1mfn) && mfn_valid((smfn = get_shadow_status(d, gw->l1mfn, SH_type_l1_shadow))) ) - (void) sh_audit_l1_table(v, smfn, INVALID_MFN); + sh_audit_l1_table(d, smfn, INVALID_MFN); else if ( (guest_l2e_get_flags(gw->l2e) & _PAGE_PRESENT) && (guest_l2e_get_flags(gw->l2e) & _PAGE_PSE) && mfn_valid( (smfn = get_fl1_shadow_status(d, guest_l2e_get_gfn(gw->l2e)))) ) - (void) sh_audit_fl1_table(v, smfn, INVALID_MFN); + sh_audit_fl1_table(d, smfn, INVALID_MFN); #endif /* SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES */ } @@ -3946,9 +3946,8 @@ static const char *sh_audit_flags(const return NULL; } -int cf_check sh_audit_l1_table(struct vcpu *v, mfn_t sl1mfn, mfn_t x) +int cf_check sh_audit_l1_table(struct domain *d, mfn_t sl1mfn, mfn_t x) { - struct domain *d = v->domain; guest_l1e_t *gl1e, *gp; shadow_l1e_t *sl1e; mfn_t mfn, gmfn, gl1mfn; @@ -4015,7 +4014,7 @@ int cf_check sh_audit_l1_table(struct vc return done; } -int cf_check sh_audit_fl1_table(struct vcpu *v, mfn_t sl1mfn, mfn_t x) +int cf_check sh_audit_fl1_table(struct domain *d, mfn_t sl1mfn, mfn_t x) { guest_l1e_t *gl1e, e; shadow_l1e_t *sl1e; @@ -4041,9 +4040,8 @@ int cf_check sh_audit_fl1_table(struct v return 0; } -int cf_check sh_audit_l2_table(struct vcpu *v, mfn_t sl2mfn, mfn_t x) +int cf_check sh_audit_l2_table(struct domain *d, mfn_t sl2mfn, mfn_t x) { - struct domain *d = v->domain; guest_l2e_t *gl2e, *gp; shadow_l2e_t *sl2e; mfn_t mfn, gmfn, gl2mfn; @@ -4093,9 +4091,8 @@ int cf_check sh_audit_l2_table(struct vc } #if GUEST_PAGING_LEVELS >= 4 -int cf_check sh_audit_l3_table(struct vcpu *v, mfn_t sl3mfn, mfn_t x) +int cf_check sh_audit_l3_table(struct domain *d, mfn_t sl3mfn, mfn_t x) { - struct domain *d = v->domain; guest_l3e_t *gl3e, *gp; shadow_l3e_t *sl3e; mfn_t mfn, gmfn, gl3mfn; @@ -4141,9 +4138,8 @@ int cf_check sh_audit_l3_table(struct vc return 0; } -int cf_check sh_audit_l4_table(struct vcpu *v, mfn_t sl4mfn, mfn_t x) +int cf_check sh_audit_l4_table(struct domain *d, mfn_t sl4mfn, mfn_t x) { - struct domain *d = v->domain; guest_l4e_t *gl4e, *gp; shadow_l4e_t *sl4e; mfn_t mfn, gmfn, gl4mfn; --- a/xen/arch/x86/mm/shadow/multi.h +++ b/xen/arch/x86/mm/shadow/multi.h @@ -83,19 +83,19 @@ SHADOW_INTERNAL_NAME(sh_remove_l3_shadow #if SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES int cf_check SHADOW_INTERNAL_NAME(sh_audit_l1_table, GUEST_LEVELS) - (struct vcpu *v, mfn_t sl1mfn, mfn_t x); + (struct domain *d, mfn_t sl1mfn, mfn_t x); int cf_check SHADOW_INTERNAL_NAME(sh_audit_fl1_table, GUEST_LEVELS) - (struct vcpu *v, mfn_t sl1mfn, mfn_t x); + (struct domain *d, mfn_t sl1mfn, mfn_t x); int cf_check SHADOW_INTERNAL_NAME(sh_audit_l2_table, GUEST_LEVELS) - (struct vcpu *v, mfn_t sl2mfn, mfn_t x); + (struct domain *d, mfn_t sl2mfn, mfn_t x); int cf_check SHADOW_INTERNAL_NAME(sh_audit_l3_table, GUEST_LEVELS) - (struct vcpu *v, mfn_t sl3mfn, mfn_t x); + (struct domain *d, mfn_t sl3mfn, mfn_t x); int cf_check SHADOW_INTERNAL_NAME(sh_audit_l4_table, GUEST_LEVELS) - (struct vcpu *v, mfn_t sl4mfn, mfn_t x); + (struct domain *d, mfn_t sl4mfn, mfn_t x); #endif extern const struct paging_mode From patchwork Thu Jan 5 16:00:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090117 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5D85AC3DA7A for ; Thu, 5 Jan 2023 16:00:43 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.472002.732085 (Exim 4.92) (envelope-from ) id 1pDSfQ-0002ri-Ky; Thu, 05 Jan 2023 16:00:32 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 472002.732085; Thu, 05 Jan 2023 16:00:32 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSfQ-0002rb-IC; Thu, 05 Jan 2023 16:00:32 +0000 Received: by outflank-mailman (input) for mailman id 472002; Thu, 05 Jan 2023 16:00:31 +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 1pDSfP-0000Ja-JV for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 16:00:31 +0000 Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2050.outbound.protection.outlook.com [40.107.103.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 134a6360-8d12-11ed-b8d0-410ff93cb8f0; Thu, 05 Jan 2023 17:00:29 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB8046.eurprd04.prod.outlook.com (2603:10a6:102:ba::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 16:00:27 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 16:00:27 +0000 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: 134a6360-8d12-11ed-b8d0-410ff93cb8f0 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fxAjOOLrji3RG5UA1diO5HQwpPpZmwtgl/I4YEhiFwdGWMqONKqxCWXTBeHzm3iPhlRWZIUXQq+llrbVlocHN00J1vrSs/hwR+wuweTW101hIuS/eDiRbGmjrCrE/41lSrCNx5abbvpy63aL88EBK4aua1/7ZxLnJusC5ePjiqXU8P+M4660veGwJ42/lZ4Ibb3nWQL6M+c/RdZj6wjIN7UODCG/dzYpgnfDeez+KJw/PlnEo+giB1nI8lixJi41IjB/oLdLxpK+fDj0r6to6djr15Mi3uSvyBptWvBk5NSHdZIh39lXodr46vLXOqEs0tdbWaKUHCn+hhFdeaplQw== 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=ccVaAbNoDzT3PDnX15GWyJdkpvb9ChZOySArZobL5pY=; b=J16Pr14Zty8dPH0kjaQ69LVW9oK8wGdnE/S5ZtL2VbqsJIPuXyReoOn9IUCFKPM5iLXz2505wNnMrhJE8DEHO8FzrZokXtcbiTPPcQhWQqepMpEk2Z+6Lk7wEWiZak4TNXasxUnoh0tdejQXQ3xKbZr0SkSxnVoFnG/LjXLqL3liB66pq7K7+QCbYxqYeQxWzva0h+b0EHjRbtXeJdjR9wb/XC8ISXa0+SBg4Izm/dX8BCPkm9a96HQMg7IQhHq9bkfAPhwY8YoP3T4cDx7ayB4RIOIxnfbexqSDv6NtikyVE6Nr+9duJHTrSpRMsB7KVsobsPrFY8BToS11C02zEg== 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=ccVaAbNoDzT3PDnX15GWyJdkpvb9ChZOySArZobL5pY=; b=uleiPKAIJvQhzEH51SiiGkOKvGwSELn6D7nRQ9CCD0VnznoAgXMhBwgFl5AHV0CIEjTJt6z5A3aer9+hBOf4vc6JjCk6EHkUyQcEA1wffN910+82DhrV2MG+PTjqZcFxh2bHzMVqxJ+WfqracXALtAKuvC77oOAy3+w8hOItEAzxIMN20RSiQLG7ioRR4jSqSkHl+zpP+j0TCYdsfmW5mseq5MJDuuiogsm+qP0GEMvNK5lqucotzmrmnfhvzMxHcYQcAYn4ueidfwa+96mXnUHCJTSPuRr9A8WcxERLKVmcgpdQ1Lr+19ZCE5uG6w881pQwLoNahH49i/elBOgL1Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <46233ea3-9bce-b23f-3e6c-887b2c21ee71@suse.com> Date: Thu, 5 Jan 2023 17:00:25 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 04/11] x86/shadow: rename hash_domain_foreach() 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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FR0P281CA0047.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:48::18) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PA4PR04MB8046:EE_ X-MS-Office365-Filtering-Correlation-Id: d2f29f5c-f0f0-4bd8-8ee4-08daef35f633 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oVbbK8g/mC5+HMlDJhWTg9A8eqdUUCE2nqSxOCWajgyL7w6Y5i/r9tnK0rmkLutZADeYLKt7rYUGVXDiC533QhzA1U2mO8xLAabf/w28n+zj9cKmVPj6b/4htYwOgkUFwaxG5V/FuV8XWa8d4fOv2St6aqvV93EJfqwJZKcayJ82vaS6Rn1JespxPHfHDlBZN0ox8+r2B9u9ANVuuTsrNNbL0h1Dib/SBFFDsVz4fRuV82sDf416kJZPyN05ADT6rjedAu38ViyDeAWlG+ItxJuQZ1E3IGtoujgb3vrFJyJ9TX5crEViDFfVcgNzDDsDYKS6ssvtbYovR6dBaHYTFAaAiSUMjxzmdoFY7Gy1FWbCWnkpmaJotZlpkV5WuURfuKesESKkwTe7878KjRsWxMMO9ZXNHH9/6BmwhiFTJVWPRdQrJqb9Ga3+/8fBjR8wMXLDhQkV3Gdf/VBudCQDx3bEz3LKj952QsLBejEWOyK+7w0pqL/sWsJ+pf7AD29gE5seFExlVf+IXG/Dc6lbX9qESQy2uqDh6ev2dOJbYVmM1Z+ewyY13Oj47zenVB8DGKgQOfxAEpcH2YZbiumBxgp/AOaaVjJUiMjFmhf/w74Jbq1OvQoloc7/YpBh0EPA9s7HiKgwco9qcczG24vIhNMZN5DEzs4kTXkeAs4RhmdkcrkCUG/YYuQrNGWSHyRCUyBDI/IYPvWi9YamLbVwZF6gVZ4rSKQe70Tht7GVobo= 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:(13230022)(136003)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38100700002)(6506007)(316002)(83380400001)(31696002)(4326008)(86362001)(66476007)(66946007)(5660300002)(8676002)(2906002)(66556008)(41300700001)(8936002)(6512007)(26005)(186003)(2616005)(6916009)(54906003)(478600001)(6486002)(31686004)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?YAa/GYYapms/35QLyUhh9Hb22g/s?= =?utf-8?q?GIqajO3ihLf7dl4oJDDvNQrNZYyiVZ6whGzt/gawVoBf5WnC3j+M9xI8p+Otla08Z?= =?utf-8?q?1FUfP8/m/ookHFNX4x49eebbsh6rkFy5/JnwoiBT9jsjk9GCSGB4sE6U4GoyewPSZ?= =?utf-8?q?S1eSP3xCBHkhDr3JSSpdUnsCkAX7XE76NpY+pzCG2nkXOgPJyQ2EDd+de8XOaCLA7?= =?utf-8?q?s0GQYn/byfwBAcVtpuZ3VlHP9La1VHpYdQ1E9TLY1MV1FTYgsUE2aucXRNBS4l8U+?= =?utf-8?q?uG1vOUa1Pb85KKqqka2vTgKmGVvPcOzDzOXozPZntVTw8eXFr68zzpsdwAfwekaOg?= =?utf-8?q?S45YVIcZRzWT6X6XK0pH/AG7Ub2vVL0On3ItQlvXD2agLtWN5UJWNnbkE/KMiM3ru?= =?utf-8?q?2Sl3TUR9fBrr+MzWy35BjXHyx9/8OFutl4GtJHBVB+vw0P0Ret2dNbQ6YnSDCYfl6?= =?utf-8?q?hOTluiNvm526KvDOVWy9lPldx74/9BSscClpd66Grag856pcAYHx1/Mp+zsLF1xTy?= =?utf-8?q?aiKnxNPcArQZgtiHRdWLsle0xb9VMtMdkZQo8GtQO9UwGq3ac+guvdpFcitcjwmHf?= =?utf-8?q?RtOo7+7kNjmjDWZF2nQAB0+UI+Qh1s58YWHL8CT+RkGiHtkDazGAfVEYZqZd33mXR?= =?utf-8?q?4PQaynt08mfZj2CgaG5A6CSb/Ct1JPz+p5K4bx/FM7E86jPnvyaGIMS9Ri2YXDFM8?= =?utf-8?q?ccwgdT6J8kj+l/mHJFlHxX1kgcx8duT+argvPNZDfcDZ8ECgU9Y4exCY7Un5y7zca?= =?utf-8?q?8IVojO+u3rale++6Gg511PV+cZWuxblqsb6yUOn7JfbvvVT4U3wnQ1UvarsnyKGrx?= =?utf-8?q?BZbp4rwynECLzMXNjcQG64o9As3qtt1tOTKxXNg4MlKiYjoETFByY9j9hbSpsramH?= =?utf-8?q?8nrvws+ITGg0n0uHTKiOl7la/bZgBn6rzF9QcCtZSzp5aZZDjQ4d17LluC7zEiPKA?= =?utf-8?q?r1xAxMESJ2ufGyhuQt1LJF6HED/NYgJzI/m4YEKqoTGRMGMrHCRv/k0AAdcdNT28h?= =?utf-8?q?5i3Pu3ZqD3rtW+/BiwahXUrbhRQNqVJCrYjwgCycjpMn+g7mIABznwwzIsKhwT+z/?= =?utf-8?q?C56XHpxI74dEs7kjFg0BOCnp9Uh5PaZKiMk+A5Wxdy1fUsN4/o0nBDjn57ugjvncj?= =?utf-8?q?mpMozjW9/rQuZ2KYC6pZIc7izKt9f+4ZoQSfZ9pNA1Y/k0XtG7R6KYTI4tjr28qOh?= =?utf-8?q?UMr/zkVJYJ1LnpjL84a6CuHK/pYusakvkCuFNQ/vSmI4JsdS3f4GEFZeofM05lzHO?= =?utf-8?q?NXhd2h+ci0XtxshyhardCBe/9g9b/+GruA8N656eEN84QzrXVyJ72NheCHSjtp6fL?= =?utf-8?q?INkhYwx1m5G8B7U2tIWZ1nIBzzjrfKV61DarDuHmqVfjYWYIDW2jDju+sE2F9v4rm?= =?utf-8?q?y+LyJhG9o9YLYoQDSXY47WEriH8DY6TyNtESxZjroSqcmQQ9yyGToXNeHoZqLxpKL?= =?utf-8?q?ulEHPgx+GzA+apR/FD/X8wrAvv49lqjL7oivaV4r+iwDz4D0LslDSbGAA+/PE/ZQF?= =?utf-8?q?LQYh4kZN6S+6?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2f29f5c-f0f0-4bd8-8ee4-08daef35f633 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 16:00:27.1413 (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: +l6KEO+gl/jpLOR3lQpqLK0F4Xt1P139pvE6qzAXAjshO2TnaAlMetrMwu3MQEf3oheEFvV/Pxw8I/sh/L1Cbw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8046 The "domain" in there has become meaningless; drop it. Signed-off-by: Jan Beulich --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1640,15 +1640,15 @@ bool shadow_hash_delete(struct domain *d return true; } -typedef int (*hash_domain_callback_t)(struct domain *d, mfn_t smfn, mfn_t other_mfn); +typedef int (*hash_callback_t)(struct domain *d, mfn_t smfn, mfn_t other_mfn); #define HASH_CALLBACKS_CHECK(mask) \ BUILD_BUG_ON((mask) > (1U << ARRAY_SIZE(callbacks)) - 1) -static void hash_domain_foreach(struct domain *d, - unsigned int callback_mask, - const hash_domain_callback_t callbacks[], - mfn_t callback_mfn) +static void hash_foreach(struct domain *d, + unsigned int callback_mask, + const hash_callback_t callbacks[], + mfn_t callback_mfn) /* Walk the hash table looking at the types of the entries and * calling the appropriate callback function for each entry. * The mask determines which shadow types we call back for, and the array @@ -1784,7 +1784,7 @@ int sh_remove_write_access(struct domain unsigned long fault_addr) { /* Dispatch table for getting per-type functions */ - static const hash_domain_callback_t callbacks[SH_type_unused] = { + static const hash_callback_t callbacks[SH_type_unused] = { #ifdef CONFIG_HVM [SH_type_l1_32_shadow] = SHADOW_INTERNAL_NAME(sh_rm_write_access_from_l1, 2), [SH_type_fl1_32_shadow] = SHADOW_INTERNAL_NAME(sh_rm_write_access_from_l1, 2), @@ -1969,7 +1969,7 @@ int sh_remove_write_access(struct domain else perfc_incr(shadow_writeable_bf); HASH_CALLBACKS_CHECK(SHF_L1_ANY | SHF_FL1_ANY); - hash_domain_foreach(d, SHF_L1_ANY | SHF_FL1_ANY, callbacks, gmfn); + hash_foreach(d, SHF_L1_ANY | SHF_FL1_ANY, callbacks, gmfn); /* If that didn't catch the mapping, then there's some non-pagetable * mapping -- ioreq page, grant mapping, &c. */ @@ -1998,7 +1998,7 @@ int sh_remove_all_mappings(struct domain struct page_info *page = mfn_to_page(gmfn); /* Dispatch table for getting per-type functions */ - static const hash_domain_callback_t callbacks[SH_type_unused] = { + static const hash_callback_t callbacks[SH_type_unused] = { #ifdef CONFIG_HVM [SH_type_l1_32_shadow] = SHADOW_INTERNAL_NAME(sh_rm_mappings_from_l1, 2), [SH_type_fl1_32_shadow] = SHADOW_INTERNAL_NAME(sh_rm_mappings_from_l1, 2), @@ -2024,7 +2024,7 @@ int sh_remove_all_mappings(struct domain /* Brute-force search of all the shadows, by walking the hash */ perfc_incr(shadow_mappings_bf); HASH_CALLBACKS_CHECK(SHF_L1_ANY | SHF_FL1_ANY); - hash_domain_foreach(d, SHF_L1_ANY | SHF_FL1_ANY, callbacks, gmfn); + hash_foreach(d, SHF_L1_ANY | SHF_FL1_ANY, callbacks, gmfn); /* If that didn't catch the mapping, something is very wrong */ if ( !sh_check_page_has_no_refs(page) ) @@ -2132,7 +2132,7 @@ void sh_remove_shadows(struct domain *d, /* Dispatch table for getting per-type functions: each level must * be called with the function to remove a lower-level shadow. */ - static const hash_domain_callback_t callbacks[SH_type_unused] = { + static const hash_callback_t callbacks[SH_type_unused] = { #ifdef CONFIG_HVM [SH_type_l2_32_shadow] = SHADOW_INTERNAL_NAME(sh_remove_l1_shadow, 2), [SH_type_l2_pae_shadow] = SHADOW_INTERNAL_NAME(sh_remove_l1_shadow, 3), @@ -2177,9 +2177,9 @@ void sh_remove_shadows(struct domain *d, /* * Lower-level shadows need to be excised from upper-level shadows. This - * call to hash_domain_foreach() looks dangerous but is in fact OK: each - * call will remove at most one shadow, and terminate immediately when - * it does remove it, so we never walk the hash after doing a deletion. + * call to hash_foreach() looks dangerous but is in fact OK: each call + * will remove at most one shadow, and terminate immediately when it does + * remove it, so we never walk the hash after doing a deletion. */ #define DO_UNSHADOW(_type) do { \ t = (_type); \ @@ -2203,7 +2203,7 @@ void sh_remove_shadows(struct domain *d, (pg->shadow_flags & (1 << t)) ) \ { \ HASH_CALLBACKS_CHECK(SHF_page_type_mask); \ - hash_domain_foreach(d, masks[t], callbacks, smfn); \ + hash_foreach(d, masks[t], callbacks, smfn); \ } \ } while (0) @@ -3167,7 +3167,7 @@ int shadow_domctl(struct domain *d, void shadow_audit_tables(struct vcpu *v) { /* Dispatch table for getting per-type functions */ - static const hash_domain_callback_t callbacks[SH_type_unused] = { + static const hash_callback_t callbacks[SH_type_unused] = { #if SHADOW_AUDIT & (SHADOW_AUDIT_ENTRIES | SHADOW_AUDIT_ENTRIES_FULL) # ifdef CONFIG_HVM [SH_type_l1_32_shadow] = SHADOW_INTERNAL_NAME(sh_audit_l1_table, 2), @@ -3214,7 +3214,7 @@ void shadow_audit_tables(struct vcpu *v) HASH_CALLBACKS_CHECK(SHADOW_AUDIT & (SHADOW_AUDIT_ENTRIES | SHADOW_AUDIT_ENTRIES_FULL) ? SHF_page_type_mask : 0); - hash_domain_foreach(v->domain, mask, callbacks, INVALID_MFN); + hash_foreach(v->domain, mask, callbacks, INVALID_MFN); } #ifdef CONFIG_PV From patchwork Thu Jan 5 16:04:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090119 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 60711C3DA7A for ; Thu, 5 Jan 2023 16:04:29 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.472013.732096 (Exim 4.92) (envelope-from ) id 1pDSj0-0003hg-96; Thu, 05 Jan 2023 16:04:14 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 472013.732096; Thu, 05 Jan 2023 16:04:14 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSj0-0003hZ-64; Thu, 05 Jan 2023 16:04:14 +0000 Received: by outflank-mailman (input) for mailman id 472013; Thu, 05 Jan 2023 16:04:12 +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 1pDSiy-0003hT-GS for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 16:04:12 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2085.outbound.protection.outlook.com [40.107.241.85]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 97d2e2b6-8d12-11ed-91b6-6bf2151ebd3b; Thu, 05 Jan 2023 17:04:11 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB8046.eurprd04.prod.outlook.com (2603:10a6:102:ba::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 16:04:10 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 16:04:10 +0000 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: 97d2e2b6-8d12-11ed-91b6-6bf2151ebd3b ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xr++NsNdGlT6TtWx6/n2fQDVYMbGG7WnSMBPz5KHSmGDF9QPtDETIPnA+CjBMH4oPBWT2bwfWX4suSbXeGIypOwZCQRpTh1AompNiWRAlvR3hIiY0nJ6hTmozX01k/WZA6eOtK75QCrBTeKQR+G1WaHokMXzv0nXtNRfUHLzLajaYJfDUasD8xfrsGU7MFRG3/BJ9VBHUTxL2ixjbZZ2EnZb7G1bYkJODXyMMoBjDClEwluN71Ga3FRwXt5oxS0IRdnWM/ugNIysCEu5Rdy/khqVLzO7lWhksIzdRGFzZ/+e/VN1Gehli+018mZsv3P2TtkPaY38eJzZbIkw8YXx4w== 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=tiwgHbCRXYI+56kwUcOCgcEtwg3HWt+T1yYbvqBjdYM=; b=LcDpJmTakRzhrmgRdUK6CYYQUe0Rpt+3dW/0+TdMvxGSu5wItFqSnWTvbFLKR4YBDH+/JywaQUpwL9yhMcnLvWM/D5C0zA2YEDGLw5fY/zeBJaEVxpNejZnxLn4w6Jb601ayQPlXmww48lJ/pgMbM5mRfQSt5gOHzYXyaObjKhmGfZjdUFATmi4zgh1eQ/oWwBXca9YnX/MtE58FQs8z5x4RM+1kLU9rpQ2nKQ0Ud1rVQICgmbyBefN9mQX5W96KKsYtEVKVaFnXZDiRS3JYnAZXMz3oHl1/RxrogIen7ZkcMsa3CECnCh0Qr6OJ7nX81OaF8klNdkZfUL2ewxuwag== 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=tiwgHbCRXYI+56kwUcOCgcEtwg3HWt+T1yYbvqBjdYM=; b=NAkNqr3ZTsQ6QsEjVhcI8ueY+7QrN4VUuvFkAFkIBTqeEiP8EK3GFw+kTVoxokZpp3tcgyQ50rlfowHZT2mHmtJ8bO7cwH0+ZvuRqrS/xNDtOH1pKNpb5As/6l6bz9hxEvnMpGV1XSQAr78B20FqnpeYx9qqTgpMjjxd3sx2wYsWM7tt7XicuathzWeoFk3oyXJWGEYNilzhN7Lp5fiK6nVattSg4Ms4s2y7LgUMitJsfCqLLjh17w6MDqRdI+R/7eEFeh1uVpTEcYZEbkqzXPXorlJbcP7cEdugdfQdxDp6vfhcavgfjh4WiZC5HA4/cdAoh38HmJwfxWfWYyMTpw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <76cc0b4a-27ca-21b7-841f-315f31833762@suse.com> Date: Thu, 5 Jan 2023 17:04:08 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 05/11] x86/shadow: move bogus HVM checks in sh_pagetable_dying() 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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FRYP281CA0003.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::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_|PA4PR04MB8046:EE_ X-MS-Office365-Filtering-Correlation-Id: 2ad15354-d748-4b28-5a12-08daef367af6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oYfdVss4Qr69VnO87usxY+HEyw1UMO6LfKX7cL5QHL01Mt22PQlDL5/zr1VOP8m1OrKHXDzroJIOagvtHhs5VJshZ9zWSssQg8wJwZGSQftieXSqaXPiyqP5iFbKoxFKDMnugdqNysq0ufCb6z23gJhGZQ/ACGXSCmvnosYxC7LHTT/v5eVGacB0fGH7hQU7mZscidMDPnLVNxMjPp1o5TXjuAH9zYz0ZiwZdUxYaQLj3jpAH55VHpviJqWUZ/Pvd+ZWyAFsCa5XOtvNj7ZeQfA5VCJfF5BGJ0J3lOzwMAyY+IHhW9v1FhSvh9MZRZMajp4UAdrdhnIp0EszcdOAZiAc7pB0ZeLiOp5Y+1Bp2ucVv6AU3Y+AYW0pOmDOuga94WxnnOMxxbYsE9g6CJEQYswex1lqIg2icEE27CQR2kyYAW+IDv5Qt++uedbM21KfOkcyVUIub6qjbAf6/ddZtYqD/nDB1qxHZR65Xkh3AgeLR0WZ+RsGO1F+Kd5LdEsWzQGtNBiE+u3g6pgdgyaVm3Ahl8R0oa9oVXrKnNyiOXXU8haTqfJoTwyceF3PXyReiWQPWt4FHhhCSxSxdJRkIZlCj8JqvqSKR/QqG0C6JP4QOKuYcEYlHv7QoxVk6QXiFJcli4eT3ZWzLZ5clpiVFL6G5oUFms8D7bmZJej8ORwu7IjmR7IKs3QBUTKBi+E+qF1RSt3RQ6vhA1UH/prX8PXLBvvwziV9e+3XaIN3KlU= 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:(13230022)(136003)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38100700002)(6506007)(316002)(83380400001)(31696002)(4326008)(86362001)(66476007)(66946007)(5660300002)(8676002)(2906002)(66556008)(41300700001)(8936002)(6512007)(26005)(186003)(2616005)(6916009)(54906003)(478600001)(6486002)(31686004)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?FqaZ2WPgqfSZiIirWL6J1x9oyl3F?= =?utf-8?q?h/h+GML1Q+s0vHJdWwBZl6JiNlfWk9oArOZU4uPvugtndm13AkTghx7ljVIoqfXZK?= =?utf-8?q?i8AU7LmPLM1tCXp2tsJHPGCFlj+vcUmd1CLQ7UQIAp6oYBtumRskY9EbMAwaBIa05?= =?utf-8?q?NgnlDJDSosh8Me727+JQOxYZx635hFOFP0CT+i+W8WQTK/Ram9kxyy7hWh0h5JYqm?= =?utf-8?q?A9hnrote3owlZOsz6XCOURMOgua7qKf5agzlxOn1U4Ce2SWRKITB9YG0oLvddHHVb?= =?utf-8?q?1z3C/sl/KIalZhWCoOKS5QAcPV8O6H3rUlojWf0SqW9+YKk83kLu+fbXwT536qlYa?= =?utf-8?q?IcKqaydUfhmWTnBSEGT4M6P9Gh4xgebYFimZX6wSDUd7O/b5mbPejrOvxy/61ttUS?= =?utf-8?q?eMo1PtN2GtY6yU0VmvsjMxa3YBwmKNsLmJ3zSC4AsYIZBSnSYSiZm6zwiIc5k1gLi?= =?utf-8?q?UWqvoYt/5GyBbzo362dzAm5tlU1Giobf2ls0nhrNBnwkTLo2mJr3ZKxg3xnvAiZNO?= =?utf-8?q?daTlE29/brhhJ/qMeC2H05HM0yDMaGML7jxuwUURHD0++HIkvv7MC3gWWhiGPE8e8?= =?utf-8?q?dAN7Q+YyLgU2ZMbNVXEn1OpC9dD2o1MV6yhBGi6eiUc8XmTneO+P1c5BA/OTl80Bg?= =?utf-8?q?v8jMaRa3vqhBtAg4TTqMGeDfVUfHctMfHH+I+h7RHsNkS+/o64vQeZJWtIU3sd/Qr?= =?utf-8?q?SWrSZHBicDkhsVL7Q1BbYC4ptzRGna0wVun9htjYl3hvJ90mb3kFIKynOybUnflxo?= =?utf-8?q?6Ig5xqoGlx/1PeJr1VggJ27+qKPnjLHCkR3dbTOMjhP4n38c6e3nCPdpKdN/oU8i0?= =?utf-8?q?sPk199J79Zq1JAB8JcTAbRAteq54TQ3ABP8KBFyDRimrotrDvnUuHwWw3Sn4DC49u?= =?utf-8?q?ueMuIh5MZhHA/174lhNZ7IMwOzdD6LI0X5k8qD8SulrrKn1SIHGYOubLlIMuEYT2k?= =?utf-8?q?JRt4QHitnl6cjsbIZJg7uKwmOwkB5famG/IOGuyiiHLdnw9xucZ90/D+v1NslvAuk?= =?utf-8?q?0OMyk5kEcoguDMGjYHn55EpwHuQYSMFHYA9iAA/69PlpgnZLxE9pFJEL+fzE2Wbk0?= =?utf-8?q?Cxls+9HFzAvxsW+fHlanT1aGKIa+zPIarVhQLk6euV5nLBfVqvE7hzXEkulCXZ2as?= =?utf-8?q?67PTy0KET9qfFF9grdIZt6/EphutkOXn4Wu13Dc59iI0aC5tllRbquTp+BAJNgpx7?= =?utf-8?q?1F8HdU2Gdh9YA8m+1WmXA/aHh/jryxDPZKvN1IsxJyvoGLoU2SeAqVSwvWHAMXwc8?= =?utf-8?q?+hP1EBT2zhujOqSATgu3nThdb9IivSBjheT0kctzQZv+gulWvQ0kp//FXeECaO+U6?= =?utf-8?q?V/OIz7HkNK878IH5NhRLBxjwOM/iU3rqJ6GytoB04/Mbfzs1Sodc1CCc82oCwYRVs?= =?utf-8?q?jWb5k4U6RaoV/RHxDO1k8KWoGaVWXYLS2lluZlKOKxN//6NETiGcN3iK40YF7sYsT?= =?utf-8?q?mzg41ROBPBMwgrrGosKmi4w6P4n3tMrGpc/AeGqkyj9zKTidBHEaYg4FF3Svc/nM8?= =?utf-8?q?Gbgn54ejbmmZ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ad15354-d748-4b28-5a12-08daef367af6 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 16:04:09.9084 (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: vTjYqBoyreX/HEhw3Arn7DPnliwAhjDiE6xN38Kxx3c/YlAgml3JHhNnV0QlXADvtvFKRxHymfFrEBeHvvuoPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8046 Perhaps these should have been dropped right in 2fb2dee1ac62 ("x86/mm: pagetable_dying() is HVM-only"). Convert both to assertions, noting that in particular the one in the 3-level variant of the function comes too late anyway - first thing there we access the HVM part of a union. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -3780,6 +3780,8 @@ static void cf_check sh_pagetable_dying( unsigned long l3gfn; mfn_t l3mfn; + ASSERT(is_hvm_domain(d)); + gcr3 = v->arch.hvm.guest_cr[3]; /* fast path: the pagetable belongs to the current context */ if ( gcr3 == gpa ) @@ -3822,7 +3824,7 @@ static void cf_check sh_pagetable_dying( : shadow_hash_lookup(d, mfn_x(gmfn), SH_type_l2_pae_shadow); } - if ( mfn_valid(smfn) && is_hvm_domain(d) ) + if ( mfn_valid(smfn) ) { gmfn = _mfn(mfn_to_page(smfn)->v.sh.back); mfn_to_page(gmfn)->pagetable_dying = true; @@ -3854,6 +3856,8 @@ static void cf_check sh_pagetable_dying( mfn_t smfn, gmfn; p2m_type_t p2mt; + ASSERT(is_hvm_domain(d)); + gmfn = get_gfn_query(d, _gfn(gpa >> PAGE_SHIFT), &p2mt); paging_lock(d); @@ -3863,7 +3867,7 @@ static void cf_check sh_pagetable_dying( smfn = shadow_hash_lookup(d, mfn_x(gmfn), SH_type_l4_64_shadow); #endif - if ( mfn_valid(smfn) && is_hvm_domain(d) ) + if ( mfn_valid(smfn) ) { mfn_to_page(gmfn)->pagetable_dying = true; shadow_unhook_mappings(d, smfn, 1/* user pages only */); From patchwork Thu Jan 5 16:04:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090120 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8F215C3DA7D for ; Thu, 5 Jan 2023 16:04:53 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.472017.732106 (Exim 4.92) (envelope-from ) id 1pDSjS-00048a-HN; Thu, 05 Jan 2023 16:04:42 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 472017.732106; Thu, 05 Jan 2023 16:04:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSjS-00048T-EU; Thu, 05 Jan 2023 16:04:42 +0000 Received: by outflank-mailman (input) for mailman id 472017; Thu, 05 Jan 2023 16:04:40 +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 1pDSjQ-0003hT-Bx for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 16:04:40 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2059.outbound.protection.outlook.com [40.107.241.59]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id a844ed62-8d12-11ed-91b6-6bf2151ebd3b; Thu, 05 Jan 2023 17:04:39 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB8046.eurprd04.prod.outlook.com (2603:10a6:102:ba::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 16:04:38 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 16:04:38 +0000 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: a844ed62-8d12-11ed-91b6-6bf2151ebd3b ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XmgGKirqO97aW2lzSqCXpaIMGF3eF+gzlXSdDILsRUTRy53Ts+dmTcDoA2bJ/bAnU3z2nlZx2jmznhmU7AK84CybI9T70vXkmie0xgGRut+p6DfJhXVCyNYQYEVyKncF4fIt8u+2ttL2Rt1EihkvWd3GGx9kPusq43eeLKp0iGlEQieUBy6eMtNNcrfy9F/eH/fsGSm0nMo2FGTGENBE2b+OxRjzPauOtWUvDUv2nwbiGW1lw5CAZxcSjIlBYvw/AlMKs0j9DkWWvutTSqko6nE4ozkU8m34mOZ+zTvaq8EjkGeY+cj1tUDHxFx5fGGOifCFF8EsRMH7JJjjEMw3hg== 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=MJaoeutQLbYPzxfYQUitLAuxg6Tn53bDvw1b7Tq+keI=; b=PMQyKOvRZKzmstJbOfx7xQT76V22aS/cbEfpwt/kZXbC5BmTLEYAc79ZZqUOjWrv949KUVYamDLCZibCj39TvC/WNHS2UOf5dE6NrJxRuUzculrwq5V0Pa1RirGIo/zvLa6v+m16Xf0LFGFQZjeI9ZoxpvgmBoNCvv10TGr6RbyXKidJPEm0lfvI6ZBP/CHf4z/x5qW8/33ABw7evNPnq/beGfRsRt5ax0Fvmm669kJQ63QRXyebQj9Y1+2PiZK1ZnhktMBwc+n3Q1wtJ70myb1H5bsoe7PzSS8m85hWVaP3t+VtN2WMxP6B+ovqZ8DcmC3JIhL1V5wcoe+VwiV/Tg== 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=MJaoeutQLbYPzxfYQUitLAuxg6Tn53bDvw1b7Tq+keI=; b=Q8YlPobdSJaKnb4lppkjZ0CgQtxuyIXFDSEXkUhMrUEhDLLZALOxc29Ls+Wyt7uyBEdo6xMI6/C+77pbJHzMLDb6O62IYm3YgHWrplzBI+YnAXef5+bCGgAuRWsuFI65PsoCw/jGZC9Bm/ORLYAVCiQCMUwBwGdJViIYwAgkvuprRDgbe176GqqoXkFyfZZnsS1YVgkJ5LV7t4DU7ndRgY7mGY1ANrRq9H1xZsAJkVM3UO6rBaWRhrh3TBKC7WhhWlgm5IsK+omMpMVUVqINWG9z68+PpmEgOnb2hUg+4OaVDpHDsfmXXYPEUxxxuJBB+4Aaff8VLOwUgldlwb8Xjg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Thu, 5 Jan 2023 17:04:36 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 06/11] x86/shadow: drop a few uses of mfn_valid() 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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FRYP281CA0002.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::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_|PA4PR04MB8046:EE_ X-MS-Office365-Filtering-Correlation-Id: 15b6a024-c967-437e-adc4-08daef368beb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XbhDPUSuADkRhwC6IzYXEToveZgcb20lXMisLZ+GMM3jSAMmAniv17a7NvzsDci67mEPC+Zzq5fi47TEnsLI3RWN2RHqlXBAEWYUITFOOldngtRs5IfrJ/IemNBFosSmXyimqXnN7HOnePDVVU7GFovd9Dgi0l1ZtG2LeSc5QD+j/6AcvV+3MqbTMrHs06dEduNxprJcZQ542I/L3MRu5WOlEkyPYA/AzYZIouvSgV0ILSvi6QjsfFlSJDhXx4vlOMOqsZsuDkMHQ4AIYYRtMkihj18fKgrvLP240VyRwhXnE45g5oL+Jgvfnrlbg4kTSauyLo/zeMQcPFw88V0G8fE2j72r4OdNbSsMIr5L5JP7IvkzTFDHNMg77cG5FWKIJ2bha14z3QtGKUup7zj8ZpBCERjqCXeFE0sXp6A/10J+Jo8bJ0AwICNUnP+WFcJQysYpxL71uLY2wIUU7VWjFhAbGyujcraQjdUNulTKpDcNO7274wQqr52wnNec4VxFkVw4qaBGSXduUaNjyzHb8uO/fGWMspsCFrn8i+u17kRjJzuo86muPb5nMY0UVgyZq9/lW2gwGv+yD6+kX+VP6ITn+tDDQr46au/SUqgRsbpJyfG1BEJIgeWkUcs1pG95UHkfl/S+3wJtRXNALCxZKzwtAqBRpbU9OsDr2r997pmYHyXqf/IX484ATxnq8nSkAhRaPH7SyRr27BQvT4RLov5L9ocdKSGepiaGwyeYN20= 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:(13230022)(136003)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38100700002)(6506007)(316002)(31696002)(4326008)(86362001)(66476007)(66946007)(5660300002)(8676002)(2906002)(66556008)(41300700001)(8936002)(6512007)(26005)(186003)(2616005)(6916009)(54906003)(478600001)(6486002)(31686004)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?b8cRUTH0tuoKTMEMIpbmS6ougTKk?= =?utf-8?q?rVFi1FnXaCjYcquloVj11l1yC2REgRm5aUx0GZQoSWC7KlR8kjgNgp8Nvhd11fvmF?= =?utf-8?q?zZBTCcyiRR+VxvTXLaGjaZWjFm7VFKLsdPATa4cG3HZlCcHZKWtOplc9PHIBpbUcM?= =?utf-8?q?+yxE0/X+t2nykADHGuh1sxZBQSmEMc1FEEdfBQIi6e2fWWzesL/s0gYOGa35AZ7N7?= =?utf-8?q?qyPLoEwuaG1z4cKZfUulyYsCSbEBRuMvsii/dKSRFYM9qWdCotwlOQEXzj8U8g5cT?= =?utf-8?q?yT2SaIrjjXv9/Mlm6qpFg8P/5TiGOHUdJkOOonQQiFWZR6DMvd6BGuE1C9WBs4tKf?= =?utf-8?q?0K1hTTcybArMYWqo4Uq0+tpRLveXt/MTnW2jyKIJ14yAPzv2r1ZMjy3PHFzfeNMrv?= =?utf-8?q?WVXdMTZH2PG9O3TaCw4XDmRyJw8yGEPYdPoBOeH45EcTh8F732NpuVVlVoxtt+pzW?= =?utf-8?q?zaYPj8Tq28TQ3T4ntatq/QTChX/2Ow88xZc13H6axlujxj2Je1+VMIE3G/R1H27VL?= =?utf-8?q?dv2mM8jZFjhiZKqHjb8Pg9zd9Gr3tG2NzIRz4X2fj/yD9Aww/Tgn9IISZVMA+GeGa?= =?utf-8?q?VWopaTbAY6RZQBWWd0Ut6JlRX7nxcNo/JAflNQwC7mL6mSNkwSu5GR8gKb2iT8soS?= =?utf-8?q?7JlOA8xzsbFaqivZqCwZN7ou9YRi9uJGc0C3iTv/0IWXGE0c4w/23amf3/dAI8vVv?= =?utf-8?q?MEHibjV/NGAYtWSqoI9GTf4w8Z6hPhgAigO+iacZ+7pBqOTS+oWghYHaoKJpaxwir?= =?utf-8?q?TGpKqxJwHs3fEmzGftah47+VF6hFIaBsO3FeXIH48PSvDiRdYUHWIEcp2DdEU+y+2?= =?utf-8?q?FE/m9lacDP6jlUrQ18VDKQXFbhBHNwuFPKool3kqEXBSPLnryvbZAvnd4Hypdg2P4?= =?utf-8?q?ZZAmqekwXy2lvr9cSJR+04TXmEhLTLCWKKxMWU90w+K/xCi8mBofcpAoZTUUJ9suv?= =?utf-8?q?834sCS/HFr7kh0D5g90jREhFIFMSNxsyJegVSaWD9Nk5+HJATp/rpCmKsG0/wSyaq?= =?utf-8?q?ZL/jqn32GlcFlauuJAfRbjaQRAWTq50wdu6iWLtZdP82RN2ZpC+i42lhRQblFgzK1?= =?utf-8?q?m2m247mrJb80eg40N1EGMG3hQq6mgVqdBbCfM2qoa0AaJj4kaTq7h5zqIiLjcB0pc?= =?utf-8?q?ks0zq0hbdksDTUFKXwqF6FoeC9B6GmgKHDeCSuBzzgPZRnkvsMQ3bRLSrl+CBWcCk?= =?utf-8?q?1/kRGZiqW73gvrBI+tOzpB3LjcvyNCzTJJXRdu24PzDiplJigL/dsG3tkS+2pSL+x?= =?utf-8?q?fnWhDKvu0dho55auuJB0l3ZnLk55BJRlvfBMHYFzwn0DB5IZ3kp6S4CAI6Dnp/07H?= =?utf-8?q?qtyzDMeWTfigvAZhBp5tHY3Ke5YKj0EY2gFe15vTOBNcEbasW1UJYcmMK6TOtzbrj?= =?utf-8?q?BTbRDp9I23VGFHsOhbMl19dpODKtoHAeUlsl7XUuaM3HdKd2qZg/evq0v+IXGvIto?= =?utf-8?q?CTXZwKGYrtO9V7VIcgyd6TZhPEZKzoS1Qrmat0rfmA9noi9/urQogMS60a4htwmvq?= =?utf-8?q?Q0o4mrqRwHNZ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15b6a024-c967-437e-adc4-08daef368beb X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 16:04:38.2034 (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: 1ARPHIyL5U0VA9mm0aThyC45AGojNQUrsmdoH6T6X0+YXij7vXFKOyiVmsx4gZnZ4J7lGFRveNRWRUu9+sXXUQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8046 v->arch.paging.shadow.shadow_table[], v->arch.paging.shadow.oos[], v->arch.paging.shadow.oos_{snapshot[],fixup[].smfn[]} as well as the hash table are all only ever written with valid MFNs or INVALID_MFN. Avoid the somewhat expensive mfn_valid() when checking MFNs coming from these arrays. Signed-off-by: Jan Beulich --- There are many more uses which can likely be replaced, but I think we're better off doing this in piecemeal fashion. --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -171,7 +171,7 @@ static void sh_oos_audit(struct domain * for ( idx = 0; idx < SHADOW_OOS_PAGES; idx++ ) { mfn_t *oos = v->arch.paging.shadow.oos; - if ( !mfn_valid(oos[idx]) ) + if ( mfn_eq(oos[idx], INVALID_MFN) ) continue; expected_idx = mfn_x(oos[idx]) % SHADOW_OOS_PAGES; @@ -327,8 +327,7 @@ void oos_fixup_add(struct domain *d, mfn int i; for ( i = 0; i < SHADOW_OOS_FIXUPS; i++ ) { - if ( mfn_valid(oos_fixup[idx].smfn[i]) - && mfn_eq(oos_fixup[idx].smfn[i], smfn) + if ( mfn_eq(oos_fixup[idx].smfn[i], smfn) && (oos_fixup[idx].off[i] == off) ) return; } @@ -461,7 +460,7 @@ static void oos_hash_add(struct vcpu *v, idx = mfn_x(gmfn) % SHADOW_OOS_PAGES; oidx = idx; - if ( mfn_valid(oos[idx]) + if ( !mfn_eq(oos[idx], INVALID_MFN) && (mfn_x(oos[idx]) % SHADOW_OOS_PAGES) == idx ) { /* Punt the current occupant into the next slot */ @@ -470,8 +469,8 @@ static void oos_hash_add(struct vcpu *v, swap = 1; idx = (idx + 1) % SHADOW_OOS_PAGES; } - if ( mfn_valid(oos[idx]) ) - { + 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); @@ -607,7 +606,7 @@ void sh_resync_all(struct vcpu *v, int s /* First: resync all of this vcpu's oos pages */ for ( idx = 0; idx < SHADOW_OOS_PAGES; idx++ ) - if ( mfn_valid(oos[idx]) ) + if ( !mfn_eq(oos[idx], INVALID_MFN) ) { /* Write-protect and sync contents */ _sh_resync(v, oos[idx], &oos_fixup[idx], oos_snapshot[idx]); @@ -630,7 +629,7 @@ void sh_resync_all(struct vcpu *v, int s for ( idx = 0; idx < SHADOW_OOS_PAGES; idx++ ) { - if ( !mfn_valid(oos[idx]) ) + if ( mfn_eq(oos[idx], INVALID_MFN) ) continue; if ( skip ) @@ -2187,7 +2186,7 @@ void sh_remove_shadows(struct domain *d, !(pg->shadow_flags & (1 << t)) ) \ break; \ smfn = shadow_hash_lookup(d, mfn_x(gmfn), t); \ - if ( unlikely(!mfn_valid(smfn)) ) \ + if ( unlikely(mfn_eq(smfn, INVALID_MFN)) ) \ { \ printk(XENLOG_G_ERR "gmfn %"PRI_mfn" has flags %#x" \ " but no type-%#x shadow\n", \ @@ -2755,7 +2754,7 @@ void shadow_teardown(struct domain *d, b int i; mfn_t *oos_snapshot = v->arch.paging.shadow.oos_snapshot; for ( i = 0; i < SHADOW_OOS_PAGES; i++ ) - if ( mfn_valid(oos_snapshot[i]) ) + if ( !mfn_eq(oos_snapshot[i], INVALID_MFN) ) { shadow_free(d, oos_snapshot[i]); oos_snapshot[i] = INVALID_MFN; @@ -2938,7 +2937,7 @@ static int shadow_one_bit_disable(struct int i; mfn_t *oos_snapshot = v->arch.paging.shadow.oos_snapshot; for ( i = 0; i < SHADOW_OOS_PAGES; i++ ) - if ( mfn_valid(oos_snapshot[i]) ) + if ( !mfn_eq(oos_snapshot[i], INVALID_MFN) ) { shadow_free(d, oos_snapshot[i]); oos_snapshot[i] = INVALID_MFN; --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -110,7 +110,7 @@ get_fl1_shadow_status(struct domain *d, /* Look for FL1 shadows in the hash table */ { mfn_t smfn = shadow_hash_lookup(d, gfn_x(gfn), SH_type_fl1_shadow); - ASSERT(!mfn_valid(smfn) || mfn_to_page(smfn)->u.sh.head); + ASSERT(mfn_eq(smfn, INVALID_MFN) || mfn_to_page(smfn)->u.sh.head); return smfn; } @@ -2680,7 +2680,7 @@ static int cf_check sh_page_fault( mfn_t smfn = pagetable_get_mfn( v->arch.paging.shadow.shadow_table[i]); - if ( mfn_valid(smfn) && (mfn_x(smfn) != 0) ) + if ( mfn_x(smfn) ) { used |= (mfn_to_page(smfn)->v.sh.back == mfn_x(gmfn)); @@ -3824,7 +3824,7 @@ static void cf_check sh_pagetable_dying( : shadow_hash_lookup(d, mfn_x(gmfn), SH_type_l2_pae_shadow); } - if ( mfn_valid(smfn) ) + if ( !mfn_eq(smfn, INVALID_MFN) ) { gmfn = _mfn(mfn_to_page(smfn)->v.sh.back); mfn_to_page(gmfn)->pagetable_dying = true; @@ -3867,7 +3867,7 @@ static void cf_check sh_pagetable_dying( smfn = shadow_hash_lookup(d, mfn_x(gmfn), SH_type_l4_64_shadow); #endif - if ( mfn_valid(smfn) ) + if ( !mfn_eq(smfn, INVALID_MFN) ) { mfn_to_page(gmfn)->pagetable_dying = true; shadow_unhook_mappings(d, smfn, 1/* user pages only */); --- a/xen/arch/x86/mm/shadow/private.h +++ b/xen/arch/x86/mm/shadow/private.h @@ -770,8 +770,10 @@ get_shadow_status(struct domain *d, mfn_ /* Look for shadows in the hash table */ { mfn_t smfn = shadow_hash_lookup(d, mfn_x(gmfn), shadow_type); - ASSERT(!mfn_valid(smfn) || mfn_to_page(smfn)->u.sh.head); + + ASSERT(mfn_eq(smfn, INVALID_MFN) || mfn_to_page(smfn)->u.sh.head); perfc_incr(shadow_get_shadow_status); + return smfn; } From patchwork Thu Jan 5 16:05:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090121 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 64F8FC3DA7D for ; Thu, 5 Jan 2023 16:05:19 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.472023.732118 (Exim 4.92) (envelope-from ) id 1pDSjq-0004e3-SQ; Thu, 05 Jan 2023 16:05:06 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 472023.732118; Thu, 05 Jan 2023 16:05:06 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSjq-0004dw-Nk; Thu, 05 Jan 2023 16:05:06 +0000 Received: by outflank-mailman (input) for mailman id 472023; Thu, 05 Jan 2023 16:05:06 +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 1pDSjp-00043x-Qx for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 16:05:06 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2074.outbound.protection.outlook.com [40.107.241.74]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id b6f04905-8d12-11ed-b8d0-410ff93cb8f0; Thu, 05 Jan 2023 17:05:03 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB8046.eurprd04.prod.outlook.com (2603:10a6:102:ba::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 16:05:02 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 16:05:02 +0000 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: b6f04905-8d12-11ed-b8d0-410ff93cb8f0 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=duAJiTua+JHJcndxBJVume4ofnWTeM8JJbVBTrJj0HJGQa/ojDD0MvZdj+FXNKMBWIG/2JMhmlMJYajPd4PuvDS0NYByn6mcVdmlfXMklo6p7d1OUcrVPJXI85wJcO3zYChCcpdOYY3D0POhf1lJu8yjApZTHBJ6bXh5NJAAqbTgKYRJ05bI93tQhgiy0rYQMRNUClAs2Ax9lylKHvVVeadJMjd1cZlP0lbFaIMKor9GmrHn/yWVYUNFzumU90OZuizDt1ezZZwcqQJo9Ywc68sVU2No1UDRSdfq33swMHAeQ8iHwSBQYJdNr1yr+Q3w2SUYZP1RKgRsdYf1PV8fkQ== 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=qf+emyh5II2V0/A5S4zzJusw1CCXBsG+DAb5LICmZYA=; b=IUvndegZT73HSgQRKLGacBhYnCgufztfBzZeZA2Fuhoj0G++tNuPEDDWSgtvdWGwDMqO6bhBrqM6LMvpQn4gX6EVyouMOnbqqFU+NZiakbI2DEjTWcJQ8EfaB26r3JjlO3SFKMj0n9jXPaGW1HztLCHt7q5LxYsbw5zMysG+DbAd/OeSHFw2ch4V5x8N5r90eTLaRo6q8a6P6AsFFAr3mqAjwyrXoXcIS8LnoaLsjniEVwbjdNimWKVzcrHPm6OVZVoUa9z4P6l5/Yjbkup9Y+HvmKenEyeCCjL41vc2RiWvnsqwMJ74FIdovv/b2kpN7+B4klET8d660rPvMHCNdw== 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=qf+emyh5II2V0/A5S4zzJusw1CCXBsG+DAb5LICmZYA=; b=vJJFZfrdRCISbegw2kzc9xX5Sdv/+Jj1Ys3IOalhX19F598fMDsJmIBwRW6Kh8rTeDzfC9zKlTFjVJIEczguch81bfG92zOD7GP4cEIvMNz+HKeyE9YsQ0ZoF/3yL/HIDpQdO7bcLwqs6zV3Q1EtzqxGyK/11OaT/w/iq4GDx7DTvOxxjkf4K0yTG57//wCX8h7ANNu+59U2tqbPG/PcXI8/H5oSJq4Ur1l1rSz1U9ePpW76J+K2BdtuFtinF3EmnrqcFdMOYGDfaaK3+ntPZkC6yHGfPt1Qm8FuKqi7Tb7KBb4+cHQGsDEmKOQwOWbZgGouA+BlGkZhqC5QgQHtLw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <2743393d-852d-b385-9eba-e22806b1c4af@suse.com> Date: Thu, 5 Jan 2023 17:05:00 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 07/11] x86/shadow: L2H shadow type is PV32-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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FR3P281CA0119.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::19) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PA4PR04MB8046:EE_ X-MS-Office365-Filtering-Correlation-Id: f543001e-0cbd-41fc-a49d-08daef369a0e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8t3hWtPV3+fLpGRwWuwYnggj1sjtO2C3j2+B9m6JD5BrgbHsCww3hExqYXv+QbV8m1AfWwvvaVUAmVpqvFkdJ62ZnjhMRpis7Fxnz121J5hWYSicvIA2Kn6cea0gKN9fUrVD6ZdanPO41E85dGjuIuG62oWTwdXICtS781UwCewduKaKROmBFY/i7t0xKhcQVkaO4wndeFjoYx22lJtsJVpO97AHTK7PMyu8dp6K7co2nnPnJ7dP+yk0svMvD/hZmJUHCh88+Lb3oyMzkclni/hzG3vpsopV6i6Y77E4ncKpRt0KJ4U/blDn8hoO1DfuY3ENRP6X7KNZm9KiVY7Aop4I4/VQvXFyZ/jgk1LNyAxw3qmgK+zMz1yeCYZcskwmTc7D0pECw4QmEWxDwxW6EuvfS3mpRM9z6XQsYOET7RYJEv+AF2y2G88FABcDaYzi/ot26ZTwYRgphCcrUGHo1C42DyQFq6fnsXmCYKKpT0iY2akGrtyP7WxY3uZNHJfSuXFDyDxI8bguExmWZin9/EG2LCz9nBgsSsTAE72gCyin1PJ4VfSb2GqpHqQj7MW4/eZGDNGdtSxcmUJQofi8+7e37lzufMQ4Ijwzh+1qr0pYbarri0vxiJBh2l8bRKI8ABXVDpY6Q49EcBvXoxbf+wWCnNtMhpdRNPOEo2DIvrn21y9/GezNM4K+nkevUezUwVloXSSfQzNZwgu1/zrSLRPXL0y/q5kS27ppQvWnzeg= 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:(13230022)(136003)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38100700002)(6506007)(316002)(83380400001)(31696002)(4326008)(86362001)(66476007)(66946007)(5660300002)(8676002)(2906002)(66556008)(41300700001)(8936002)(6512007)(26005)(186003)(2616005)(6916009)(54906003)(478600001)(6486002)(31686004)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?OXUyIMFVKccyAkGJYWWfuakUoUXj?= =?utf-8?q?2i7YjHXvoJuWuktw/0y/zY3FutEAmGL4wjqtWJSYYrAD2WXX5dWhAe3C3BULbea2I?= =?utf-8?q?NxYVlmnWXuwSGzjinqUnONQWKYgnudF4jmw6O6Bei0a4wlHnaYs+C0PcRwV1LO7av?= =?utf-8?q?BKQXImHIjDVKRkL/vY5y+ESDrYorpfKmxJbSVZp5wMy3Jbw7YrzaZzg0x1qs17uvY?= =?utf-8?q?B2FRGf+SYeIMQycJgUZMeBIsEE5Flf8AIcG1sCw8lqkqDFkBq/wjLVrXdk6F4BWFP?= =?utf-8?q?Ow6TU2BUf4nl89fPHXa1Xj9NR85MJx40tiD2SXqb/6YMoR6fR5x+QUHBTOj6T4IwN?= =?utf-8?q?FMHRBij+bxyRguiIBecv1HsCo3+/ZLG3V8k5wGi0bmBq5t5aWq3WJwl1ccV+JaU5D?= =?utf-8?q?yqy63XSYa/Ek7JD/qY9sChSt7WhfnXIh/42aGDFv0uHJgG9KEftYeWmnAAkoE437W?= =?utf-8?q?xDmUoXsLhP9WwUofaS2QpW3AeO9gYCDsyE0LWeGzo5WAPkIo5H4Ylo1o59dLZbvCG?= =?utf-8?q?qcJj+7C9kE+AchwLn6Cd7GJLF4pNkXZ5TvOHn0Rs5JLeMf/leSImMRydRhMavl4u8?= =?utf-8?q?pKQTG1xWGIzuQX3sxf3ag3zIaVWH6JXfShUgzj4kK8jipz8ZSYLTeMHhu9nsPDxoI?= =?utf-8?q?9Bv4uJs/38Ntb7ogEOqvPgzxUK4JvA3wsRzduIHBA8z9DvnAinVPF9WrczoYMDDA/?= =?utf-8?q?Ju2aGwBbwsBl/xCkfryydHrIdHxUUssteENLSGZVugzfWf47udQ4wwrXVgAQjkT/4?= =?utf-8?q?3dg5M50v5ohikESkTYCAkyPPrOu2QnWB5X68AZSY3IZGFwvolJE0b4guTASpSb/FA?= =?utf-8?q?QXEWRzsJkzM6TIKVTEu3RvQ1pirCT3noZirnK4fKe6IYDvOcn2vYkAqxbgIkOi2WU?= =?utf-8?q?1xe2HbKIiUhhqTVJdbaTnozjvoRODN2yWJNLcm1yYyZ5vg1KQeQmkeGxyxSuBJBsd?= =?utf-8?q?alCWtGKBJUIVsjbSiHdF6ZpUfpqAxhnK0bx+L3WtKO9by0H1cGK/j3IkbpIy/wSbs?= =?utf-8?q?QTZrCDZl8QBCsvhywfhPFAjgZPMw78c2s76STK9XtThSrV+O9uBcICEiR6AYgOljr?= =?utf-8?q?zHAR5iC2NJCLX3N7m2x/FXAlwzuX2lPhsU9KGDmBxLVSkCnYz4vf789Z7MChySYNJ?= =?utf-8?q?w6gUSyLUy/YmKjtqBmiv25vPVHs2ghfaEasM1EaWYOPf7BRX/VX3ZyVRm0+WB7PiG?= =?utf-8?q?PaE6avNtkBi0Yj/5P0geXUL4hYHEZJrx834rZQIc09LxvD3VlGwZIwlyBWVCIL+Ck?= =?utf-8?q?CBtPhAH4TBmvKaseh0oINdked6yLjICWlqomasM6grH8e2d8JdvFAaNNFwGNPa7wH?= =?utf-8?q?qNsxLQC56k4Gxq2uNyxdadwQGN1foLesVNJgZRH3jpKPGqvviCUFxh0OzgTrpX0sL?= =?utf-8?q?h1U6qRBlMzodYvGn8g4EhXGPecrjyIONryibtoyRQK53BOvundAbG6TndhOGjBvQP?= =?utf-8?q?9NMixZ4VAwu3FGLHZoZZqRjG7+vPsA8NBlKwJmkh2rygy8tEgY2Y6MEtkhrrzr9Mp?= =?utf-8?q?hC1N+iEEbAZG?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f543001e-0cbd-41fc-a49d-08daef369a0e X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 16:05:02.0144 (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: WTXXaRZjnpb1VjUjcxphjU+lnjhdVmEQ5clxnF6UNL6YPmc5B/0WMfz8baRlbRRyaxVzmpVCJOoyr7DwIaYM4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8046 Like for the various HVM-only types, save a little bit of code by suitably "masking" this type out when !PV32. Signed-off-by: Jan Beulich --- I wasn't really sure whether it would be worthwhile to also update the "#else" part of shadow_size(). Doing so would be a little tricky, as the type to return 0 for has no name right now; I'd need to move down the #undef to allow for that. Thoughts? In the 4-level variant of SHADOW_FOREACH_L2E() I was heavily inclined to also pull out of the loop the entire loop invariant part of the condition (part of which needs touching here anyway). But in the end I guess this would better be a separate change. --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1740,9 +1740,11 @@ void sh_destroy_shadow(struct domain *d, case SH_type_fl1_64_shadow: SHADOW_INTERNAL_NAME(sh_destroy_l1_shadow, 4)(d, smfn); break; +#ifdef CONFIG_PV32 case SH_type_l2h_64_shadow: ASSERT(is_pv_32bit_domain(d)); /* Fall through... */ +#endif case SH_type_l2_64_shadow: SHADOW_INTERNAL_NAME(sh_destroy_l2_shadow, 4)(d, smfn); break; @@ -2099,7 +2101,9 @@ static int sh_remove_shadow_via_pointer( #endif case SH_type_l1_64_shadow: case SH_type_l2_64_shadow: +#ifdef CONFIG_PV32 case SH_type_l2h_64_shadow: +#endif case SH_type_l3_64_shadow: case SH_type_l4_64_shadow: SHADOW_INTERNAL_NAME(sh_clear_shadow_entry, 4)(d, vaddr, pmfn); @@ -2137,7 +2141,9 @@ void sh_remove_shadows(struct domain *d, [SH_type_l2_pae_shadow] = SHADOW_INTERNAL_NAME(sh_remove_l1_shadow, 3), #endif [SH_type_l2_64_shadow] = SHADOW_INTERNAL_NAME(sh_remove_l1_shadow, 4), +#ifdef CONFIG_PV32 [SH_type_l2h_64_shadow] = SHADOW_INTERNAL_NAME(sh_remove_l1_shadow, 4), +#endif [SH_type_l3_64_shadow] = SHADOW_INTERNAL_NAME(sh_remove_l2_shadow, 4), [SH_type_l4_64_shadow] = SHADOW_INTERNAL_NAME(sh_remove_l3_shadow, 4), }; @@ -2150,7 +2156,9 @@ void sh_remove_shadows(struct domain *d, #endif [SH_type_l1_64_shadow] = SHF_L2H_64 | SHF_L2_64, [SH_type_l2_64_shadow] = SHF_L3_64, +#ifdef CONFIG_PV32 [SH_type_l2h_64_shadow] = SHF_L3_64, +#endif [SH_type_l3_64_shadow] = SHF_L4_64, }; @@ -2214,7 +2222,9 @@ void sh_remove_shadows(struct domain *d, #endif DO_UNSHADOW(SH_type_l4_64_shadow); DO_UNSHADOW(SH_type_l3_64_shadow); +#ifdef CONFIG_PV32 DO_UNSHADOW(SH_type_l2h_64_shadow); +#endif DO_UNSHADOW(SH_type_l2_64_shadow); DO_UNSHADOW(SH_type_l1_64_shadow); @@ -3179,7 +3189,9 @@ void shadow_audit_tables(struct vcpu *v) [SH_type_l1_64_shadow] = SHADOW_INTERNAL_NAME(sh_audit_l1_table, 4), [SH_type_fl1_64_shadow] = SHADOW_INTERNAL_NAME(sh_audit_fl1_table, 4), [SH_type_l2_64_shadow] = SHADOW_INTERNAL_NAME(sh_audit_l2_table, 4), +# ifdef CONFIG_PV32 [SH_type_l2h_64_shadow] = SHADOW_INTERNAL_NAME(sh_audit_l2_table, 4), +# endif [SH_type_l3_64_shadow] = SHADOW_INTERNAL_NAME(sh_audit_l3_table, 4), [SH_type_l4_64_shadow] = SHADOW_INTERNAL_NAME(sh_audit_l4_table, 4), #endif --- a/xen/arch/x86/mm/shadow/hvm.c +++ b/xen/arch/x86/mm/shadow/hvm.c @@ -56,7 +56,6 @@ const uint8_t sh_type_to_size[] = { [SH_type_l1_64_shadow] = 1, [SH_type_fl1_64_shadow] = 1, [SH_type_l2_64_shadow] = 1, - [SH_type_l2h_64_shadow] = 1, [SH_type_l3_64_shadow] = 1, [SH_type_l4_64_shadow] = 1, [SH_type_p2m_table] = 1, --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -97,6 +97,13 @@ static void sh_flush_local(const struct flush_local(guest_flush_tlb_flags(d)); } +#if GUEST_PAGING_LEVELS >= 4 && defined(CONFIG_PV32) +#define ASSERT_VALID_L2(t) \ + ASSERT((t) == SH_type_l2_shadow || (t) == SH_type_l2h_shadow) +#else +#define ASSERT_VALID_L2(t) ASSERT((t) == SH_type_l2_shadow) +#endif + /**************************************************************************/ /* Hash table mapping from guest pagetables to shadows * @@ -337,7 +344,7 @@ static void sh_audit_gw(struct vcpu *v, if ( mfn_valid((smfn = get_shadow_status(d, gw->l2mfn, SH_type_l2_shadow))) ) sh_audit_l2_table(d, smfn, INVALID_MFN); -#if GUEST_PAGING_LEVELS >= 4 /* 32-bit PV only */ +#if GUEST_PAGING_LEVELS >= 4 && defined(CONFIG_PV32) if ( mfn_valid((smfn = get_shadow_status(d, gw->l2mfn, SH_type_l2h_shadow))) ) sh_audit_l2_table(d, smfn, INVALID_MFN); @@ -859,13 +866,12 @@ do { int _i; \ int _xen = !shadow_mode_external(_dom); \ shadow_l2e_t *_sp = map_domain_page((_sl2mfn)); \ - ASSERT(mfn_to_page(_sl2mfn)->u.sh.type == SH_type_l2_64_shadow ||\ - mfn_to_page(_sl2mfn)->u.sh.type == SH_type_l2h_64_shadow);\ + ASSERT_VALID_L2(mfn_to_page(_sl2mfn)->u.sh.type); \ for ( _i = 0; _i < SHADOW_L2_PAGETABLE_ENTRIES; _i++ ) \ { \ if ( (!(_xen)) \ || !is_pv_32bit_domain(_dom) \ - || mfn_to_page(_sl2mfn)->u.sh.type != SH_type_l2h_64_shadow \ + || mfn_to_page(_sl2mfn)->u.sh.type == SH_type_l2_64_shadow \ || (_i < COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(_dom)) ) \ { \ (_sl2e) = _sp + _i; \ @@ -992,6 +998,7 @@ sh_make_shadow(struct vcpu *v, mfn_t gmf } break; +#ifdef CONFIG_PV32 case SH_type_l2h_shadow: BUILD_BUG_ON(sizeof(l2_pgentry_t) != sizeof(shadow_l2e_t)); if ( is_pv_32bit_domain(d) ) @@ -1002,6 +1009,8 @@ sh_make_shadow(struct vcpu *v, mfn_t gmf unmap_domain_page(l2t); } break; +#endif + default: /* Do nothing */ break; } } @@ -1123,11 +1132,13 @@ static shadow_l2e_t * shadow_get_and_cre shadow_l3e_t new_sl3e; unsigned int t = SH_type_l2_shadow; +#ifdef CONFIG_PV32 /* Tag compat L2 containing hypervisor (m2p) mappings */ if ( is_pv_32bit_domain(d) && guest_l4_table_offset(gw->va) == 0 && guest_l3_table_offset(gw->va) == 3 ) t = SH_type_l2h_shadow; +#endif /* No l2 shadow installed: find and install it. */ *sl2mfn = get_shadow_status(d, gw->l2mfn, t); @@ -1337,11 +1348,7 @@ void sh_destroy_l2_shadow(struct domain SHADOW_DEBUG(DESTROY_SHADOW, "%"PRI_mfn"\n", mfn_x(smfn)); -#if GUEST_PAGING_LEVELS >= 4 - ASSERT(t == SH_type_l2_shadow || t == SH_type_l2h_shadow); -#else - ASSERT(t == SH_type_l2_shadow); -#endif + ASSERT_VALID_L2(t); ASSERT(sp->u.sh.head); /* Record that the guest page isn't shadowed any more (in this type) */ @@ -1865,7 +1872,7 @@ int sh_map_and_validate_gl2he(struct vcpu *v, mfn_t gl2mfn, void *new_gl2p, u32 size) { -#if GUEST_PAGING_LEVELS >= 4 +#if GUEST_PAGING_LEVELS >= 4 && defined(CONFIG_PV32) return sh_map_and_validate(v, gl2mfn, new_gl2p, size, SH_type_l2h_shadow, shadow_l2_index, @@ -3674,7 +3681,7 @@ void sh_clear_shadow_entry(struct domain shadow_set_l1e(d, ep, shadow_l1e_empty(), p2m_invalid, smfn); break; case SH_type_l2_shadow: -#if GUEST_PAGING_LEVELS >= 4 +#if GUEST_PAGING_LEVELS >= 4 && defined(CONFIG_PV32) case SH_type_l2h_shadow: #endif shadow_set_l2e(d, ep, shadow_l2e_empty(), smfn); @@ -4124,14 +4131,16 @@ int cf_check sh_audit_l3_table(struct do if ( SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES_MFNS ) { + unsigned int t = SH_type_l2_shadow; + gfn = guest_l3e_get_gfn(*gl3e); mfn = shadow_l3e_get_mfn(*sl3e); - gmfn = get_shadow_status(d, get_gfn_query_unlocked( - d, gfn_x(gfn), &p2mt), - (is_pv_32bit_domain(d) && - guest_index(gl3e) == 3) - ? SH_type_l2h_shadow - : SH_type_l2_shadow); +#ifdef CONFIG_PV32 + if ( guest_index(gl3e) == 3 && is_pv_32bit_domain(d) ) + t = SH_type_l2h_shadow; +#endif + gmfn = get_shadow_status( + d, get_gfn_query_unlocked(d, gfn_x(gfn), &p2mt), t); if ( !mfn_eq(gmfn, mfn) ) AUDIT_FAIL(3, "bad translation: gfn %" SH_PRI_gfn " --> %" PRI_mfn " != mfn %" PRI_mfn, --- a/xen/arch/x86/mm/shadow/private.h +++ b/xen/arch/x86/mm/shadow/private.h @@ -209,6 +209,10 @@ extern void shadow_audit_tables(struct v #define SH_type_unused 10U #endif +#ifndef CONFIG_PV32 /* Unused (but uglier to #ifdef above): */ +#undef SH_type_l2h_64_shadow +#endif + /* * What counts as a pinnable shadow? */ @@ -286,7 +290,11 @@ static inline void sh_terminate_list(str #define SHF_L1_64 (1u << SH_type_l1_64_shadow) #define SHF_FL1_64 (1u << SH_type_fl1_64_shadow) #define SHF_L2_64 (1u << SH_type_l2_64_shadow) +#ifdef CONFIG_PV32 #define SHF_L2H_64 (1u << SH_type_l2h_64_shadow) +#else +#define SHF_L2H_64 0 +#endif #define SHF_L3_64 (1u << SH_type_l3_64_shadow) #define SHF_L4_64 (1u << SH_type_l4_64_shadow) From patchwork Thu Jan 5 16:05:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090124 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 158BDC3DA7A for ; Thu, 5 Jan 2023 16:06:16 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.472036.732129 (Exim 4.92) (envelope-from ) id 1pDSko-0005MP-8Y; Thu, 05 Jan 2023 16:06:06 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 472036.732129; Thu, 05 Jan 2023 16:06:06 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSko-0005MI-5k; Thu, 05 Jan 2023 16:06:06 +0000 Received: by outflank-mailman (input) for mailman id 472036; Thu, 05 Jan 2023 16:06: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 1pDSkm-0005LZ-Ad for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 16:06:04 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2068.outbound.protection.outlook.com [40.107.241.68]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id d9cb5a9d-8d12-11ed-b8d0-410ff93cb8f0; Thu, 05 Jan 2023 17:06:02 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB8046.eurprd04.prod.outlook.com (2603:10a6:102:ba::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 16:06:00 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 16:06:00 +0000 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: d9cb5a9d-8d12-11ed-b8d0-410ff93cb8f0 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JK0twxZG6alBtmSSizwcYEyh563fpdxnpgziu3kcb+CZZ8IDa3K+w4U1anaG+W5B10VvmEUVzSq2++WzJjigo0XK4vSOicrqj0v7/FMvfiD/mtB4i+4DroFTkkLtV6kwzHTpAg1q61qYzpZinpL1gKcmbwwq6Hfcn5fasTL+8vpHh3MfmK8DkW5E9LdCmFpbgcmPIJa0m5wFw5cWxwgfkR/fG+0Y+p+jAyzm3fngBE/6TGSnp24Z07B2mgE0DvT47/AbpyVEmyQYoJFFdR7fy3/V5EyLlbboWGEUM2LwcndOzE4oVF0zW4lmyV72gemtGWqdkNl/uYstkh85iSql1Q== 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=tp/xRy5VT94YqOsqdM3hhLWnXJKhH74obPOAkyaCA0Q=; b=clxZolyFyrRJJ2KxqPgWzTGcPFh0Ka8PidOk5WXeoMN+a3lbNJxVedKEhiMtnQTLzaVNXZbt+L/sXRhqvk5rAD00BJvW4k7n+aeUbwZ8nuqjHJcgbfcazVtxF0Gy2AcYkZF7btAfAsAiyu2+xM6kFVtHvPVjz6V3MZSDfOIcItJE+15VvOCeDYJzJqu8GF5BYLnb+RAcQ3EHydRgnlw4GaAtzgJEEmtZ4VkSWJ+tqL05jcRr4TDgrx8RfuNmBQROOe4CW5pd77vgdVerYIVJCAcQpfjWtF8H6MN3V3UmMOPJZ3zDx2Qg+khE6ioIXnA6jKJy8DuG4OGx5SOEETi0dQ== 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=tp/xRy5VT94YqOsqdM3hhLWnXJKhH74obPOAkyaCA0Q=; b=wY3IacouTb28PDk+gWcXEamSJDS2A134FGrYIL0baydIR6X0TvXOQWNCUKq4VtvoPY7DyuwI2t5+r1u/qmEAasK5h8iT2n1epbzlR/A3Y+9FjykMmxCbpc9X7tbVEXMc4qJnof0BAzJfpWjngIkpmPNFamKGPP+EGFe6lzReulrfoGsIgylPajpULKo9SV5pTcZkCg5WOUmMq4KCyl17pNCey9xjj4iOa04hYI4lutWYL7nite7OBEjqP1XF7nUy3Q1xqvTEwErOCqRIP7md4JhplgA58MnyoHRFufh+SEjrI1P7mYzILrckaew0fm2lAGEp7JJ0knKkXTQbYIu+nw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Thu, 5 Jan 2023 17:05:59 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 08/11] x86/shadow: reduce effort of hash calculation 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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FR3P281CA0006.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::16) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PA4PR04MB8046:EE_ X-MS-Office365-Filtering-Correlation-Id: 64ff1aa6-ab3e-4d85-38af-08daef36bd2f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KhmN35WnVVCHX3NTS8nYQ8roJdSOC+NdLb/oE7FghutaIbMflusxce+Qa2o9/ePhdtP7fSb6npkm70rH99J+SroCKqom1lPPQjYAfCDw6n+J3CWh9OqPXXVEWbXQXqufrAZgBxf+wsbDWwLKQ+LHED6bps0cPQUO2Eb/+ng16H16KmMfu4R0hchihMPwb5y40M13/q2CunrtLxoKEmRL1B5BSqBlcRJ/Mtk+bPpjAZ+hdk+FhbFx51UeE0aF1SzpEcTHCHFgh6xL1AfOFl9u1FMhGqy1b1tDC8B+9zAKk99PfFXhuaDTmJ6ZBkbe12qZTxy06z4XFEH3kc81Lkd2pFFLxo7tPnPLjiJRyaPvww0f6hXlfKtJ40Xe83tN1fdsT3AmCRemmZYB2JUx5s/uHhPEYe2OyewMpFa6JJb94QEdWnbbgusXidQUpWAjmOGT7agQ2lEHdSIlhPtuG0oN+4ckDMXZwCKUkH8swTLm00SMQcfp+ruSjmfDQuJhv7LJ3PSzF/6IilnfmXe0yqk6iXPMWwc9giR1VRZ1EltKQjqokrj5yLkvGzjHAXwgOC93A1m5iFvDSQXvU3dSPxG447K7lg7HCPw0tSztI203dMbIkWjAfAVMAkf/lE8RQDukxX0Vco2gdODinfQ9UnSUJ4RSA1gO7zk4Gslb3D5EX2KeR/0qDaKfx6bUzjWqyn7EcYLaCbkkM1/9UWsjO62XKFsw/rrtRLnlhadZEOPpJSo= 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:(13230022)(136003)(376002)(396003)(346002)(366004)(39860400002)(451199015)(38100700002)(6506007)(316002)(31696002)(4326008)(86362001)(66476007)(66946007)(5660300002)(8676002)(2906002)(66556008)(41300700001)(8936002)(6512007)(26005)(186003)(2616005)(6916009)(54906003)(478600001)(6486002)(31686004)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?k56qlp1rdnkTXR/yXnm5ckSm++P0?= =?utf-8?q?WEyT5DKDt1TlTghKou7X2RsPlKvW76VtPGpxKP6IjpmzAEkaY1agAGukxO2aDDSJO?= =?utf-8?q?aQ7lLjMzlcl3O8j/cCY2s+ObNQxNlBg7Bk86NmCionhB28owyhMwygY8Sym2tdtbM?= =?utf-8?q?lcTy181vn8mypY2wyZ6sQB/tN+cXR2bqOpNf2Qkt01bxbazgw8I/hTbPquUzzsQAq?= =?utf-8?q?Jiz4HPge4F41Fq+tzkupKNJNE1AhxQjD9PvMqJdLWlN7QhTUYhSu9JYAAGWe+BdXc?= =?utf-8?q?+CaQjA1qvd7wnHPRyrvRUFtutvEFRO9Dt00dmzwpqFW5edebCXvas2FEaqmkms9lL?= =?utf-8?q?O7g7MDpIGJ43raIxb4hDQD5LWxK0QY764M4xJBVR1+PXFK5mBaz6UgAi0BYbQxv1S?= =?utf-8?q?EHFqXPR7Zg8Z2uhp8BAt5wmb8LQr7Hmm3NQCq96eLwldN3e40OBc4ij5Q/gfvr5ki?= =?utf-8?q?em/xL8m3KK2EpwrDSAjWQijJH4SQBEy3heewKCtiPsj4QOupdpB6xc/UxCn+vbm64?= =?utf-8?q?+FwCWqrDE6KkaKXKb591EXL6XRW8vZMUql4yrKG3n+XWpGqCM840b49K4+WCxqxkx?= =?utf-8?q?qJ+iPWp8UoIcQfk6j0LEvonhg9lOjCq1KSB4SMFgHzqVZj4ysmh4B6MMavc5v5smO?= =?utf-8?q?nu8D/lPv1K5kTrlYVyBYtZw5oIL69TH9bQYhaLtg6jiwef2mh7Ek5J+E1VB4yK45q?= =?utf-8?q?dIhYV9SWVa4Xz/6AGNJdvlNlNweSLyvcjHSPtYP934hVkUZYwvwENlCoGBFQGM3vV?= =?utf-8?q?tyF2rTRbUQu6K/ISnE09GzwBNbEWm2H9U8EvRNA5np/7pbQaiQStq6A2tiTa6UEMN?= =?utf-8?q?qz60qbd91q7jTtwPWgf74fOE0DR6blGnczx76XAnWIn7+EUWHScmkFfMekvaU9bs4?= =?utf-8?q?A6goiwWo7tHFFscA3Qv+6r1n3Ed4lOaRywTubzLcA6a9xarY2P7Nx3DPthTZP6lIl?= =?utf-8?q?3PoHKnyGqsSGXJHmoXFF1r3NWI6wAXrkyIvmF5cJgz/CWDhupQeyoLNDcERBgE9O7?= =?utf-8?q?uPyglVHOg+dXOUVjOxjJQdkvwcUMtXu6huy2VeVquZX8jMs3p/gMBUCn0ZxZouuTU?= =?utf-8?q?1Y3nOSz9Ih0DUZbr+1+dBqfYLVVr4eaZQG8DxKTmQHoAZTWCazXA3aeaVOYJemRMs?= =?utf-8?q?hFuOm9ga1SE/RoaaxGYqkpIi7VFnyNofPISm2vwViLdybppd+Q14n+QwPF0EaKa66?= =?utf-8?q?lRXXhRso5wdQTq1eNBNECpWqMPEXFt2EDIAgaqreNWGSdS79ZJuJx6mdngUByVlkJ?= =?utf-8?q?K22mkZNGm/sgF7mW/X54WdqpgalQIpyrsuTi/8ACLWKU6mT4+zxp91bu1O14AmCXy?= =?utf-8?q?yen4YFIwBhxhsFiEgf4kqxBYuZBtqGW9zVVsXdxK/HSAIJDDXsIu1ufUC0olR4H4T?= =?utf-8?q?CuvyUqnqpzA6SsPgYsAE6v8KZbEB1jb7mgp05D89bmBRHL6NPQVmmvLzmYjTgPIXg?= =?utf-8?q?34OfPS+5rrFQzXsoxWH+YTnQOBNBSR0S324myD1eSWBrm5y2xrTLlzHrdtOdMLwiW?= =?utf-8?q?mMoK4pJtWXEE?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64ff1aa6-ab3e-4d85-38af-08daef36bd2f X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 16:06:00.8857 (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: LaQDgsNlFjFJCocMBEUkxOUjT0qwE/voMbSmTu3fAN7wtJpxx0dgCsa2Y6wWK7xICqEttpvbeczQIWvQT6NEbg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8046 The "n" input is a GFN value and hence bounded by the physical address bits in use on a system. The hash quality won't improve by also including the upper always-zero bits in the calculation. To keep things as compile-time-constant as they were before, use PADDR_BITS (not paddr_bits) for loop bounding. This reduces loop iterations from 8 to 5. While there also drop the unnecessary cast to u32. Signed-off-by: Jan Beulich --- I was tempted to also change the types of "p" (pointer to const) and "i" (unsigned) right here (and perhaps even the "byte" in the comment ahead of the function), but then thought this might be going too far ... --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1400,7 +1400,11 @@ static inline key_t sh_hash(unsigned lon unsigned char *p = (unsigned char *)&n; key_t k = t; int i; - for ( i = 0; i < sizeof(n) ; i++ ) k = (u32)p[i] + (k<<6) + (k<<16) - k; + + BUILD_BUG_ON(PADDR_BITS > BITS_PER_LONG + PAGE_SHIFT); + for ( i = 0; i < (PADDR_BITS - PAGE_SHIFT + 7) / 8; i++ ) + k = p[i] + (k << 6) + (k << 16) - k; + return k % SHADOW_HASH_BUCKETS; } From patchwork Thu Jan 5 16:06:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090125 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4F4DFC3DA7A for ; Thu, 5 Jan 2023 16:06:53 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.472043.732140 (Exim 4.92) (envelope-from ) id 1pDSlN-0005uC-H7; Thu, 05 Jan 2023 16:06:41 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 472043.732140; Thu, 05 Jan 2023 16:06:41 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSlN-0005u2-EI; Thu, 05 Jan 2023 16:06:41 +0000 Received: by outflank-mailman (input) for mailman id 472043; Thu, 05 Jan 2023 16:06:40 +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 1pDSlM-0005kL-2C for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 16:06:40 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2087.outbound.protection.outlook.com [40.107.104.87]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id efab7802-8d12-11ed-91b6-6bf2151ebd3b; Thu, 05 Jan 2023 17:06:39 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AS1PR04MB9432.eurprd04.prod.outlook.com (2603:10a6:20b:4d8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 16:06:37 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 16:06:37 +0000 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: efab7802-8d12-11ed-91b6-6bf2151ebd3b ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l4YhXWejcZbws13WDR0aSs6oVQoxmssMvS6YypsZTBokNSZJ9iiDVsXHqYHgXkdAsoHjvCFIlfg7kr7p/fCVUxfHLrUSQkICw6Ia+Fc7LirDbF/np3/oebizf+9HFM8Aa6CLSUE2kytICE0Ung6Z3fnGylwiwiOlaPkZAs6dpMWGkeM9ODMRASQh+paGb5CFWgR0Kv/5kz5+GtxeTPabRc4SfKhoUJx3LHmXbZ7EPwE+QcwXyAueXy/Dxbhi4asxcjtP3L3SptiRsNmTCoWBHaRV2vHFuELT4Wwx27l4KucBIlNNOY7RTEIPiR8o8uvBGZ7AMXTqNPYfJS1VKqqzgw== 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=iBgM5VtWVqIkPoDCOPK8xEPFq96mp+OUcLEBtT+07eA=; b=ZlHpO0xn9nPfqrWGjoomxwjgSXtoEQvCZAtYBuqneles+J7jyoz3PlESkWmfdEhpcr78533t5xqRSPwQIL5VA3MOGUVoexYKzIw5wvhP8hwX+oSUv5U+0jCcXnpViZVaQeTaSIf3tonW5XLKp6SgjpoWnnMBFDplXIkUKybfRJEEG1XwpBME47OLP8NyYexaNHdbVojtKNljyp7RVnuELpO6I7wP2lW29QB05peTl/Qwve25GNtEZ/uDPw+2PIwJdQFmFOyDbe4g+eHfCyRJ6m2VulvlssUI+OMeEEwl2nlhbH/qxnjVRhuqgp5N5LmaGg5NsIS6FIANbjwC12M0Iw== 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=iBgM5VtWVqIkPoDCOPK8xEPFq96mp+OUcLEBtT+07eA=; b=l7VkZDgN1vWhY7eQ1WCKwhL2ReJP9SDbXcsvQtxT5n+FxK28rOKERP3bt16/JyPsrrEWCkQAvumNn6xhlvx+xLZ4+npqJ9LAZMjpp3CVJoCxkahqcASK1myTLVKI5durFKN+jaFOIBpVzia5qThqnKtg1LNVAY7dfRSfqy0k5KBc3IYtkkPFZXDYu4U6a4hFWZb9NRtdVDX9pPnyhzsjiXZKka6+mZFaPkXl2c9D7b00gpIflcJqRh9wgwhaVisykP2hc4xLOWL9qoraNHYeVjFSUMy/JKWLEU8KpU6lyhjAJmpkTSfYGRzhzAjdYKh+IUnhEIlPJGmvtNcRL19+/A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <0998689a-91b1-e381-ac63-a485ab2cb65d@suse.com> Date: Thu, 5 Jan 2023 17:06:36 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 09/11] x86/shadow: simplify conditionals in sh_{get,put}_ref() 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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FR2P281CA0010.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::20) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS1PR04MB9432:EE_ X-MS-Office365-Filtering-Correlation-Id: 3af18b23-60d9-47d6-01bb-08daef36d320 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vJ6piFQCYG2spTAB6SysG6x25rneJH89bOIqSUkifTZp+K99hrxhrqqMMJKy2KNR/rxGmpiCT4keIHBmCT3Pqe5be1Hy8aTH9IqiNvknbiAA7SyAdozGkaTHQj/muOIf9PIP+gSoqTQH1TyMOOklJ0Gy+iODzINriRUgt50lN+MCSMGS3Q1YjCCd+bShJ/AY8fJ5ayVW5o5yKWaYftAwRcOiaTGOsjvLs1Abx14HJxZlh9rkxsEms1wyjjbOwDBIf7wDXy+hepIdiRfSGkvg07f+OMBmhLCJjYig45Tseq2No2d36zylFjOJcNpQvESBAOOYJ3XBJ0tZVj8fMq3n41TIBdTWP+DA++mUFl1Tf7mUe6adGxWZYvrBwX5mNzagu7HtyOParcy40mZOsUG2xZVMYfbN5mK4/aSL9m2cw1Kga/SK54insiK4jLMy9bItbiGQqGvQ87dw1VeXQJTD5+MZhjAzJFpnM8MKTxRNYUWvZOGTiKDpW2LnoizoHRbl/hrvIZvjYrNnsNUdJ2tYfRA/45xqoBR95x4ADAAhMDh8UVetEgElTz/FFXXZLlx+vVO/aaQsXmOEYhxoFhUjIGLWfE18gjRyOj0hEzjtw1QGjb2NeY6gAXg8NERqbEAKusPkWz7msIuWxd2YxVlZAntaBZlMkKEStNTzY4OAwPHp6teQ7Vm4hSRz7Uhh7F6GYJiwuMPYfmnrvOybkbP8ij3lIMycyPXz8NuEsIROTcs= 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:(13230022)(376002)(136003)(346002)(366004)(39860400002)(396003)(451199015)(54906003)(6916009)(31686004)(26005)(186003)(66946007)(8676002)(6486002)(66476007)(2616005)(478600001)(6512007)(66556008)(41300700001)(8936002)(5660300002)(83380400001)(4326008)(2906002)(316002)(6506007)(38100700002)(31696002)(86362001)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?+i0zNbxw37kF1uAwcepOeJ+SKjh0?= =?utf-8?q?HUkNSdfkhSMzEDv+U2ph6oEQT/6T9zjUtK37ORw0/HhJIcMyclTudkV/L2oJsIWkS?= =?utf-8?q?jFU/nKowDlbxGkbGbFz202upJ6wTdltjeFcrb1wh0ZgVlsYcQF+FjCGeTqGsaqia3?= =?utf-8?q?sn0FLb7Ere4iVoH/flAVOLX059Z9cjZuj3rRqPy1WHnyjlu0EqX7NKC2lPXRhUFwZ?= =?utf-8?q?6kqHrg41gAzHjmv5yn/k9uiIJZ2YGVcdaRbIZGTvHkFEfI5BlnxLKTiagP1iv/u2/?= =?utf-8?q?DQbbiBR1t7vLDRk81I1r1+aQAsXfx/WcBafmAitQcSUE0/WhF0tI3516tNTGx0cXj?= =?utf-8?q?1DjowkW/z9fm1ghsax7u2ZBwo8ApYjsSSIyw1XpWhmaCGgo2L0iolBHshUNoukAPI?= =?utf-8?q?K5+5yb/0X8+s7gPXdfBCAJUWRmUdUnigRReC+s4GIAK2hst5x6tn5qv83w3bp3W6t?= =?utf-8?q?8ZnRsMoeJuW8Q/lIfournyDpv/yt398dCZDsXqeTyD+r8xWCe0v9bOvQKolkIw0cI?= =?utf-8?q?Ref2x6Kmxztbpy87SpHez2AA2FVsyWkABQzPbXgv+u50XzOH+oEEF8zGOfwWEowva?= =?utf-8?q?hRSCGWt3B2VmPJ55GIJatvl6ynB9m80ZRkGZ/R8mgd7tzSazqeifmdzrf+k2uOdlk?= =?utf-8?q?EOJ/fIwC2cCcZqnk8gqOBxGAujSBe+q31PKr13NjRE3CarZA3T1lOsfaSKAHz5yBG?= =?utf-8?q?PLeupFVjfK9ciAKBR80LgieQx/oPtxCeWQobS4qUz0+yutwWKexmWnAOsJWk46xlR?= =?utf-8?q?U0xc1LotDPdwnM4b6K7g+M//xX0a9SHtI1noiTWICxvZOhoXNfgfE9u6yGNsitIVB?= =?utf-8?q?ecYr62xh97ts/C6Ss46PgzIATHlRw5ruITP2Ca+Ry+mtSW3lHKmUCDYo3ns/s7CHG?= =?utf-8?q?BlJQZIct3spJgKeUV7FZQWPQ0X9Wq82Qt/SgaBBhco3quOT6KG7c7DYruCmhtdG6P?= =?utf-8?q?XtqvLGi5dA+1vt/dhDD+JvsKoUMQUKXny2WrOCa0WObwZGhN0LNGxwQjqGW6py/23?= =?utf-8?q?Rdq0fXNnTq4wtp9q4cEmcEsZqUhHpxLMyaTNxgwuRXnNNhZu1cIZHjVPnfX54FZpO?= =?utf-8?q?HTyeTIKkWnFU3hHPiNiZz588F8a3V3SfnZxYsFL0taDFStFKgQKPoaJaLjU9e1KNp?= =?utf-8?q?J7V6K1tAfplLp5uJW10pkJ+ZFTVBiZ34LuxRHgJ6w5LGIb0Ioa42/EqCEUdy9TW85?= =?utf-8?q?S5lolMTAK30rSc33bj+sdcF8mRtjmPQQnI0IYsDgettMhRsoybxWqyEV3W9gW5aeX?= =?utf-8?q?wfdTeZrjt7LupFOHdm4oU0y5LTOBUAkbmoDXvtBT/pRtTv/OPXedfp++GDaJkijOE?= =?utf-8?q?U1z4I4s8HB2Vknok4bLIzznBHEY7wse4dXaoIsWYfvLlmgfB1oe7lsYAA8g72gjVb?= =?utf-8?q?CRll843vl7OzYghjjgxkltaSxiyCnivlKlK47wuAh4yUK4qqZLDhb/cDRFojzQ62i?= =?utf-8?q?MvWNmUU1I6koE9+iFL4ByWeXAGpn0T5lvns/kXl87K/7131dPJJ+ijeNtPiyTDbDa?= =?utf-8?q?Q7TftyWUyokf?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3af18b23-60d9-47d6-01bb-08daef36d320 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 16:06:37.6802 (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: d54P2iPN7JaHNZZWMtCb08lWhqROSGJ6/zUqKXb7t54PlXli06etdxO9gupjKq5uyxcP6sjcp+wb4ne8smx/xg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9432 In both cases the "entry_pa != 0" check is redundant; storing 0 when the field already is 0 is quite fine. Move the cheaper remaining part first in sh_get_ref(). In sh_put_ref() convert the has-up-pointer check into an assertion (requiring the zero check to be retained there). Signed-off-by: Jan Beulich --- RFC: Strictly speaking accessing ->up ahead of checking that the type actually has an "up" pointer is UB, as only the last written field of a union may be read. But we have violations of this rule in many other places, so I guess we can assume to be okay-ish here as well. --- a/xen/arch/x86/mm/shadow/private.h +++ b/xen/arch/x86/mm/shadow/private.h @@ -586,9 +586,7 @@ static inline int sh_get_ref(struct doma sp->u.sh.count = nx; /* We remember the first shadow entry that points to each shadow. */ - if ( entry_pa != 0 - && sh_type_has_up_pointer(d, sp->u.sh.type) - && sp->up == 0 ) + if ( !sp->up && sh_type_has_up_pointer(d, sp->u.sh.type) ) sp->up = entry_pa; return 1; @@ -607,10 +605,11 @@ static inline void sh_put_ref(struct dom ASSERT(!(sp->count_info & PGC_count_mask)); /* If this is the entry in the up-pointer, remove it */ - if ( entry_pa != 0 - && sh_type_has_up_pointer(d, sp->u.sh.type) - && sp->up == entry_pa ) + if ( sp->up == entry_pa ) + { + ASSERT(!entry_pa || sh_type_has_up_pointer(d, sp->u.sh.type)); sp->up = 0; + } x = sp->u.sh.count; nx = x - 1; From patchwork Thu Jan 5 16:07:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090126 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8514BC3DA7D for ; Thu, 5 Jan 2023 16:07:22 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.472049.732151 (Exim 4.92) (envelope-from ) id 1pDSlt-0006Sa-Q0; Thu, 05 Jan 2023 16:07:13 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 472049.732151; Thu, 05 Jan 2023 16:07:13 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSlt-0006ST-N6; Thu, 05 Jan 2023 16:07:13 +0000 Received: by outflank-mailman (input) for mailman id 472049; Thu, 05 Jan 2023 16:07:12 +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 1pDSls-0005kL-Au for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 16:07:12 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2083.outbound.protection.outlook.com [40.107.104.83]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 02f3f296-8d13-11ed-91b6-6bf2151ebd3b; Thu, 05 Jan 2023 17:07:11 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AS1PR04MB9432.eurprd04.prod.outlook.com (2603:10a6:20b:4d8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 16:07:10 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 16:07:10 +0000 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: 02f3f296-8d13-11ed-91b6-6bf2151ebd3b ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eWrIEqMbpyYPKBp72HL5f48dhXvraNwHfPslAXimjYCTBZdobp4Ly08KfFp8+86rDHZuJH8D+FLtd0bY6HUgytiWyUKZDRkef/IDjnHKv0i9hMDK/SpuwDnkf4oo3wANK9lxTXqDlssTOkNqzJcA8R/rF7xdshIloMMQ/FhjSb+KClg3LqisbR3tcYC0vCV6VQwhU+WeER1WFbNni/nkAKWLWpsKgnMKusAjHIssgr+9gipNzw9K6op3Y8LjuiarJpp+Sm20vTEaW6vD2tqXhsQ80rMjGZn7uC8c6MAY2US3Iy/mYk1hfdsj8zJrB61mXpjg14TuYfKl52QfolDC6w== 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=dOUOzfolYR+T2htvQf9ACsmsUnGdPR9fDgi+OoWIHI0=; b=Wg+B8UTW5zEDkrK57UooT4YDqKkAAv9kO63FjwiESgumJVqxqnNo3eEzJ9B/mYrN6R1S/gM6K9xJjZkIGziH6YhAc/tSyWzMccv85knW/mHkKMOLt6iLFLd85vGErOjSTq2Xv5PpPqyrHYgqojo237s7mIQO4LgTZaP5XjyY1Kpz/SbA57IooXFeoWF9oKx74+DL5KqKYVX1ofhnYp9qJ6HHLi2nS7kmmiMu1rSaowgpBu1PUAK2awRyDjAwyg9mQOkbiIVI9GbhU4P3xhxhNlYIcpPRl1JOh1QYaaqtDO1DqSrckrU4snjIbTpRxDRZGap5dAYfTItR5uyk/QOofw== 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=dOUOzfolYR+T2htvQf9ACsmsUnGdPR9fDgi+OoWIHI0=; b=z17qbJaR+U8+QysUbU2feN+Njj0RrcgbeisU+ko/35QZqOwpFkiT9t78+nxfwEVfst1RaZWU2eJZ2SIJUjzwK8rVpaH+NRXIq45ikCbXnaNzD8QEQ3NUmk4YOG0A6TguLDGKFMlKyoPbk3AmAK+kZsdYcB2438bw0kLRM/VQ9zRlw9GL4G7/yHBwoWZ0W/+T+XKEySu9UBJtIdCbrcn3FJxjt1stSI0R2ApWpfKXe2abgDA/smY/tymzlbcOIUvjV6SfzoVi3HUO48OcolUr4vGCEcmMY74e487DfJRhTQckQ27t0t+0zdeONLJ2yI0hUIz50R/MOoSn97nGltfxCQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <8f19a31a-9bc3-4216-db1c-a9732c6363a7@suse.com> Date: Thu, 5 Jan 2023 17:07:08 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 10/11] x86/shadow: correct shadow type bounds 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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FR2P281CA0140.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9e::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_|AS1PR04MB9432:EE_ X-MS-Office365-Filtering-Correlation-Id: d8c9e9b9-d8ec-4bc1-7e89-08daef36e670 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uoCWZDymnphVsFDawywMhEmu+1148SzShYbJBzyY4dG9y15rG8F4xDSzzhcSV2MKJd1h6sOvHivuv+3LbaScO8YJGiABJoRJgvAZJtFKnP/93F1uSlfNaD3TZlMv/OfMueNfBov+NJnhB82JvtBwJE6UV1Goatemfr+1YttvM+Y6VTbPsRYAKb4yfSN0QXwRxV+AegTiTWfLo7TJxqM6eyN15eMorLMlHQ/7h71dNgJVum/dyg4JbJ/YGx8mzl/foR4bu8EPw2JENCkyvQmnFkRGeZw/uEIjQXcqCjSWyVcpQFS/wkghD4gfCqVHOFXb3bdVnaYJovPjnano0mWt2sYpNKLsrt5Wk4TAMkDV1gGYntq/XjoEHcwzCvK2poQLlW+dqUpGXAcRqzOWdIZ/RDseNF7krUcT8FSlrWm6CTemNmxv13cRDdtdJD49Mpz/Glio27umvYwMsAy1V2+z/7LsRfeD/FKPNMlp7ZJuNVgDZDLwTcHLFPqyJ6g8Bl50wKZLvQJNZTAZSKOubcBJuIEeUHkUPehR3IQ7aOREPEl17KEkpQDLylPNc3Cy8p1PZMskEY7nN/q6XsLHfS93sGbjSNrMXlsKHOXbarLQB66opW7M9b8bXyDy8w5eSShTnBAFSCzOf1iFeh3ReU9NlnykkHeRit6oMmvGm/3NsNO0IAHvAK8f8VJILbjm1ph8eJqMS2q5T6TC9oCZB8QeyV7Gc11xL1jqj53cK52CdYE= 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:(13230022)(376002)(136003)(346002)(366004)(39860400002)(396003)(451199015)(54906003)(6916009)(31686004)(26005)(186003)(66946007)(8676002)(6486002)(66476007)(2616005)(478600001)(6512007)(66556008)(41300700001)(8936002)(5660300002)(83380400001)(4326008)(2906002)(316002)(6506007)(38100700002)(31696002)(86362001)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?kQR5TGAIlt5qugrnMqR8Awo1+fE6?= =?utf-8?q?qp7BGYuN7l8F+XpG4qfWnvxpDKhRPiFXFIomf9PS5ME7QSLb+sZUtiocZbQerTFEL?= =?utf-8?q?Mee/4Q4T0o107zNJVAd5CrCyOCW9orC301oF5qRCXOq9Z3i9NSVrRlUFgQjts3vaS?= =?utf-8?q?NvvgHNPgSIhv/pWF27mptrb22Nx/HUOO/u3Sa1l8UktM6XtxwcCijAFIB9oJN1NZ3?= =?utf-8?q?2QwTdqU2pXRfGNsE2yGLq38M4xU9d6csPtjxKWwCpuZQ//iMkJd5ACTsk1ifKuljN?= =?utf-8?q?vT5JyYRzxNDSzlrm3acopcKbzDbcfIR5c4Y9G0RI7ACGpDXJk9dCHsapUyeijgsV4?= =?utf-8?q?gOoDHC87KOd5ph+QndHRUZUxRxKesr8yaeMzB84a26a0e9apvZdVVGm6y9R4nH5vh?= =?utf-8?q?gT1krT57r8UW5cCTkfJMJqd6/3Gbm6gumKHcl5dkvnfSFZ0BbDPME4d5d347I/ZWh?= =?utf-8?q?IoUQMYMio5+bDxJF+2I/sb0coi+DGlxcdXNhu3tyvtX5S6+vXYB/e8srIXvQB/Gv4?= =?utf-8?q?2ef+Wg+8tTR4oDvzUQrzA0uZg740BU5dJgw1gI76Eaasi0BzpRp5EsktEEmjXpsnC?= =?utf-8?q?ZUsMDHXGliY3FTWpnKlrqAdfoujBoQfSV9JX/qtMkxxfbGWAAdNuSsNfPUu5Zu9Zc?= =?utf-8?q?eki8WB8v3YIrWdI8bZfJKFdREv8id9uVS0Ng4YNwiLTvU9utUszpDRmNEvvQiGeHg?= =?utf-8?q?KxZ++eZp+JuEqyGD9iDfNrgC2+3WzgXr06BMImgd/LWCMMzxe721gO3oBJZGdZCzo?= =?utf-8?q?Gh56pJv7kzKTZppA3sUmalxQBoGHmHpAJpwYzm+IFYvrA6p5Jw1aIHTFtnfVD6Yfk?= =?utf-8?q?Y49EjFLx2LakLv3ed0H2oN1Y7OlQZ+Nh41facXzHTmHQMQEHX1DsZ83Nytr0P9uGB?= =?utf-8?q?qdvSICnvhnWzxxiEMuEKzyfgxp6LMyF40nFpO61611drovS9uk7GRzwM+QsfJJIwl?= =?utf-8?q?YOiMmD7fXkOiWnt867vPIXT70fzoNMArtJYk8g967ejvFmT60MEnhVE4iHMM98/NJ?= =?utf-8?q?H2DkwGPWA2kEEnIHTVh2C85aCD9bhoSDHLJVLL2/bhqNRsPdvLxBJf8U/5xcRF19f?= =?utf-8?q?FiZbuXx5IbdmLTMvj48OkJmfeYD+yaOye4EzVBPwaNO6RhPHCBP3DwV7MebYLXh+0?= =?utf-8?q?tYK3LyUSfhUOLduloxEAzXO884NYae5Hhchu/rB2EXp4yZKrpgm8BSotV5VNWM3hm?= =?utf-8?q?goqd+gbijEkLNfAZaE597MqQ4DSPwW9K3j9PqxpXdi1ZflAYKVxRIEGqO8JM2RkxN?= =?utf-8?q?CpxwAjz0sZqnMRMeAum7oeh1VQehNdhGwQrU/4OPAmzxIsesE1moffHHrJyOhJnZQ?= =?utf-8?q?RzkR7u6UPZoVjm+KEcX1sdItKCAISlQZ3iQUyvUrIv7KKaAS7NcKua3bXYQe9Pygs?= =?utf-8?q?SiRuJ5gRbq1vZw8zR25H2t6Hg09EHmUd4dADy6y5vdJOTKTw8YFkW4fct1fRD9O4M?= =?utf-8?q?X8/q8ASFqUVxbGo5TRwubosZX+V+WgnoSsVeVRbRzmTfd6ex4Tm7yGiOi2clw0uO6?= =?utf-8?q?+QEgU4zWerct?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8c9e9b9-d8ec-4bc1-7e89-08daef36e670 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 16:07:10.0844 (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: hi+aiyZkAnzOe+vVp5V3J33MF6OzPz4oNZn4SK2QzVZAReP/4NcmxZMlaU5qpgNmIKVGfGtlI4Pec9sF9ktW3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR04MB9432 In sh_remove_shadow_via_pointer() the type range checks, besides being bogus (should be ">= min && <= max"), are fully redundant with the has- up-pointer assertion. In sh_hash_audit_bucket() properly use "min" instead of assuming a certain order of type numbers. Signed-off-by: Jan Beulich --- While style is wrong for the BUG_ON(), keep that aspect as is because of all the neighboring ones. --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1425,7 +1425,7 @@ static void sh_hash_audit_bucket(struct /* Not a shadow? */ BUG_ON( (sp->count_info & PGC_count_mask )!= 0 ) ; /* Bogus type? */ - BUG_ON( sp->u.sh.type == 0 ); + BUG_ON( sp->u.sh.type < SH_type_min_shadow ); BUG_ON( sp->u.sh.type > SH_type_max_shadow ); /* Wrong page of a multi-page shadow? */ BUG_ON( !sp->u.sh.head ); @@ -2077,8 +2077,6 @@ static int sh_remove_shadow_via_pointer( l1_pgentry_t *vaddr; int rc; - ASSERT(sp->u.sh.type > 0); - ASSERT(sp->u.sh.type < SH_type_max_shadow); ASSERT(sh_type_has_up_pointer(d, sp->u.sh.type)); if (sp->up == 0) return 0; From patchwork Thu Jan 5 16:07:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 13090127 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3EBC7C3DA7A for ; Thu, 5 Jan 2023 16:08:00 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.472056.732162 (Exim 4.92) (envelope-from ) id 1pDSmT-00076W-8T; Thu, 05 Jan 2023 16:07:49 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 472056.732162; Thu, 05 Jan 2023 16:07:49 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pDSmT-00076P-4f; Thu, 05 Jan 2023 16:07:49 +0000 Received: by outflank-mailman (input) for mailman id 472056; Thu, 05 Jan 2023 16:07:48 +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 1pDSmR-0005kL-Ss for xen-devel@lists.xenproject.org; Thu, 05 Jan 2023 16:07:48 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2067.outbound.protection.outlook.com [40.107.104.67]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1833933e-8d13-11ed-91b6-6bf2151ebd3b; Thu, 05 Jan 2023 17:07:47 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PAXPR04MB9326.eurprd04.prod.outlook.com (2603:10a6:102:2b8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 16:07:46 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5944.019; Thu, 5 Jan 2023 16:07:46 +0000 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: 1833933e-8d13-11ed-91b6-6bf2151ebd3b ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mkvHJGOSyTC+uh7KK9yKtwXtD4wBCxEwOJlMnqQSu0uq0g5kEhJP33TmxQx5ZLAnAeh6eKMBP8hBcNSTnA/eZVd/yyV3iemh/pZwK6bnI2twKpzn7b32ohBawSvYYc4UnmfWnUz27Nzz2BDbcL8G2jDbJaJsJQuPb12RU65DEoGBTi9/CfUPELl7bwhceZIxHT9fU27AE5/kA35CjnzJck9pIgGo3oeYYH54JXjMoweMBO0dHVZ2EFzrWU8fMFJlV44FgMt2Rrbu3UCpLjHjdf0xqXiAY5qraRKvwzLyhOFQzmLKAJWlanwHq4l3qg+nTh72XW5Fall2qvwOn3q7ZA== 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=rkzMWSo4VP4iVpCTjNCVb8H5HyGWrBz+Rgr5MlOxOXI=; b=idd6L6FpiU/2DvabEp8/JucIpXyj+UvQJxZXHrqG/WXbSXT9xPtk7rEb5jzkr195Ly6+1lr8bFzLvTCI1VZ69bb5UHy79RAf183moAqy81GH80ZoDksquItCilhSiaff6AJva41BfQC02vmNgHcgXgTnQs/Ix6YXRAZMblcLBc7ttkVfjOxq2nows5tv38cD0Cd8xbn+yoTjFimuTr2h4ox/Ai35saWHLWVawU9qIG1JQh66TeQNMFtZmW5QebKq8kwJrexAAmq7997yp+Tc9sGIWDyfJGuo3/WhuDRlw2JvHw7F18Y3klQU7YfAZygcEe6sOj5PSwXVAn30LnXNtw== 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=rkzMWSo4VP4iVpCTjNCVb8H5HyGWrBz+Rgr5MlOxOXI=; b=gQz6yA5sZHFf4Twv/F1LXZxXucKEh3yRKR3vYxJ78t+WO8OlSBTxbPMiKzC+9KAFJoXSFDWSPtnYjmazJ5cDfynhBBUDQx1W1lEB0LNXzNVhbhF9l6Ga3vfFUEoL+P/PW8hNPQ6/uYSpJrETfq8Lmw29avdvD1RqbsIpRFXUCfaOU1GJeM+m12mLSiiLKW6TMJM9zyUPxPM1fv2FNhXKzt9fU4/I6wKHsaGiyDpXzodcUG1B/4KxOoyfjZ4xkMzPT6PienCcRRuQcIbZ3w+6/wonafpQ2PT2Snu/4bQRhUrBtYo4hzLioSz0YjYUuy9qB4zEYJBUYX1PR/yZh4Q12Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <514f374d-daa0-ddc0-8cdf-9dfd014d508b@suse.com> Date: Thu, 5 Jan 2023 17:07:44 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 11/11] x86/shadow: sh_remove_all_mappings() 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?= , Tim Deegan , George Dunlap References: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> In-Reply-To: <074dc3bb-6057-4f61-d516-d0fe3551165c@suse.com> X-ClientProxiedBy: FR3P281CA0070.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4b::22) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PAXPR04MB9326:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a50beb0-154a-425f-3cd2-08daef36fbd2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3UX9Gb8wOQdYBNL9QMEEOh/S1m4Gqp6MVJVEmW5FkJ4v1Yw6hcrzEQ2bc6lLbB8jlHJwIOV/MvG/aHVvOpnANkCw+NvZYH1WY/cFVNstBkFx2NAD9t4g7hturD5hrjbDW+3LEc56WRnHhhBlkBKV2Mv1jOuZXRYJRLHx6eMigYrkhqQzQw1qeUn+uy63WtgvbqSNpj7XwdyyT2/UrV0FElj7qvgmPP0nFgiTvM9UtqgzGyDeHpFDBT6qGPKmh6PYmYLDnBjd/YxG/UuPuGKcASoDp8xWkp5eCA8yhDiUYjmglusPifgnXBE2IRNF9VFz88w8LjMk027+RqhW4Krd6VR/APKXFGwhvd3PMK6PxFGDbhttPAGTL0cEUX0sULKYp6fH46ctayr3I/46WmDvrcAwe3X5Yh9MVHBB9LIAZapfJaSJLNxfhn3ZKcP0q/Or0LfuPljDkaWweHXCP23z1JhgpOgPH0Gjxsu3e7yoYATC6w//88r/2q5N+mgiZRK1LDyCkPuRoXmd2wyEkIpDJb7/1qXtvPd2ggvbyzNWUcYXfWCNQwNnlGTX6aGcew+1JgOleoEQEHpw0Yw49M/hAxYjDrQShvy8m+3JEElbNWpWtnlOqyVrRQnyaIuf1u6ZSKYjZzlPplgA2+iHFUXmz0h5qU07IWapG/OslnwmCGI1mo8VE0tsVoei9OI1KR438XKYS1QJcVLiy+Olm2AD4pNbxAf9uheuxKCLcsJ0+JA= 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:(13230022)(346002)(376002)(136003)(39860400002)(396003)(366004)(451199015)(186003)(26005)(2616005)(83380400001)(86362001)(31696002)(36756003)(6512007)(38100700002)(316002)(66556008)(31686004)(54906003)(6916009)(2906002)(4326008)(66946007)(8936002)(41300700001)(8676002)(5660300002)(66476007)(478600001)(6486002)(6506007)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?GNozWXtimKcvhGt4N+ckgG0n0PYe?= =?utf-8?q?VWU2Hjjj0tm/F7F2o1PESNPr0Tj7O9ludkIdC60SyDU0TlkEefi1BfnUyGCx+cO2P?= =?utf-8?q?yihnAaDXSA7pR7972M4Jx9nXDK5kltzXEX+eRh6i3XbBUbIg3ssk5sWUS6HqJNpnB?= =?utf-8?q?Ql35+JCRfxk+T5S7572hNLpOZx3KVOgr2EzL+ep/Iblxr1xGu9HcndkphMKcth/GN?= =?utf-8?q?1yGhGr2VRiWWe49Kk1Jvppn4vxFfFO2O4NFGsC3lcSIXylCEhiUUnhARctSE1A1vb?= =?utf-8?q?JtRHjwetVfsLbkUETQNctqLf8jsw2acAHirhpQ1icZv8Hkr/frNBdOi387hDsPLx5?= =?utf-8?q?qhc8zUlP7e50mZOel+8635Www6EAXMKYTWR4aQ6kZfDWy6xA+g/GNZpSGUUkXkfs1?= =?utf-8?q?iNOtu4HZkBYaJbqghjAi2oe4M5o0gqo8tqQBz3hRvGK6Av7Q2QGoyXUQCoYE+eMT3?= =?utf-8?q?lsnQxvH92l2LdRMzOlzk3Elkn1vb6CTIJ7i4cX5I4Nr/ZhAjT5vxilG0LjRq4hSwF?= =?utf-8?q?ovGslW5rDPUhgCStTPESDCODN6lZW6H3qwWkaswhoBFDpIckFgBUud4CzsgMs0yCI?= =?utf-8?q?UzJMuKgW6rPnBXytsHccY58lwUz59meZyuvxCbFUqR5jnwREsbok4aoebRQ/VBBKo?= =?utf-8?q?g6kiksFgaDysSOA3zwm8Il8GC/I9Agg97f1vs9LHC4y06f9YEnWP62D6Ov9N4G0hQ?= =?utf-8?q?U/p/yuSJ6w1cgwsalS9hBczKMMiuWI0cYQWqrrisQ/hJpN0i3Vw2mhsyTrABuqUoP?= =?utf-8?q?x1utVukaVI0BGfRc4U40az8rz0EAK5ljou7RN29bBwXLIxSWdAYvVB12hZfXJMNn2?= =?utf-8?q?k8jlK8aZ9DnTKPrVooSjf9Gn08MGoR4zDL8y4sMOWRfVFFzHN5YELYwcGr1ci956x?= =?utf-8?q?Oy5pvF/YKaXu2GJsElmo4I1t0I9M2GQGRdK8IyjGw4IMmHDhDve6SYKVlzageSs1/?= =?utf-8?q?couz3oyhZjJ/XAeA0KazTit3cxhZenj16gkI2i62XlBBPTK67D9jyz1wMazs2DeEB?= =?utf-8?q?4tik0ZZ/cm2etzM1Ymb+/dvMGiPcp0AjxN8HYcabvtAUteR/Sivb4v+aaZ9eV5ji4?= =?utf-8?q?SrwDQPfNbbKPATAq/3vcyEbEKcS4IYiodTer/kAJdQNkypkCVeZyDba/ua82oiMeS?= =?utf-8?q?zwpwwabE6BHEgQXx3M/VPPpfk5Sk0/exGHxKmeN4cuCFprBUho8fIsmz5oYWyG7cm?= =?utf-8?q?VQGzC1ETJEJd3shqo2M+P5eRJocM6i1xOCFeJJCKZfFGjWeYx1NfjM8PNeYE6lNlw?= =?utf-8?q?6elILiCJ6EyIJVlULpNLQH5vWFu9yIG8A/g+uMc9U1CvOF1n0JLj1x8qFr/EVC0FX?= =?utf-8?q?194OmseQ665Yi0p/UplRVlk/lO5W9Zll4P9bTHwRhTCrtSd9RSf0JP8UcA/l+iekL?= =?utf-8?q?2ZU9xgqtd2qp/DAom5GaOraoQrbAKdGN7UCg2Tpjxv8T6e9BexV8891HSRw5gqg2m?= =?utf-8?q?SPewEgPcdIubCtOWsawsKzXyrVYxxT1ldb+VKOlx0jVf85jVGHbiIH31xceya9dKI?= =?utf-8?q?ixK+0UWJGd2v?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3a50beb0-154a-425f-3cd2-08daef36fbd2 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 16:07:45.9884 (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: A9Kk2GnJgQoXn6o5Aw5NeB4cTtB+/9ZszHm7RsREp/286bWoi2PaoGWsz28cy/lSyRECxe8zOeimWxZIkK2dDg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB9326 All callers live in hvm.c. Moving the function there is undesirable, as hash walking is local to common.c and probably better remains so. Hence move an #endif, allowing to drop an #ifdef. Signed-off-by: Jan Beulich --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1992,7 +1992,6 @@ int sh_remove_write_access(struct domain /* We killed at least one writeable mapping, so must flush TLBs. */ return 1; } -#endif /* CONFIG_HVM */ /**************************************************************************/ /* Remove all mappings of a guest frame from the shadow tables. @@ -2004,12 +2003,10 @@ int sh_remove_all_mappings(struct domain /* Dispatch table for getting per-type functions */ static const hash_callback_t callbacks[SH_type_unused] = { -#ifdef CONFIG_HVM [SH_type_l1_32_shadow] = SHADOW_INTERNAL_NAME(sh_rm_mappings_from_l1, 2), [SH_type_fl1_32_shadow] = SHADOW_INTERNAL_NAME(sh_rm_mappings_from_l1, 2), [SH_type_l1_pae_shadow] = SHADOW_INTERNAL_NAME(sh_rm_mappings_from_l1, 3), [SH_type_fl1_pae_shadow] = SHADOW_INTERNAL_NAME(sh_rm_mappings_from_l1, 3), -#endif [SH_type_l1_64_shadow] = SHADOW_INTERNAL_NAME(sh_rm_mappings_from_l1, 4), [SH_type_fl1_64_shadow] = SHADOW_INTERNAL_NAME(sh_rm_mappings_from_l1, 4), }; @@ -2064,6 +2061,7 @@ int sh_remove_all_mappings(struct domain return 1; } +#endif /* CONFIG_HVM */ /**************************************************************************/ /* Remove all shadows of a guest frame from the shadow tables */