From nobody Fri May 3 13:58:41 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1675867078; cv=pass; d=zohomail.com; s=zohoarc; b=bP8CnzOK5t9YmmMUX3cBEOVWsDHNNQMR4I0uOlggkNBXEXriSdCgekjJk7qJZb0OdYo7lvKhp9fY2x+n8KR6LhJQfd4borj9YMS03uX0Mma43DNc+tIfKlfBKbf8HcRQd9eJ8YcH3PcN03mWw2JVfDrCS+6OIDLs8fLItNUF/Ow= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675867078; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9OFFDeWa7q1c8WhKPz1ZFmBqxkr1kVm4Ujr2h18c0yg=; b=d7wYa4OUqVh/i/z+y/l+l7nxTQweA6J05lFtBn84gSnPImiosGG4W+4C/ZH2BiUEOLLQUiXVFKqpQ+cSNnXCD4ljLsVoI1BBlt7OMg366qqlPI9QZA+S6TnGovaNOrIAYb1x/6K083xJL4MlWgxQg195DawkUXDrA3fabAUL+i0= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1675867078179706.4781425600485; Wed, 8 Feb 2023 06:37:58 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.491838.761158 (Exim 4.92) (envelope-from ) id 1pPlZn-000614-GM; Wed, 08 Feb 2023 14:37:35 +0000 Received: by outflank-mailman (output) from mailman id 491838.761158; Wed, 08 Feb 2023 14:37:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pPlZn-00060x-DJ; Wed, 08 Feb 2023 14:37:35 +0000 Received: by outflank-mailman (input) for mailman id 491838; Wed, 08 Feb 2023 14:37:34 +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 1pPlZl-0005uV-Of for xen-devel@lists.xenproject.org; Wed, 08 Feb 2023 14:37:33 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20620.outbound.protection.outlook.com [2a01:111:f400:7e1b::620]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1f2608dd-a7be-11ed-933c-83870f6b2ba8; Wed, 08 Feb 2023 15:37:33 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB9343.eurprd04.prod.outlook.com (2603:10a6:102:2a7::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.22; Wed, 8 Feb 2023 14:37:31 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178%7]) with mapi id 15.20.6064.036; Wed, 8 Feb 2023 14:37:31 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1f2608dd-a7be-11ed-933c-83870f6b2ba8 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DrS+vnlzccE9IWsvsXtED7UZwF7WWkjI5pRMEQXWyKxx1gHcnbsCQOtV2OHnricjn8gPJKDHqILaaPDW5QW2MoUXbHWpmBP4dbm2UGejKxxMbPDnQdBfibEaYaVcOS9uMojyb2yG/RNQMvNs+u1Oepy3yYalYi8JB1RkYS1sdlfJOLIHHm9mMlCcP/63NFwWHvzLfg8y27pab8nS0FOHMbowjJcbnGqvlhEUXQiWSBaVvQzEBImL1toXQ8MgE/UO5Btd49gjOr5ND6Y62POj8mN/Ah15fe44RNmvqJg3XEgOIoAAqtEf9ezHcff72F4feqGSPawHfuHgKWAtMl4Ygg== 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=9OFFDeWa7q1c8WhKPz1ZFmBqxkr1kVm4Ujr2h18c0yg=; b=b1ADAVqAiEVqKArrvPwGoM0wtrdsi/LqpGViZxC0sox5A8B8vVbMb1tE3bRzCJGW+g8vY3lo4Rr5EEVS8AEtQfVduDEWMfX/nII4d6xXVnegI0AdkhpnPW9f97MOhYsLAzkv2EpokDIyab2ia24vaIkSMTk1DBYYlekGgRgWcoJ7kfCHZi6D8g8PLwYLM05ab3aTXzJCx1HYXZXMxqvCkmBi0laAKDoxA6E7qyrDFvjzxpRB+De5JjqOgMjfRu1iit9zDCxCM+Tzs6ZR+aohi26XaiUqk6+b9dhqZRc4WjGKJddbKw33oHBgQarV65fHgX3j9H6jMCgfX0BcyOFluA== 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=9OFFDeWa7q1c8WhKPz1ZFmBqxkr1kVm4Ujr2h18c0yg=; b=iZkyHsFQYtKxTQYYWsIS7pvq2sBKeIryr9u55glMvGbT5tPPQQ2RsbxpIkF4ELTkEeGP7gQWzePkFrX/VC8/7n5BcmXhCR+OrpqwevkJqmBYn+00tUxzYJdFmXjjD2BNrZpMfS4CtxKnpgnN+CR3CspN6dJxDOF7aioCp0HJrbCjH3uCgmaj9X9Dn5qEiCxTqvnCPboIHfbW/5Jm0Fc9mMoXlviIzGeQcyceV//uy1pjksni/UNTezjq9Ov0HsWbAIdwEe6qzzhCgRs0cu/aHcjlz5HcPV12QrYnYCe6S32ird2q0AbT0WT0dyddMXWBC+ND810uRnu9Va7LgucTvw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <55114c08-6407-db9c-a25c-06fa7bbfd4e8@suse.com> Date: Wed, 8 Feb 2023 15:37:08 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: [PATCH v3 1/4] 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: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0105.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::6) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PA4PR04MB9343:EE_ X-MS-Office365-Filtering-Correlation-Id: a9050c5a-b306-4410-92c0-08db09e1f6e6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: shjkBeSBCdIULCxKfU1Km7pTB2b7uFYVwdbUu3Gln0LhyDGNB1+nQpELTiiHc0YeJJnvoczil663ew1qHtHrZ59jyBloFM5LqFCzvqzCFrgOgUhZPa7ecmt75M7sVw8gjam5GTI2topyJAiLBxI/rYCBIeogtvCtOHBHdXI+iVrO/3RPSImYXoSqtueBIXXM8wx9Qc+xdiCSg3EYhaq/wvxOQgED09wHZyGkVZAXwEL5OjcQfBh1m+98X9Gg45NxoNqgplHy5x3B1oYXNEHOO3vID+uYYqtKEUYqvLhL8C5lsXDD9A+siZIi1N5tbEVS3Br5+ry2gURxDg2WJjX/HKKt+WLtybElgpCtysjnA8JrXG3MRgxei/GGf1zhGCb3E7p5khjE2hToj+kYGhL7Na9ZCi+8gxNDfAnj477ru5mlo+8LAqwRewA3OcK1ZJyVYlg6FvMhmR0nrDjb0PLCmAmcH0vRjbpKQ0vrmH4gEuKn+UkfkLr96wML4vTZr11ljHBRg1qmr/rgT/lgV5TIDvveKwffg5GiC0yc+67I28b0dFTPUtL11JxFK61ky/5n4fZuUBl4nI4ssHeFdCMjzn3rys/WMDvypB6GEcNhUZWiMdtybhyA0DgZRyUDscfT94mvwR1derPyTzQq+wPPOxbEDZikVKYDGo8rAwpRwtVs/4FEO5KOptKnkU+13Ns4pXpDdH0ktfg9iEyyOnhyAwnEBe7h6XYzNG6zFww25Ro= 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:(13230025)(39860400002)(366004)(346002)(376002)(136003)(396003)(451199018)(31686004)(83380400001)(6486002)(36756003)(5660300002)(2906002)(26005)(186003)(31696002)(478600001)(6506007)(6512007)(6666004)(41300700001)(54906003)(86362001)(38100700002)(2616005)(316002)(66946007)(4326008)(6916009)(66556008)(8676002)(8936002)(66476007)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?by9MUk5yYzZFalB5U3pra2hybjFuWldIY3NURFY5MkNJOW5sRmxnQ3JyS2lZ?= =?utf-8?B?TGhySjNsZDRhNTFucjRPWXlZRmIyRDlBc05GakpvOHQ3NmVrQ2lMZng5WmlJ?= =?utf-8?B?V0I4SEk3dzhHS1FvMGpYZVBhOUtDc0JoOXVUSTVkMXZPS3NibEorTDBlQUVO?= =?utf-8?B?QU1kSzRnLy9nWkRvMTkwV09XSWNROXBHbC9HeHowSlE2VURLdC9xUHAzeUJ4?= =?utf-8?B?WHFKQzNrUFZQbnlVQ29FS3JtdWJWWHFvWmhUbjZSalhucnU1eFR2ZDVCa1lr?= =?utf-8?B?NGJ5KytVb1M3RWlaa2p6MEw2MnZqT2hTSVg2NG5NNmtvMDlhbzJXK0xZL2pm?= =?utf-8?B?endvZENzQmtPdlhTeWVBNllwRzlJOEZQWHZnUDdPaExwc3ZCemZEdmNKbWY4?= =?utf-8?B?bENpUXQ2dGJQOVdjWFYzaWFhaDZvalBkWjFWVU55OTdiRy9iVndjMmc2a0tC?= =?utf-8?B?elkvZUo4c3Z4WUFsLzQyeWhTbXM2QzlGc3htWW54K1JRcDdiK2tXOGdYVUdI?= =?utf-8?B?amRwRXFka21RWWhsVHhNeVR0L2pXVk5lWnRoRmZQNndUOU1RTXg1Y0VGd3lj?= =?utf-8?B?VGVDZ0hrdkh4b0YvemJpVE1iQ1gzOWJUMGNvTksrdmRTdVo2OW53YmhUNGtt?= =?utf-8?B?OGF1OE5kK2VRZHMyckZUU1FQMFZ4MUtsazFHR1BEQmpXcElFLzhubUxGTGJB?= =?utf-8?B?TFUzaitSQWF3REIzN2RIak9rSUhoUSsvMFd4YUZXVWN1Z3Z5TkxxUytrci9q?= =?utf-8?B?QmFPMldqck9KZWVoSnAzT1BGRkM4TkZObXpKQVFUZ2Nqc3FnTXFPVS83RW1y?= =?utf-8?B?K0NnWis0T3BXZzFRakhmdnVRYmtMUjh4c0p4alEwdUdTaXZ4L3ZUa2tnYkQ1?= =?utf-8?B?aWFpWEZKQ3Rzc1FZWDFCUXJNVTR2bFlQU2UvbHFjU2pia0tmSTFpSmpOY3RO?= =?utf-8?B?VkIrdnNwaksvblRRT2F5ZjhralgwN0VXNVBiVUxxbjZKazhGU3Z5ZXFnREMy?= =?utf-8?B?Wmttem1uNTZ2S3VXaTZKbXpRbmkvRDVFZ2krYTIxbGl3QU9Id2lNb3FHeUtK?= =?utf-8?B?eDZDVWIwajg5bUZjSHZ6Tm9DWDJ0YVg3eFlhamNJcldERWI0RHNkVW5hYnZR?= =?utf-8?B?c2pIc09hNjlOUDlBZVBqQms5SVR0YlFVRU5SL0dNeGYxSzlYM0ptNzN0Mjkv?= =?utf-8?B?LzZPaEFCc1VXekhvS1BCRnZNcHFXYjhqYU9oaHZtdi9SdFg4ZE1iaUROYU1u?= =?utf-8?B?S3VDdC9uK094QlhwZklrcExRRkNxUXI0bGFaeDBIOVU4ajFYa2NMTEw1eWgw?= =?utf-8?B?Q3Z0cE11ZVFlZmREN2JtczltNFUyT3ZFRTZGYXJsNXdza3ZBNXJMbDhQMTJ1?= =?utf-8?B?aDIva1kzdWJ0MUQvOXBtZVB4Tm9lMStqS2tRaThlZUl3V3VzMnJjVllDMU5U?= =?utf-8?B?M3hiYlZiVW92ZzVxYlFZdUtRNnk1cTVaTFNnYnlTTjdxeEs1WG11NU1JUG9W?= =?utf-8?B?bkl6dXh4K21SeG1ZZWhIam8vZHN0d1ZkNmpuQmZaTmxHWjRNMlBMNmZlNDlJ?= =?utf-8?B?UW80dDd3Y2dRZGkzY1FjSHp5Q3FueERUb0xva2NSR2NvRUNYV0Q0dENiR05L?= =?utf-8?B?OVNqRnRaVWdPSjlSSUpZT1J6Q0ZobFJmZHF3Z2tHUnF2L3kvZ00vSnltMmlT?= =?utf-8?B?bzQvTmRUaGdOZnkvY0NJa1E5Zkcwb2RHMVV6K1RXdUo0cVFORHpxT3IydndS?= =?utf-8?B?Rm5YbVhLWVY0K3Y5Z1VGVjVNdHFrTFhUN2xTZmpsNlYxUkUzRk80NDYrYi9S?= =?utf-8?B?ZDU1bGZaVVNjTWVaRDAwcXhISjgrWVJKZ3luL3NkZmNDbVh5UWRBR1hkMFhI?= =?utf-8?B?VDB0ak9HUmRiOUlZYzFqTk5CZlVDRHAxZWREMkR1d1FvUzc1dmc0aENTcEhT?= =?utf-8?B?bEpCc2pGM1lESGdTRGxVc21KVzMxaUl4bmtXVTduT0J3a2ZOVERTaUhzWnJq?= =?utf-8?B?VGJpUnFpdkYrN0tuQUc2dWs4TTFScEpwYVVMelIyekViZnlpVlV4U3RTR0hV?= =?utf-8?B?c0R2Snk5KzNoUHBZb3BnWml6Zzh5WXBoTmRkQU9hMEdXUUxJVjRMR1pCd0Jw?= =?utf-8?Q?dbA63uEnTuOhMOJdZ7Q/9Ok/+?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: a9050c5a-b306-4410-92c0-08db09e1f6e6 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Feb 2023 14:37:11.8904 (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: izx8F0g51C9a/q4kyhVLL3i31CPqGxejAfvMefCe4XRtcgh9fQ0a7ISF9yFi6t7/CgDJ7OFk0dXxQTZ223qmng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9343 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1675867078921100001 Content-Type: text/plain; charset="utf-8" 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() and sh_next_page()). Furthermore sh_terminate_list() is a safe guard only anyway, which isn't in use in the common case (it actually does something only for BIGMEM configurations). Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- v3: Clear sp->up uniformly for all L3/64 shadows. --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -2371,29 +2371,6 @@ static void sh_detach_old_tables(struct =20 /*************************************************************************= */ =20 -/* 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 =3D 0; - return 0; -} - -void sh_reset_l3_up_pointers(struct vcpu *v) -{ - static const hash_vcpu_callback_t callbacks[SH_type_unused] =3D { - [SH_type_l3_64_shadow] =3D 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 =3D v->domain; --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -971,7 +971,6 @@ sh_make_shadow(struct vcpu *v, mfn_t gmf sh_unpin(d, page_to_mfn(sp)); } d->arch.paging.shadow.opt_flags &=3D ~SHOPT_LINUX_L3_TOPLEVEL; - sh_reset_l3_up_pointers(v); } } #endif --- a/xen/arch/x86/mm/shadow/private.h +++ b/xen/arch/x86/mm/shadow/private.h @@ -505,11 +505,6 @@ void shadow_blow_tables(struct domain *d */ int sh_remove_all_mappings(struct domain *d, mfn_t gmfn, gfn_t gfn); =20 -/* 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... */ @@ -729,7 +724,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; =20 ASSERT(mfn_valid(smfn)); sp =3D mfn_to_page(smfn); @@ -741,20 +736,29 @@ static inline void sh_unpin(struct domai return; sp->u.sh.pinned =3D 0; =20 - /* Cut the sub-list out of the list of pinned shadows, - * stitching it back into a list fragment of its own. */ + sz =3D 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 =3D &d->arch.paging.shadow.pinned_shadows; INIT_PAGE_LIST_HEAD(&tmp_list); - for ( i =3D 0; i < shadow_size(head_type); i++ ) + for ( i =3D 0; i < sz; i++ ) { ASSERT(sp->u.sh.type =3D=3D head_type); ASSERT(!i || !sp->u.sh.head); next =3D 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 =3D=3D SH_type_l3_64_shadow ) + sp->up =3D 0; sp =3D next; } - sh_terminate_list(&tmp_list); + + if ( sz > 1 ) + sh_terminate_list(&tmp_list); =20 sh_put_ref(d, smfn, 0); } From nobody Fri May 3 13:58:41 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1675867084; cv=pass; d=zohomail.com; s=zohoarc; b=cfuSHYsf8G9kzT040c++tPmoKU6fEYHQ8tfwQI4IlHaQHFpEkw8tKM2sTKxEJcRHy8Mt+8G8S/CuY4O8CdeMH4XfbXLxvLa2PjaOBfHBXegd+QqmOJ4FxsAbNGNXxzom6m+jbtErmnti9TQ7oe/kUmPfFaKZuqRlKT8JsCbsEbY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675867084; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0EWXtpH9i4csdupIvMLjkJkLdXonRZOQV6uj0BrMrb4=; b=lk2+IazO5cv4wXKsovmej21iXDtdetEEklC/r2pqu0ty65fB+QyeY8EXJb+SMTmw4Y3ha0C2f5qPuRUYza46A32VE4bz+ScO4UJiTjdgG4pF+FpRMNO05Qm6YHTELDHsDy3OSq1nhYEYPX5KO+XWvQIB/2jqUAx8ho8EJTFDhRs= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 167586708412716.461579355395884; Wed, 8 Feb 2023 06:38:04 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.491839.761169 (Exim 4.92) (envelope-from ) id 1pPlZx-0006KX-T0; Wed, 08 Feb 2023 14:37:45 +0000 Received: by outflank-mailman (output) from mailman id 491839.761169; Wed, 08 Feb 2023 14:37:45 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pPlZx-0006KO-QE; Wed, 08 Feb 2023 14:37:45 +0000 Received: by outflank-mailman (input) for mailman id 491839; Wed, 08 Feb 2023 14:37:44 +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 1pPlZw-0006Jc-6G for xen-devel@lists.xenproject.org; Wed, 08 Feb 2023 14:37:44 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20613.outbound.protection.outlook.com [2a01:111:f400:7e1b::613]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 24b06bb7-a7be-11ed-93b5-47a8fe42b414; Wed, 08 Feb 2023 15:37:42 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB9343.eurprd04.prod.outlook.com (2603:10a6:102:2a7::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.22; Wed, 8 Feb 2023 14:37:41 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178%7]) with mapi id 15.20.6064.036; Wed, 8 Feb 2023 14:37:40 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 24b06bb7-a7be-11ed-93b5-47a8fe42b414 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LbtCQ3Fj/naIk3mxntRfiOU2vyS+Lrro7KvreNTYOjgyzhIJPzlKhvfsRHVPwL/yYZCiTtvpyecp4OV1jZE9a6/DVkcsd7Mt4g8oBbayq5wPlxBeitLuQoXkm1G20Ma5H/ktFok5k1Shcd7U8dbZNN0zCEn4K7bTlZnaEzXTmwbrvQh2JuGF/M4xgJvCmkRAiJrOHfZAQDi6H1R7YZ5x7qET9DljqUIKq2wuOn4XJej37QsKvw0JWJ8QdJFJ8yLpq8rvBRl0IMB9knZiAj5TOsXCWzaGKgkoQZVxqz3LSmNeCQ9wTeJWq7maVr8e6P3pAKfmWNC0nDrQBpSwVgcLQw== 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=0EWXtpH9i4csdupIvMLjkJkLdXonRZOQV6uj0BrMrb4=; b=Xf2PPYj8eLALD3yFgK1POvzyG91HO0VMWx/LTkMDovigZVagv+seUfcanaYYrVbshPz1EP4mAu2JsmnroMmKoBY60axMfycNtmW/tqeVZj+AeDwMSZfaL7xIepppJPfsFbtofveCLk99iRPhldccky23Z5G3bYmqGifYuLaQs1gyaTPTyq1SLchU/31XWEbYvpVBFGOWgx+DLZ3mV5fGfgw0vqfIz2m85iQUrqt2jl9gQWVII3pnSt1SmbXhQoxccYE24HXa1KZlBM8Ffe0MGGHgF7QHmwMM0awXZ5saOYWI/XiU9V0tf09XsC2f4G5YMM2JgNS8LRGCIQY7Bsfc5Q== 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=0EWXtpH9i4csdupIvMLjkJkLdXonRZOQV6uj0BrMrb4=; b=Qh1qHPV6wUp7LMfiGM3gQnJkKOnv0lVT95ZPlGeB49SFKvguHIE39ZasZUFu1wb/twDrnkHPEZFpK9nX2PVVhqd0vyJ37zHUTQ8nCYJkocZmJKEFw9sXbTfCRbt/gASSuuxCqXdT2bT7g+fVEWvGietZQhygGOG9pjROYAaOye8M3bBp8x6o5QK9TGp2Alo2qzua2lSnSnWqGtHg5OQVjBrhXKSJZjidizczDkCz7RLfN/xAheBW1h/zdWmmgM1QV6CPWXAML9YkKCVXfz9mJC8JJUTC2RQ8KGkbzRmDJQj5g/y33GVvw62nWnyw8BP/jmqpJ0V6jGaj9ocqzmydcw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <2f9d6428-9cc6-ddff-a65f-25b7ef7556b7@suse.com> Date: Wed, 8 Feb 2023 15:37:39 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: [PATCH v3 2/4] 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: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0093.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::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_|PA4PR04MB9343:EE_ X-MS-Office365-Filtering-Correlation-Id: bfed1094-557c-41a1-f566-08db09e2082c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oyus828w65Ulom6Fw9Ld1C96VHblAak5+1JTsFg4zy76P9K2uwBw8VokHmE9F9A2T7Fy6GE9J9YOV1YTYEuF0OpCnsxxeLKTQMcLMQkqroPwMjSy4ahcqg663Vd2+35coR4kMQTRuFHBPEW3j6kMSYusi5RVrT6KjxXWxTQz4Q5mXRHCWHif7Kt8tSaYIPZtqL9MvQu41wDMXZ4sQJxMVj/uYfcd3OvId7gMYWYYWGXGFi/YffVFGC6RZvMrzPHSD2XmNYQfZSLcR5DcMhzm3aRL6v5PoHQDlmXLCMiVcMqGqk5+7gjKKE14SBGBLKmtTf5Y0K/u+2oBILydtxxX1BfXAU61xJnojP9KKGAyDTH+CcIyMlETTgvl25mzEchTTvPcBcZSWarXX02MhPtnUsVLIGo2F0Mw2SQsHkTL7gRVWVkTCcOYNYgO7VHEioADV+VYYryMmaCz0t/XJ4ekRbZnNd/ONhBq+n+gmFHMp5D6fBqnjMhpNgCoi/z2xVYkqd5aimuEdtzs/2EZXIiRE0uKinuzuZxB3VsUjb+9CvZcthHobUftFMvu8EwYwqztrzoIXp/jbNfqHZ3JCp1VdKOsHSwAaOKo6JW/+yiNp8ajhUbvlf9xhFP0jQ03DDEyoP+G9Nnpqxypw+K/oyKuPbxIWKRrBMpumuEy7Eg3YayopQ9mQBeLIadlIPLElaWyskSI7Kz9YOePNtkh+PSFw5zjvaQw+GXK4iOFoov3arCSM3pucBZvsqR8wQP3RNoO0NnSlocV2h1hJITjU+ndSrVbPlNyUa6o9mB9F/rM6nIz952g41ATZ6o76StHXuLL 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:(13230025)(39860400002)(366004)(346002)(376002)(136003)(396003)(451199018)(31686004)(83380400001)(6486002)(36756003)(5660300002)(2906002)(26005)(186003)(31696002)(478600001)(6506007)(6512007)(41300700001)(54906003)(86362001)(38100700002)(2616005)(316002)(66946007)(4326008)(6916009)(66556008)(8676002)(8936002)(66476007)(43740500002)(45980500001)(414714003)(473944003)(357404004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cDN0ZCtRM1JUdzZBczZmRGwvOFRrSXVpM0xTNm9oSitZbGczNDFzMDBnYmow?= =?utf-8?B?VHJxaHg5MllaRnJSY3NqMjEvZFlBMGlvQy9QdWtYelE5WE5mTjdhOFhZZ2ow?= =?utf-8?B?YTIzNVJ0MllWWnlBVytJUnhDSkt0WkRwQ3NiTm9oOGhQVjQxLzZCV1BESHU3?= =?utf-8?B?Z1lKS2dLeDJBUWtPS1gwMUdPNlROOEJycHVLaTNRenFqR2FSRlZ3ZEw0NmxT?= =?utf-8?B?ei9hcHQxcG9JdnpTdno2MGthNGZPdUVPb254Q1ArWFRKV1hOaEpzb3VvNHV1?= =?utf-8?B?NzR5T0JQZko1a1VJejc4bU55Wm4vN3M5aHN2VHEvSGJWeWsrMnBZTDNVRkU2?= =?utf-8?B?NGQ2bXV4TnRuYUVXS010RmhmNWNWclU2WnEzZ2lpcUI4VW9UNVNZRStsMDJ5?= =?utf-8?B?RytMUG9PYWdTOTZkSU9HdGtVNXFPcmJzeVBMR3MzSFh3UVNNWDRBRFAvR25i?= =?utf-8?B?dzRaVUhIT0I0ZUZScDFrV0I3cVRlc295ejlVbGxLOFpiREJRNTgzR3h2cWx5?= =?utf-8?B?UkhQY1VhTmJ5VGdJQS93dk5nUUNQN0U0QWdhR0xMbFM1Nm9DdEhMbXZjbDBM?= =?utf-8?B?c210TGxrQk5IYkt1Tm1GeDBoWVdZY1BXQ241MHk5b1Vlb0VtbW9Lblc4UUEr?= =?utf-8?B?YW9QQThWakxtYXBlYVJxQ3RiQVlrQW5sTDNDL1BpYUQvV3RqbUFzUFlkOHlM?= =?utf-8?B?ZzROOTNxOXQwWUJhYnVGdzFUa3hwR3Z0eUJrZ1kyWnJOTmgxb1VOd01OQi9Q?= =?utf-8?B?SDkrM0pObllDRFFMZGJRUXBwZWxiNEpxOE5xdWJKSzVyZkpsZzd1OXZKM1Jt?= =?utf-8?B?TjZFa00xV3FOTUowTXRTVnQzRjhsRmttODJUNlNNd1RBT0l3Znh6Y1RNeTJK?= =?utf-8?B?WEtLNEpFZDE5b3NmbmJqTy8wbVJPUFpjSVV3MURHMnZwRk44SHJYcExiQ2Mx?= =?utf-8?B?aXdoN1g2alU3QXBtK0UrZGVBVDdISENvc1dUQm9QUWp5NjFqK2ptRUVhcmR4?= =?utf-8?B?UTUzSDhiTFA3Nml0Ny9uMmx0UktXc2VvQmVWUEVYNDJxMDBoRk5ETThKQjVj?= =?utf-8?B?QW16MWJPQzlJdVJIU3EraEt5eE9JbmRhU2VhRjMzQzYxQ3VNRm4yZng1Mzhq?= =?utf-8?B?c1lRektBU245cHFDelRrRng0K01adVJtcWxOL3lhbWRicnZCdGhGc2ZaN0tp?= =?utf-8?B?Qk1WdHZJUkUzY1I1dDFGNWp4YXlXQnd5Q1dlZWlNTEEyeWVHNGhpOHV3bWc0?= =?utf-8?B?VWppNVFuN2QxQWNTTEhuMkRlVmFqLzl0NmkydVNKM0JaMHNVcngrQUwraEV6?= =?utf-8?B?R3JlNG1wZjA5L1J3cmVWN0xld2FzeThtT1U0N2pLZVFDNDl4aWpEUldPU2lI?= =?utf-8?B?d05nYTArZlJac1R6cHlES3dYMUllRkFyeFdtTmFIQTM1cDlIVlBjVGlBa3E0?= =?utf-8?B?OHhKY25NRXpXZUpuMWdNdEdrTlFtT05qT0FuZ29OTWphQ1NHaGVvVi9nWERm?= =?utf-8?B?VWxadTM2WVFsb1dUOXVJZ1hIdE50WTVib3lGbGRnaGZXZTFQb2JmYW1Uc1dh?= =?utf-8?B?RDhzN2E5Zlo3aStrWmRMVmZ3Zjc3dXRKZWM1R2dnR0djdENKWmVoTFo2WUlV?= =?utf-8?B?VWhXazk2bktTWks0Sk1rNm8wWUJDZWE1U2F2QUlOamw3aWR4NUpVdFJ2TGpN?= =?utf-8?B?d2FjRFR6RHZiVEZBR2lYRlRJbDh0ZGUxUFBqS1phWDhFNnJTKzZ6UlFLMzk0?= =?utf-8?B?QmdWMVVCcHdOTGFZb05GQ1c3ajZuQlh4a0JZaFdWS01vUCtGTGs1dGFBU3JN?= =?utf-8?B?VDkwbU15bFpxbTQyWG1PZXhMTW9MRm5MQ2Z6dm9yWm0wN3hKRlJ0OU0venlL?= =?utf-8?B?SVJMejI5bGRLb0lyWFg0RDgrM2ZEd2hHU3dKUC80eXc2dmpucE1BTDB3VE9P?= =?utf-8?B?Q0xSMkg1VDZZYmxCcEFQQldOYkk4VDEzSmluVCtodlNvTW4rYUZGZE1TUHlw?= =?utf-8?B?TUtmZnRHUDhuRzFIN0xBNXRFaUJRY3k4MEM5TlYzYzdwVFhsTFl6V0ZHb01p?= =?utf-8?B?b0dGWVYrbTJwdjh6c0F3aUlKVTBubGVSOHhLVzREMW5qTit6VXp1UzBlOXZX?= =?utf-8?Q?f7D/ovlylvtKegyOvcfqGjclr?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfed1094-557c-41a1-f566-08db09e2082c X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Feb 2023 14:37:40.8573 (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: qi7RMSmI8R0LN+SMJZj8MT/lBkghHjLLSZZ64ktBxK6ip/pNc93t6utOAoOSl0wEFKB629GV7oW3zCSV8/HY3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9343 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1675867085071100001 Content-Type: text/plain; charset="utf-8" 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 Acked-by: Andrew Cooper --- v3: Re-base. --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1680,59 +1680,11 @@ bool shadow_hash_delete(struct domain *d return true; } =20 -typedef int (*hash_vcpu_callback_t)(struct vcpu *v, mfn_t smfn, mfn_t othe= r_mfn); typedef int (*hash_domain_callback_t)(struct domain *d, mfn_t smfn, mfn_t = other_mfn); =20 #define HASH_CALLBACKS_CHECK(mask) \ BUILD_BUG_ON((mask) > (1U << ARRAY_SIZE(callbacks)) - 1) =20 -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 =3D 0; - struct domain *d =3D 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 =3D=3D 0); - d->arch.paging.shadow.hash_walking =3D 1; - - for ( i =3D 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 =3D d->arch.paging.shadow.hash_table[i]; x; x =3D next_sha= dow(x) ) - { - if ( callback_mask & (1 << x->u.sh.type) ) - { - ASSERT(x->u.sh.type <=3D SH_type_max_shadow); - ASSERT(callbacks[x->u.sh.type] !=3D NULL); - done =3D callbacks[x->u.sh.type](v, page_to_mfn(x), - callback_mfn); - if ( done ) break; - } - } - if ( done ) break; - } - d->arch.paging.shadow.hash_walking =3D 0; -} - static void hash_domain_foreach(struct domain *d, unsigned int callback_mask, const hash_domain_callback_t callbacks[], @@ -3280,7 +3232,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] =3D { + static const hash_domain_callback_t callbacks[SH_type_unused] =3D { #if SHADOW_AUDIT & (SHADOW_AUDIT_ENTRIES | SHADOW_AUDIT_ENTRIES_FULL) # ifdef CONFIG_HVM [SH_type_l1_32_shadow] =3D SHADOW_INTERNAL_NAME(sh_audit_l1_table,= 2), @@ -3329,7 +3281,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); } =20 #ifdef CONFIG_PV --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -333,32 +333,32 @@ static void sh_audit_gw(struct vcpu *v, if ( mfn_valid(gw->l4mfn) && mfn_valid((smfn =3D 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 =3D 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 =3D 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 >=3D 4 && defined(CONFIG_PV32) if ( mfn_valid((smfn =3D 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 =3D 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 =3D 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 */ } =20 @@ -3920,9 +3920,8 @@ static const char *sh_audit_flags(const return NULL; } =20 -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 =3D v->domain; guest_l1e_t *gl1e, *gp; shadow_l1e_t *sl1e; mfn_t mfn, gmfn, gl1mfn; @@ -3989,7 +3988,7 @@ int cf_check sh_audit_l1_table(struct vc return done; } =20 -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; @@ -4015,9 +4014,8 @@ int cf_check sh_audit_fl1_table(struct v return 0; } =20 -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 =3D v->domain; guest_l2e_t *gl2e, *gp; shadow_l2e_t *sl2e; mfn_t mfn, gmfn, gl2mfn; @@ -4067,9 +4065,8 @@ int cf_check sh_audit_l2_table(struct vc } =20 #if GUEST_PAGING_LEVELS >=3D 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 =3D v->domain; guest_l3e_t *gl3e, *gp; shadow_l3e_t *sl3e; mfn_t mfn, gmfn, gl3mfn; @@ -4117,9 +4114,8 @@ int cf_check sh_audit_l3_table(struct vc return 0; } =20 -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 =3D 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 =20 extern const struct paging_mode From nobody Fri May 3 13:58:41 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1675867106; cv=pass; d=zohomail.com; s=zohoarc; b=PATR4e+ksEVX2DL9baHh+MPvOYWdoFBxJM8AyQSlRcqPUV4RqMGJMQkarTYP7WxzqQIxLHYMRYk8a9FuqivMsvlon3mq4AHwwp54yPRl/5tNcVPeKdkPK+ik6F2O+D0qPJdkRou0krGX/OYx9ew1mIuaLhC0rkUC2ON/mGMyObE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675867106; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Z4ux/6tWNQBcW4wZFr0MDeGUcIrrS8cZY8coYVotxL8=; b=C904pe+HZvvXu/31okAbXvMYdBMt+d0312bOcD+5QtMEYttKgihRdzeBE2rfa2VDUqFneTOueQmQ60/SVwwXLISabJLeGFuiqeEugGdLRDsU8m4x+dampTuDbl1b7HJPl9Mc0L8RMJpAnZuOn/mCFw5WY9mZX8qUA4KyDPRzSjI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1675867106182305.8004818080243; Wed, 8 Feb 2023 06:38:26 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.491847.761181 (Exim 4.92) (envelope-from ) id 1pPlaG-0006w1-70; Wed, 08 Feb 2023 14:38:04 +0000 Received: by outflank-mailman (output) from mailman id 491847.761181; Wed, 08 Feb 2023 14:38:04 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pPlaG-0006vs-3D; Wed, 08 Feb 2023 14:38:04 +0000 Received: by outflank-mailman (input) for mailman id 491847; Wed, 08 Feb 2023 14:38:03 +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 1pPlaF-0006Jc-9R for xen-devel@lists.xenproject.org; Wed, 08 Feb 2023 14:38:03 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20600.outbound.protection.outlook.com [2a01:111:f400:7e1b::600]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 302e92b4-a7be-11ed-93b5-47a8fe42b414; Wed, 08 Feb 2023 15:38:01 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB9343.eurprd04.prod.outlook.com (2603:10a6:102:2a7::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.22; Wed, 8 Feb 2023 14:37:59 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178%7]) with mapi id 15.20.6064.036; Wed, 8 Feb 2023 14:37:59 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 302e92b4-a7be-11ed-93b5-47a8fe42b414 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gxytKhLHogxVaSy3rKMjoRZ0tuZ3VcYuYGU8TL1+BcV73hlkqzuvN4VwLWOJ6w33yl7sC9AyPe6+ybCXsK56rSfH6h124wk1mtb5UJlPfa4/tqaLKboobi/HS0qrlRkFnoZXGeKJFsgDdyS82i6ueQw0fyktE7CftDs8Ut/b3X6i7ef0sWha/IfoUnCNWAEcLvjffdgQNcOlJC3RXEcwL6hnDwfL0JmJxqfgf1uBBbNNW/xpQ3BUaJHl8C0g+Q1ooWo5AfEnVzNzVPDPhIUvhOodJI+gujk0gRSFqh9kJAfgzece7jAYLsrlz3CHRGSaGqpUNQmLYg8r2fio9ppmgw== 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=Z4ux/6tWNQBcW4wZFr0MDeGUcIrrS8cZY8coYVotxL8=; b=lahJGM0c92A3RJ5cL722RF5FWN9y5saT+j7OK1LG706wD0KJXHjUHpiE009k1Q0fWrUmmAQ44quGjt9WAdnY1FlJeCHorzqIIBxeCf5PkmfTpXqeCOXK3gBAaZLY6nG94kbFr4JATJ15feL7NjpqYkrlKh7M6xjEPw+UbGK1pfiv9eNGCAg7bgOOiIxKU6LTnlb/m8KPihjPWoJxWHxEygFjF0Z4mMxLqnF52L9NYetb24T3eaCPM0BjV0V+5ifw0k5NLzEVmoL6+hDMnWGVH/q6u/2b4/9zCq5665xFs/sTLFcaJd+FZXv4uyXmRLMzwVvljClA/6OnyKVaySbmtg== 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=Z4ux/6tWNQBcW4wZFr0MDeGUcIrrS8cZY8coYVotxL8=; b=po9kfWLv26qWv9anAv+kougLog3B3orii9DwzrVE0G9vlMwF0EVh2LHHBLxYw7rtucxq02Qe3bYRrYqczKUozlZfFzC7WD6uXUSJF4u9kyjJJ/gaBGYrrzo6egh6wNzJH/3LJwLo4dpvsL0DvSdRMly7f/zFqkIH3k5835cT7EbdhhiyxMcObf3f2RAL9EsuJ7DSax62uVAhp+p39TIqRE4rN9HAQUkg0gjYbpwQbWmpud5J74lt3UEuO+ndVqUV86r6+R80j7Bg7ILNColX10asArZlzNeoknUzkm7shoMrSvzgbn5ztiM95mNOaUM/4o9j1TL9tbB2FH2rFX0eAw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Wed, 8 Feb 2023 15:37:58 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: [PATCH v3 3/4] 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: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0013.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::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_|PA4PR04MB9343:EE_ X-MS-Office365-Filtering-Correlation-Id: dbe2301b-5c59-42b9-cce7-08db09e21359 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WpmEtlNKVRqR0IDDeaRC3+KhsB3O89G4fgdPGJ9ShZ1RToQY7jI1qIb0avMWi7B/bAK8mYc80WO7WvzM6aaXYS9RvuQmUAXqSBfoSkBOWvDFQHgCsXwhcvPozVDJCw01sT/QFbP43iWE3sSK8SW6e8521d6mN+zRITMatLVmfgT+bHZu94MEysRgOsW59dv6J+mJ7pzE4CrCXUIHTh6/kRPadUkPD1RfSGtY2yCPVMtfcwz+iLnsadLOtlX01Hx8kf05942nxr6HIZH87jTPRUAGWaMHxl7m3YqdHTCzb8tmWJBsySipHNvWhmvKdLNyVcDL6FTmcTw85cEFQ08KnHoKUq+g44YFv9Flk1cyCWbrg6NhOoEoDGwLY4b+gCaLCA0RnbV/oxJIW5z6YIJKvlVQpl+s31b+ZybMc/HxCmZyGe/tr5d5FWyR0ICtkOJqDzwcPqhL7zzcQXp0K5fk0LRU3i8lv3o/43gzkOw4AH85Qe06ed/fD+YRUqqSW+9ERlZ4vOpadoZiWkzAVAXZ0KPAsKGARkFm1+8s9X0F2/O5bQ0yl6oQOJxOYcuVeSuKRPv9Gfe1EpKBJAMLWfVffDvgegqIY4hwG5l6zsndBmAbcME95uFb6Y5iLqbWBCsENh4nFBfYPoC1Jg9dtHWPF3CCQnpckZcrqFUzkAwmB83zVdEfqNWWjDXynqqWxKulo8hi1Vx31KB9uyKwIVlQPAZTemU4bocbuvLR1jSEqAY= 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:(13230025)(39860400002)(366004)(346002)(376002)(136003)(396003)(451199018)(31686004)(83380400001)(6486002)(36756003)(5660300002)(2906002)(26005)(186003)(31696002)(478600001)(6506007)(6512007)(41300700001)(54906003)(86362001)(38100700002)(2616005)(316002)(66946007)(4326008)(6916009)(66556008)(8676002)(8936002)(66476007)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?My93aksxZWpQT0htUmZCOHFuaVRHa2MwQnVTMkdPcXhZdUFpNldObXhDU29F?= =?utf-8?B?QkROTGtEYTJMZ0R6N2xDcnZHbExTRnlwNVZjVUZHeGFyaVVPbyswMUc0Wk5V?= =?utf-8?B?UDBkamZVSjJQMEgvajFoQnpsSjZxdmsrODdvRlJRWi94YUNZaFllbTB1bUMr?= =?utf-8?B?K2hkOGxvcEdoRXBlS2lkZlhTeCtNOTV3amdQQS9pMjlQVkJYekI2Z1hkc2hD?= =?utf-8?B?VGlBQVdoanUwVGdtSS9GeWlmdGJodlRtWXp3Ty9NZEh4L1QxNHo2SzNETUhW?= =?utf-8?B?b21iSkkzSncwMFdzdGJ2NUVZQ2p1Z3VuRDJrU2dITlNLUVdKZ1R0VFZVWGxp?= =?utf-8?B?RVhzbjZ2a1dzU0UxeTNIbFdiUVUxbHA3aktOeGdOSGhZZnl3REdMaWV5b3pC?= =?utf-8?B?dUZ1MEl0ZkVMK0tHQXViOE9URlhZcC9lQ3Bxdlh1aWR1T3R0WWN0RkNyMms0?= =?utf-8?B?TTQ2a2twZjlMbVhDQ3B5RU5rNGxGbjl2MFFtZUxuQWF3NFVTcTN0UHZzNE9W?= =?utf-8?B?bi92UDNqS1h3QmFRSzR1NW04ZjVXVkRWQUxXUEo2dEFuRWdKTTdEbWtRQlpu?= =?utf-8?B?aXRJZXlpT2hvdTUzU0U3K2srUVZSM2VZNU11MkFkRGl2cnlTVmx4R29IakJ4?= =?utf-8?B?Q3c3SjU0VmdBQVdxVFV3Q3hZUTlQd0JqMXRDeEVJTlJ2cUloREEzZUdGVEY4?= =?utf-8?B?M1B5ZVJpZDN2cW1yeGt3WVVpOFpBWndPUCtheFUxUVhhOEpYTVd4d2RtaFVV?= =?utf-8?B?RloyN1BXQXg2S3VzTDhoWVVkb3VOcUFGK1FndjlMM1pkSmFxdXFqem1OQ1Ny?= =?utf-8?B?L1dkZzJsVWdmYzZ0Z2lvR3FGRk85dG5WbFBtWjVTbndiNEZKcFd6T0JUSk1H?= =?utf-8?B?ZmUzWnZURGxOZ09PMW8zU3BERW9lR0I5UUN5a2RWOU9NLzMrMkp2WER5RHkz?= =?utf-8?B?SlBjVHI0UlRBcThIWUpDcHpRRVcrd0tHRmVHM3dMOE1FK1QxZm9GTUcra0VR?= =?utf-8?B?bjdzM0VINDNZYVhUK0xSRm5aamxJL0ZINWUvaXo2TGlOUEJ2SGFsMUNLc0Zw?= =?utf-8?B?dWVzNXMvcVdSOS8rQjh6NjZFOVdxZ2swRHJnMTl1NThCeXZjNlBzTEg2NWxD?= =?utf-8?B?U0RzSnBRUzBHOVRmQVBwRnpQQjVuc3R3WHpMS0VJdkpUZUpmTVg0eWRJeUFu?= =?utf-8?B?UTBYRXpueTVTTG51Ulg3cFBLVElSQ1NNWnNHWS9RUE90U1RwZytkMzI4Rk1r?= =?utf-8?B?QUsxOFoxaFVSQnNNSitwMmRVby9sZkwvVDJleWljYm9rQnVNRGdKdUhpenUy?= =?utf-8?B?ZkYzRnNzQVIyV2NMWDdrVmpUdm9zdUNNNDFSMkt1Sy9GNWM2dlRvQU0zaUNo?= =?utf-8?B?WDlrOEhpTW9xRFBsRng5cWRZSWpVWnhRV0M0NFZtNkZxMlM5VEJwcUFaRzVR?= =?utf-8?B?ZDZuWGJBY1ZqRHNTNjk0WnNvamJrQWtpYXZ1VVUyOGtWZStsTnc0ZE5DZTQ4?= =?utf-8?B?MFpoSVNkc3FSWkdzc28rWFR3TFg0YnJwVDlvaTBUSnZKUWIyZ2JXd2ovODhx?= =?utf-8?B?YUZzSytySWV2SUwwTEtMc29XQk9VNUc1a3BycmtZOU1YUmdnZlR1d0w3d0VY?= =?utf-8?B?OGFKQkhpQmxKMmhkWFpDN1p5ZytpMDFBd204aGxoQnhTaVVwV3p4ZGZ5YlRY?= =?utf-8?B?NmN2RXZUT044eS9SVHQzaVBVbWljMXNkbktnbHBqTW0wMGZXbWpsZ0ZaOEg0?= =?utf-8?B?NGVTTzhGTHp1NGpoZG04Z09NbEYrMHJsejZoUURQR1gvRUJLVm5iT0ZEbHB0?= =?utf-8?B?U3dNYmxEZjRzK2RZam5pSnNZOGFINGh6c1BRc04yUUIweFBXTHVnYk9TeW13?= =?utf-8?B?ZlZuTHNCMStRek9WTjhROHZueHE5M3RlS0o3b3VuYzhneXIxYVhkdk9ZdDBJ?= =?utf-8?B?NmRibWNzQ1VDRXdIWUdlaDVHeGVnOFhWTTlOMUNmOGNsa0ZDV1h6TWxRYkt6?= =?utf-8?B?U0ptVkYvRkFqZG1keS8reXdVSjZxQ2haQW5YTG00WWd0TDlYcTJzanRydUUx?= =?utf-8?B?NXMwTkpOQ0xNTldqdC9ZMGhkcXJRNTI3V29uNG9waElYd3MwZ3dQeHErMi9h?= =?utf-8?Q?Dj+UxdSBtFpMoayvRQGqtVQQX?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: dbe2301b-5c59-42b9-cce7-08db09e21359 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Feb 2023 14:37:59.6061 (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: SeEM17TOsMTIMM0ousfCsmt1LLExf16Kotwef5emK+xXBuhQ2D6X51rfWX6OxnJnNTFDHuPycXqjgNcMMpsPkA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9343 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1675867106938100001 Content-Type: text/plain; charset="utf-8" The "domain" in there has become meaningless; drop it. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1680,15 +1680,15 @@ bool shadow_hash_delete(struct domain *d return true; } =20 -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_m= fn); =20 #define HASH_CALLBACKS_CHECK(mask) \ BUILD_BUG_ON((mask) > (1U << ARRAY_SIZE(callbacks)) - 1) =20 -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 @@ -1826,7 +1826,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] =3D { + static const hash_callback_t callbacks[SH_type_unused] =3D { #ifdef CONFIG_HVM [SH_type_l1_32_shadow] =3D SHADOW_INTERNAL_NAME(sh_rm_write_access= _from_l1, 2), [SH_type_fl1_32_shadow] =3D SHADOW_INTERNAL_NAME(sh_rm_write_acces= s_from_l1, 2), @@ -2011,7 +2011,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); =20 /* If that didn't catch the mapping, then there's some non-pagetable * mapping -- ioreq page, grant mapping, &c. */ @@ -2039,7 +2039,7 @@ int sh_remove_all_mappings(struct domain struct page_info *page =3D mfn_to_page(gmfn); =20 /* Dispatch table for getting per-type functions */ - static const hash_domain_callback_t callbacks[SH_type_unused] =3D { + static const hash_callback_t callbacks[SH_type_unused] =3D { [SH_type_l1_32_shadow] =3D SHADOW_INTERNAL_NAME(sh_rm_mappings_fro= m_l1, 2), [SH_type_fl1_32_shadow] =3D SHADOW_INTERNAL_NAME(sh_rm_mappings_fr= om_l1, 2), [SH_type_l1_pae_shadow] =3D SHADOW_INTERNAL_NAME(sh_rm_mappings_fr= om_l1, 3), @@ -2063,7 +2063,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); =20 /* If that didn't catch the mapping, something is very wrong */ if ( !sh_check_page_has_no_refs(page) ) @@ -2172,7 +2172,7 @@ void sh_remove_shadows(struct domain *d, =20 /* 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] =3D { + static const hash_callback_t callbacks[SH_type_unused] =3D { #ifdef CONFIG_HVM [SH_type_l2_32_shadow] =3D SHADOW_INTERNAL_NAME(sh_remove_l1_shado= w, 2), [SH_type_l2_pae_shadow] =3D SHADOW_INTERNAL_NAME(sh_remove_l1_shad= ow, 3), @@ -2221,9 +2221,9 @@ void sh_remove_shadows(struct domain *d, =20 /* * Lower-level shadows need to be excised from upper-level shadows. Th= is - * call to hash_domain_foreach() looks dangerous but is in fact OK: ea= ch - * 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 d= oes + * remove it, so we never walk the hash after doing a deletion. */ #define DO_UNSHADOW(_type) do { \ t =3D (_type); \ @@ -2247,7 +2247,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) =20 @@ -3232,7 +3232,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] =3D { + static const hash_callback_t callbacks[SH_type_unused] =3D { #if SHADOW_AUDIT & (SHADOW_AUDIT_ENTRIES | SHADOW_AUDIT_ENTRIES_FULL) # ifdef CONFIG_HVM [SH_type_l1_32_shadow] =3D SHADOW_INTERNAL_NAME(sh_audit_l1_table,= 2), @@ -3281,7 +3281,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); } =20 #ifdef CONFIG_PV From nobody Fri May 3 13:58:41 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1675867542; cv=pass; d=zohomail.com; s=zohoarc; b=cbBU6N0Gprd015rhPsFuvX98IJTpHHnprMfgOvX8HqVk8ykVb0AF+4c5npOZR6fz/9P8+7ejsXHF/Kh5nRICt/wdGsiiaLbie2KxW9QAGXDhUJlfgTnZZ2Nubt/COD6jyrW0wcjR0X/hoP+21yvQBYX15l+dz571EVutu4EQhag= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1675867542; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XKJmP6oShTkiMe9LQzsbVOzIHfIJVktiMOexocp7MYs=; b=jRP8Oft0mdDwFEt+lxSxwnx5MFnOesWh49ASNpzWrM9ZvPNgC0lH9ih2JJUM2oApqkx22lyVTXzlX+ZW8AXLSr1DM/JL92L8VBlMQGy26xZUNIRrhjaYYMdw/xJu4JGGAD7Mg2mZ9PS2Ssoq/5bnFYmMAhQlMAWFJoKDfBmXYRs= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1675867542907846.1401353842473; Wed, 8 Feb 2023 06:45:42 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.491868.761202 (Exim 4.92) (envelope-from ) id 1pPlhC-00011Q-CL; Wed, 08 Feb 2023 14:45:14 +0000 Received: by outflank-mailman (output) from mailman id 491868.761202; Wed, 08 Feb 2023 14:45: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 1pPlhC-00011J-9P; Wed, 08 Feb 2023 14:45:14 +0000 Received: by outflank-mailman (input) for mailman id 491868; Wed, 08 Feb 2023 14:45: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 1pPlac-0005uV-Hw for xen-devel@lists.xenproject.org; Wed, 08 Feb 2023 14:38:26 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0631.outbound.protection.outlook.com [2a01:111:f400:fe1f::631]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 3e991945-a7be-11ed-933c-83870f6b2ba8; Wed, 08 Feb 2023 15:38:25 +0100 (CET) Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by VE1PR04MB7456.eurprd04.prod.outlook.com (2603:10a6:800:1ac::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.17; Wed, 8 Feb 2023 14:38:22 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178%7]) with mapi id 15.20.6064.036; Wed, 8 Feb 2023 14:38:22 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 3e991945-a7be-11ed-933c-83870f6b2ba8 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A2DhN7QHe7zq7Zsg7u1Bi+z6xTHyas2R9c86qcKo2D5oJFooHYLIvwzMjOO4EtT7h5uD9fvabhnm1fMOw4ZyTRG5FxzU5JbZWrwTwZ0kibQUy8gcSq62CUS9wI07ppulPjy2aqgRimUd6k1l0uu+SNTsCavRwXAVlzNN6tVJtwsjD6J3wMOeeh6uE9qpi6vqMua6d0Jq8ol+XXycZ79e/ntj1nM4amnNS14KStL8fPAfAIGgT9Rlb2euAmMtn7svDO88SQW07cC4yWRSoii+ED25UbPcTzJTRX/h0PHuzmOWdXiI5H2vROzTZXbJH0phqZCXFKM97djYFLYBTFTFew== 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=XKJmP6oShTkiMe9LQzsbVOzIHfIJVktiMOexocp7MYs=; b=fy2S+gTW/THUSoE7KvVg/sG/JYzC2AGNiW676RhDe4x39cFzCJXXhzGefBK7A+12rWY1OzhLSr+Lw7t5mCR0PkF4TihiePUSiEKC3DfAyNgz4hi15GRDz7VPg1/vEEoaZo2xG01BPu45me3o6ymoGynWaxN3hVhA3krDkvhwIY9jpYrjeaWO/hx7l9udNE72zT9D2Qe8fjf454nyBUWUmJ84YyxTlSmOLngCddVeZ8L7nRG86wax6IDUDoOcNYQrYyj4lva8mmUelZS3suzvgM4Haj23n6n8CLrGjsFEOcep7kzzdOLR7izohloP0IMecCL0yqgOrJM6wGq4KH6Y2w== 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=XKJmP6oShTkiMe9LQzsbVOzIHfIJVktiMOexocp7MYs=; b=EWolOIufNmtQWstOjAkal5lY6bl5mOzqequ5Bmm29NL+UXHInuhMuHh4fMj8HJz+FhLptwNNTj5NLQOTS6suNDEsqrDx3TvEAgXwX4i9qPoZ+A1IyE5wwE9IMugII7Ed3w+JY0Ao/5ltA9fOyWFP0CnoVogfdSob9SxJdvlvPyV19aHz6YihtHj65FeZr+EwRsr758UoIieEjf1gMYYWIEaIfbplERWPNmQikYcutEwt53zGqWRiPniztLMHfHSup8yHCkqbqi5/GO0defzIgO1hkI8uI+jnsVhFBXmDw81KFRXNhdO9iJ5mo1XTOw2xfyaBJeHPlZ4beq9MitOrvw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <7d2dd28a-a821-e906-6245-ab26e5518706@suse.com> Date: Wed, 8 Feb 2023 15:38:19 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: [PATCH v3 4/4] x86/shadow: re-work 4-level SHADOW_FOREACH_L2E() 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: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::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_|VE1PR04MB7456:EE_ X-MS-Office365-Filtering-Correlation-Id: 071df123-240e-4793-6b2a-08db09e220df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fwBNcL90U63MLLRc4y8L2x+95daJtqeuWtw/o4hnROkjouBOStc9Y96ehp6cofPc0BvKrhtBpJa9h9Htl6F4fMQvIt0xdjlQLdSOq3Dc4ODfsIu2yjyZQrfNuF66y76HtdWqaHNThuqbf6aZz5Bo8sljj4jQCV9oKwXWtH0OkuIsqKTZMY6LNztKdgrHwPbo/ezK/tJMPBwn4W8dmil4iUEWTISGfAFbErxB+AHA38rEeEWgNxFd8QCo3w/lI9llFAUV3yCDkuy9jSquXymmNGj6sOvsWH0ge/PzIIPJXQ5O3ekq/E0EhRhvD/9jUqqwfxiNXbwU4xTqUskHyXnbDkNXWAViXWB/PLVlwF1DfGMzYfXyOK1c7GS4eJh5AwneEO8dMujdEbnQZnGzKFv0Xmne85ZoTswBiBxbniF/IBXBOw5CoEJCj45gGouDx84SVCGC5ThgHN3jzOLsO4aEXWFzvZBT9s4NEWAb85lUqZxAM4l5YjX6BUx+mig1gt/zDebBUoVm0ABR/pGDcbEQgWXB/teEEwdkuXmFiXy8hIqHzJdyxwTNwL/Db2OjnM5z0vdY0qJpdDFoCFsXB739vH0Xo1rhTAv5oHxHIOc2hOshINKhmkAPRSaExnrz+MlTrAmDzx/y8We+gvEN37UUFjrJMr2iZ24y1z0+u/jm0RkGiwaWZOjtTjwczb910cLG3uykrAxAdgsPZE7FNuEk9zSDsmVZreNfvffFWocISFc= 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:(13230025)(39850400004)(346002)(136003)(376002)(396003)(366004)(451199018)(6506007)(86362001)(5660300002)(26005)(6512007)(31686004)(186003)(66556008)(8936002)(6666004)(2906002)(66946007)(6916009)(66476007)(4326008)(8676002)(38100700002)(41300700001)(316002)(2616005)(31696002)(478600001)(6486002)(54906003)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WFU3dkdPMUhMd3dHS1FDYjNFdDRUSThjZEdRWUk0Uk5FVDhjdG9iWWQxaDdV?= =?utf-8?B?ZEpMd1AzZTdsUXF1NHdQTkY0WkFWcVlUUnBzUVFjK0ljUHY4bG1lWUZ2dWlC?= =?utf-8?B?Nms4dnFRQmtDYWpJRmhNSDNVc2VzQkpPRFBjVjJILzdCcGZmVVJFaWlYV2ZY?= =?utf-8?B?QjN6cmNtNWNneFYrcVVmaUovdmFHYUIyT3lrVmQvUW02aDJuOVNlemV0RlJJ?= =?utf-8?B?amZCdko0V1hrSkZFaGpyam1WcVBuUjNyMEQ4bmtzM3hSQ240TWw3UmZZSVJ2?= =?utf-8?B?RW0rMllIK3AzN2c1aHNSekx5UlpzN29uN0hhN0ZwaEFVd0JzNTRDdE0zQVNZ?= =?utf-8?B?bEk5YXg4eFhpYU1Nd3pWWjBhNzVSUU93dG5jSkdqd3ZtSUtBZlpxb0FDVjFW?= =?utf-8?B?Q1V6VmpZc2t1NEUzdDlLTk54czRIcEVFY29HQ1krc3MxUzNReTg2TnhCdHNa?= =?utf-8?B?U0RWMU95a2w4U05EUWRWNUVJblVVdDNwNk1vSXFOVVhnT0ZoNE5ka0JubDN2?= =?utf-8?B?N3JRTndObUU0cXJHNUVQRkNtVTBWOXcrNDBjdWcyVlFoVDFyeTlNclN0SW0v?= =?utf-8?B?QlVHZVhvR1ROK0p6UWRMOXlmMFo1VURQT2xLcWszc1VzVkljZWJLdlJoZDZE?= =?utf-8?B?elBsS2VoTEhUamxXMFh6QUV4SE5tSjNOazhzZmhkMFVtUXZEcm8yWFk1cUVN?= =?utf-8?B?U1JmTURHZk8xRFhLWitxbnlNN0pCaWk4b1hPUGFuL1ljRnR0S21vWm95VERC?= =?utf-8?B?dGVvOUxuc1hlWSsyNnUwQ1YySVhXd1JrZ21oUFZhcTJwYlMzalZDSU5CMjVG?= =?utf-8?B?MTJ6M1g5OS9sbnllMERLdGYwTk9USVVqVHlpQ3NpejYvRjJGVHVJTzBHV3p1?= =?utf-8?B?d2lnT3ArVmNRMmtvMFpQZGcvdHhxTDZrYXI4MllxVzdwSjF5MTBtWm1iMFNO?= =?utf-8?B?elBqS1JDbFFBaXBGZnI2M0ZaM1NuSWcxMXJqVVQvUEZjd0hJQ2x6UUJRRTJj?= =?utf-8?B?Q2FLU1RIT0lKcG9MMG1mVzNNYkhDUnZTYlNJS3VXalRrUFVTZHpIZE5hYkFh?= =?utf-8?B?MDRWdVNGL1hWYUNONTBYUStkNzRMblA2NlZscnc1Q0FlS2ptTXc4TGdwSGRZ?= =?utf-8?B?MStZNE1SaDd6L3Bhek1EWDBVTFovUml0eVRTN01OSjZCVjlTcnNJUUx4Y3VL?= =?utf-8?B?NTNQWEdGQWN0K1NxWlBha3ZqVUw4dklia3VQRE9QRnc2aE00NGhQbEUzNzRW?= =?utf-8?B?VXJYN3hTRnoyMGdLV1IxNDd6QWNTRXFyVXJvRWR1UHhXNHZESm5UenZiZmZZ?= =?utf-8?B?ZkRMZkNlSElBcE5XbE5LSzh2aWgvOGRmRVBucWtWNjBmTys4dkFRMnZvZlJM?= =?utf-8?B?KzcwNXJDZkpiTGFjZktvUnh3c0tya28rekNQRkUvSjZ5bE5wNWVMRFppSC9y?= =?utf-8?B?WTVwSVYxdnJlYzIwdGIxOXE2aXdXTjNadlR4dmlmWEdoaVd2TDl6NnRobk5S?= =?utf-8?B?KytIanlTTkFlNm9aYStjdVo4MmwzVlhFT2xqT05HcWNpbnRYOXNpVnJ1YW1S?= =?utf-8?B?WFo1K09oMDdtd3VJWFpvVE1yRlp2L1BFWks3Y1gzSzd3bmZaT2tMVUVIOEMw?= =?utf-8?B?NHZ5Q2hRVWZsWEdLY1ZYMUVIYnJGa0NlYW0rRXU1M05TajJIMFF5Z1lYc2tm?= =?utf-8?B?Mi95MEtVZ3kvbXZmNEJ5cjdIN0RneWVjb0lxVmkyRGQxTDRZSWhkOGE5NFhx?= =?utf-8?B?S2dkQ2JTZ3pqRVZlZTlXa3VJT3BDQ1hqL0QxWThTQ0dWVUNjTzJUemh0QjNU?= =?utf-8?B?S1dNSFdjR2RrL0hSdnZvQ1VlZDJKdkVMVlRHUE5rQlQyS1ltbENreUFhVG5I?= =?utf-8?B?RXU0SDJBa1krTnorUkU2OE80elUwQXZydGY4QS9NblJJbml3VGYyNlNiMDlP?= =?utf-8?B?aTFVZ1BvNnpoVmRIV09pOUN5S1pPRVMvdVJidWpYazNHWW93ekZoSG9hZUdq?= =?utf-8?B?djNzTndyOGJhZnFTRm9Ydk84K3prVUhlRVNBUTJ6T1dId2NTLzViTG1mYm95?= =?utf-8?B?RWFqY2JTeStGTERCdVFkWGgrUVk5MjB1UFlUSG5YK2RISHg0YlZLSi8xMnlC?= =?utf-8?Q?TukDCTyClzRyt2rv8cCYKw62m?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 071df123-240e-4793-6b2a-08db09e220df X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Feb 2023 14:38:22.3078 (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: 5Zc58En/NsA12WA3fRrPtf+x/g2lfS7FHp8d0dCg/zUpemhuq8kzu8LKINKEu8Q33rUuTXFVGrPQwv2zrOHKNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7456 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1675867544160100001 Content-Type: text/plain; charset="utf-8" First of all move the almost loop-invariant condition out of the loop; transform it into an altered loop boundary, noting that the updating of _gl2p is relevant only at one use site, and then also only inside the _code blob it provides. Then drop the shadow_mode_external() part of the condition as being redundant with the is_pv_32bit_domain() check. Further, since the new local variable wants to be "unsigned int", convert the loop induction variable accordingly. Finally also adjust formatting as most code needs touching anyway. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- v3: Drop shadow_mode_external(). Switch back from using trailing underscores. Convert style to be fully conformant. v2: New. --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -861,23 +861,22 @@ do { /* 64-bit l2: touch all entries except for PAE compat guests. */ #define SHADOW_FOREACH_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code) = \ do { = \ - int _i; = \ - int _xen =3D !shadow_mode_external(_dom); = \ + unsigned int _i, _end =3D SHADOW_L2_PAGETABLE_ENTRIES; = \ shadow_l2e_t *_sp =3D map_domain_page((_sl2mfn)); = \ ASSERT_VALID_L2(mfn_to_page(_sl2mfn)->u.sh.type); = \ - for ( _i =3D 0; _i < SHADOW_L2_PAGETABLE_ENTRIES; _i++ ) = \ + if ( is_pv_32bit_domain(_dom) /* implies !shadow_mode_external(_dom) *= / && \ + mfn_to_page(_sl2mfn)->u.sh.type !=3D SH_type_l2_64_shadow ) = \ + _end =3D COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(_dom); = \ + for ( _i =3D 0; _i < _end; ++_i ) = \ { = \ - if ( (!(_xen)) = \ - || !is_pv_32bit_domain(_dom) = \ - || mfn_to_page(_sl2mfn)->u.sh.type =3D=3D SH_type_l2_64_shado= w \ - || (_i < COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(_dom)) ) = \ + (_sl2e) =3D _sp + _i; = \ + if ( shadow_l2e_get_flags(*(_sl2e)) & _PAGE_PRESENT ) = \ { = \ - (_sl2e) =3D _sp + _i; = \ - if ( shadow_l2e_get_flags(*(_sl2e)) & _PAGE_PRESENT ) = \ - {_code} = \ - if ( _done ) break; = \ - increment_ptr_to_guest_entry(_gl2p); = \ + _code; = \ } = \ + if ( _done ) = \ + break; = \ + increment_ptr_to_guest_entry(_gl2p); = \ } = \ unmap_domain_page(_sp); = \ } while (0)