From nobody Sun May 5 23:15:52 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=1638354940; cv=pass; d=zohomail.com; s=zohoarc; b=mMKDerDTx+eZdnZgIf+Lsw07IcDSG4eSYGFbAXz8PTgljCnkr/dohLXvpO1R2Ci0geDwtUmzsiBvako7NzcD7OkntL9D5b6hEqzoGAi1t1MPyijYxi78lqzUReuK82JV+ZzkT8AqHrMYFrRtWQXsNfBJXuIXm8hHdq+AhxiniHc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638354940; 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=zWiZkdcG1+Y6rmdkCu8SSuxZST9U/BC4xB8A111L5Vc=; b=M6UvutKSMoIoO6FsmZ5ZLfgV15luOsP5frk0MpYMwJvcaReGWnNjQ881bBTSzjlftRD+id0H5GESC9/xh5iIJW5JDgYBu0rtTzt7S/zFuxOImRN26w+JOm/h1yPvBXxGetqSXYUHO0X0sQDpkFrresUUtBNa8HxeicMayqBUEFs= 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 163835494009048.88342029672674; Wed, 1 Dec 2021 02:35:40 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.235823.409041 (Exim 4.92) (envelope-from ) id 1msMxP-00051C-0T; Wed, 01 Dec 2021 10:35:23 +0000 Received: by outflank-mailman (output) from mailman id 235823.409041; Wed, 01 Dec 2021 10:35:22 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1msMxO-000515-TJ; Wed, 01 Dec 2021 10:35:22 +0000 Received: by outflank-mailman (input) for mailman id 235823; Wed, 01 Dec 2021 10:35:21 +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 1msMxN-0004wm-Ao for xen-devel@lists.xenproject.org; Wed, 01 Dec 2021 10:35:21 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 61fa0950-5292-11ec-976b-d102b41d0961; Wed, 01 Dec 2021 11:35:20 +0100 (CET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2059.outbound.protection.outlook.com [104.47.12.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-38-z4X1OmauPkigwr8uNN8wvg-1; Wed, 01 Dec 2021 11:35:19 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB6175.eurprd04.prod.outlook.com (2603:10a6:803:fb::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Wed, 1 Dec 2021 10:35:17 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Wed, 1 Dec 2021 10:35:17 +0000 Received: from [10.156.60.236] (37.24.206.209) by AS8PR04CA0198.eurprd04.prod.outlook.com (2603:10a6:20b:2f3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend Transport; Wed, 1 Dec 2021 10:35:16 +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: 61fa0950-5292-11ec-976b-d102b41d0961 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1638354920; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zWiZkdcG1+Y6rmdkCu8SSuxZST9U/BC4xB8A111L5Vc=; b=OyCbWRicmrv5T1IiZEpqLHOQT5SMER/GYRsrzLq6Kxc0qTX1aXtoS+4k7Ow95U6WlJj3Pw xArLYBVLcYo48p67yBK1HR3a2vRm5kX1UQbRQRLItA4c8o/sk7V61oqnOWz/QzLyGJ9F3d bkurU/yfVoec3Vb2KlB05kVC70epoFc= X-MC-Unique: z4X1OmauPkigwr8uNN8wvg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aWZejNfdecTejKrdOEXvfRj58P9ULZiuBi/nqZMBPnh4owj8UK9juPdcca5crKQbb0OlmCPex7aQZA8MJnNEd+g6GmjVBGcAl8DZhobj4EUxmTSsWkoKQBJysA/VCMIJLzn120wwnst85WhNtljBTS+EQDJxMjfLPUMp5J7vC91XJ/Niu42MwNQLDToYzLoVfzPM/8TOwtVVSH1Y2OPsdU6UBZQMG5XEoZu1x1BLHzeaSRuI9kGFVT8YrtMtjF8mgQx90B8FsPDzXZej/zNvqtPHXRAYIb3R8TRubexQSLGsq9+2EBDNUby5GII8QX+xs3dMpzAyTpfQho6gipER2Q== 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=zWiZkdcG1+Y6rmdkCu8SSuxZST9U/BC4xB8A111L5Vc=; b=fkvmoIiV3DBA58hC7d5JhsHTdKbZHySRUoiTgo5jWI5IH02sTZd8CiEki0tYmPj2Zmy0qiOAIrr700viOPn+odqm5ewWnlJRk4ehvzz/BDhTNh/faPyZ5Inj694c4FkPGL9CGm5YC2m6SYCAoFBJt4mNod86VEkKRHjHCNuBQva51E2Lr2hmYybAYJ3JIqhlNoD5WTWIjZnRh4wXu13f2H9jrUN916UL6jbMOR/t5NBDNs+ZFXomtsIjQM1qwtjL8m2WagoxHHTKRgw6IvLy9WG0LJJtZKLWD1696nEL5yJO8/gK/uFLwEvXz7RaW+3+HE1Y0iU1s5pngGffMhcVpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <3bb2018b-8e28-6469-6b6c-c6de935bf669@suse.com> Date: Wed, 1 Dec 2021 11:35:15 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: [PATCH 1/2] x86/shadow: defer/avoid paging_mfn_is_dirty() invocation Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , George Dunlap , Tim Deegan References: <69b75eb5-82fe-e075-146a-28a9758da433@suse.com> In-Reply-To: <69b75eb5-82fe-e075-146a-28a9758da433@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS8PR04CA0198.eurprd04.prod.outlook.com (2603:10a6:20b:2f3::23) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 842f7db3-5124-4375-db99-08d9b4b643fc X-MS-TrafficTypeDiagnostic: VI1PR04MB6175: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DpGWalZMph4UvWpQvFg8dNImAFBgVi5vdTWJWbfgylxEPZ8Vcn7wAVXkUlFWxM2gkGIyB0NeL5hlYRLx8n4PLawETQmVZcbGSt4N0j+Ge2ZQxhKCfgNeuNuHfCQPQAMR8alaxV3MBZKuzlIW4ls9wFLXPI+RA9Eo812tGSgZ8dnt+VSx/yV5H6v34VDdyhOZDzkkk5JyVorVFs2hfC5b/rHGI6P51JbMrAiY/v2OTbVYLPJt0o8n3qSR4sIWjM3ZDxopx2In5l8ZozOs9hU0LugFDvSsKxj3sTLRfbJoajIR9O0FnFV/IhRCnr+gVNlPUfQMC7+OEcFOBcymT6c2HR+7MynVGxbEcGdYlpXcxB0ynoPUrxoNAljOK8HZLyIfqzFPeUiPYp9pKcI6UNDp5P3Hr8xudNstEfN5qbjmZn05ntjmUQsofwxiBgSXGizB2fh/tYnLJiho7TsYfU/GIM4qaHZcHhXDI4wQh23Fn7ZwFdLHAE5rnjdtPA76VOE8gV0VPIjPutokM3iOFW2Zgzz1x/hxIixaEIyZYRSqhd0B+dYSH+GdsR7tVr3Ue2Hz6bRCd2lmD9vSKb6m9SC9kO3rMjA5S1HHXmytO7Ip3aiDOpDLgBr0v5qkB3zE8Q6xz84mfshU8BX88zYSMWcDJiy2xwyXAssxUiK0DTQoQzUDdr4XIAlx3Tf1EpQDXhJkZhyeY5L4w9wBZxJhTY3Bb0Qw3JfPtuyPphFV4Kq3QN2kx57hUKiYvkS1Bbdpb3yudbt5itOIBmCJmj4DAy60PA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(186003)(6486002)(26005)(5660300002)(86362001)(2616005)(8676002)(956004)(54906003)(508600001)(36756003)(66556008)(6916009)(4326008)(31686004)(2906002)(16576012)(316002)(83380400001)(8936002)(31696002)(66946007)(66476007)(38100700002)(14143004)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SDZiNWE0U01hOVEwNlNNNENLTE9VeERQcHFUMG5Hc0FxMlVlRHMvWlA4STda?= =?utf-8?B?V2lwZXZEeWxhLzVpQ3pVdzVxNE5MaHJSbmJ2dkxZaFM2MHhXbk0rei9zcnV5?= =?utf-8?B?dkJ0b29wQy90Rk5tV0ZldURnYjFSQ3BTVmxqeUx0Qm5jMzczRkNMU0ljdGlW?= =?utf-8?B?L3V3TmF3WmRndVRodzRwK21JcTM3N3MzR0RhR1RwSmk4MTRuNThkZFptYUxY?= =?utf-8?B?c3FDaGFjeVVjY2owMFJTaHlWY04zZ1oxQ3RVTTZTcllxbjRKL0dRa2hmSStQ?= =?utf-8?B?QkRTa0xzcHFwWitGSUltc0x6MU1USUE0b0ZvVTBqc3kxdEFubmlrV0x5ODlj?= =?utf-8?B?dVJNM213MU5aRWk0RG05QmtyNnEwWHVuWHN6OURyKzZ0bE95NVROdWVtZUEy?= =?utf-8?B?cVU0emxMV1ZlaUNmd1c5dUlFOGF5QWhEVjVzd2ViOHFtQlRQbWJjTm9kM2Rw?= =?utf-8?B?NDVUUm9wMVlBY1N3MHBOeW4xZ0tYN05MYXFkaHQyemdjTmpvSExWdUZyUDhj?= =?utf-8?B?akdaQlQzSzJTYW0xU1U1WkxFMk9FM3p1S0tDZTd4RjcxNjRTb0M0MmYrSjI0?= =?utf-8?B?OWVtN2gyQ2VzcWtIajlwckpTcHhhUFVMZjlBZHI5WnJVelgwS3p2MER5VWZk?= =?utf-8?B?c1h3b1FlVnI5WnZqTVZwTG5IdkFDaGtZamdWNnd0ckU5QjNtLzlxRHgrTGl0?= =?utf-8?B?Rmk1M3hocDI2OWt3dk9mNmNkdGRBcFhSS2hCN0JyaGs5bHk5NW5ZRCt3TzY0?= =?utf-8?B?dXM3QU1XRm5QZWJNUDNIR1hZa0RZbkdlaWFZcTVrZFZRTlhXeXpDYWxuZ0dy?= =?utf-8?B?eklVNHluTEJNOUNPYnZNSHBFdjBYY3RRbXFzNjg2VVU0WUxSRFkzZGlCMUFC?= =?utf-8?B?Wkg5NGxPM1VkUzNqWGdJUUxzdysydmRkS2ZHTDhxZjRVeUk0R3JBelVKUjU0?= =?utf-8?B?a0lzNEhPVXNobFRHUmtsZFRkMTJBSkpjM1ZMeW5QU1h1aEdpbkwyMWJseGd4?= =?utf-8?B?ZCtMelc0TDM4WnQrb3RPdmRvNmlrVkV0dWwzTmgyQXZZUlJvVDQxU3p4ektK?= =?utf-8?B?Nnk4cnZZd3FZKzUzc21WK0ptTXRzcGRXaXJiRnltOW9ZVEN5c3Q3QjhWbjhs?= =?utf-8?B?aU11SWZ2U0FiTHBrcVNObTZSVWZ1N0xRNmdJOXVXRWk1UXRaSURmUkdteGxy?= =?utf-8?B?TUVWTUhDdnBVVjZjWlZteDdtbkNNalJ3QWF4elNqcStaS3kwYktnd3lyN0lx?= =?utf-8?B?SGVZdW5LZHJjc244Ukh2a3htKzd3b1hlbUl2VGJFTEQ5VE4wblBPZ3VhVHQw?= =?utf-8?B?YnFybUM4dlJTZExDVG1xTVV3TFVjQW9JWXBlRDV0VStoaWIzSkRnbnRtSUg1?= =?utf-8?B?UEJ3YjIwemdYODN2bmFnZks4Ykw3SUhoOGh5K0RkREpwdE5KOXVCWHY5SlJn?= =?utf-8?B?OFJJNGJMZEFoTktraE9QdE9XSWJuajlsV25QUUR5Z29NMWRSYVBBdnVzMTh3?= =?utf-8?B?d3I2NHd4RXMzRTBvb2Rwc0tncmdjWUQ5dk5lcGVFSE1wZ1N5c1BXdi9nOGZF?= =?utf-8?B?a205eitCUU41R2tZSGNyQld3amZBb0Z4R3RackVKc1lMOVcxQlNjRDdJVWNQ?= =?utf-8?B?UTd3c0pGU0U4WnBLdHBiYVNTWE51WGlMRzY1eTkrUkkvaHJzUnFKNmM2U2hq?= =?utf-8?B?Q1JVRFJiSlJ0VUlHT3J5OWdDMUIwQm9hNHhrMmh3aUMwTGhvbjNwTFgwbURp?= =?utf-8?B?bTFqdkJBb1FCNkJVRTNuSnN5bUgyanZiUWF1TTd4U05HcHZ5bnV5U2VlM1Ba?= =?utf-8?B?bmVKZXFCMnRVc3RpM3ZaNjc0N1UwU3BwcFh4YVVUOEV1bEx5enQzZGNnTDZV?= =?utf-8?B?a0NxOVNCV3BhS1BMOVhrbkVSbzluc0syd0dXcUIvdVJGUS9WT2VVMCtldWpF?= =?utf-8?B?TkhZLzRWWEFtbE5sSDRrWDNLZytKNHBrcml0WlVIcW9TZUV0VGp1d0ttOTYy?= =?utf-8?B?UE1IOUFoSURISm56aXEzcEFHdFhBRjBtbXFxWnppQUZSYTZXSndFQktyZVdw?= =?utf-8?B?ZWV0Z2E5allnN1pCdjJqRUVpRS9sSWNrVkZiNXZxUGdXaFpDWTVxOFhoSHFR?= =?utf-8?B?T0VzenU2SVQ0UHVSWkxhMHpZVlVhcXF3VS9UbTBkSERCNXhWS28wY2JwUDVv?= =?utf-8?Q?Hl3F7L4Qxj7b/SXDCcdXIAM=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 842f7db3-5124-4375-db99-08d9b4b643fc X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2021 10:35:16.8597 (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: Y3T1qsgzS3Oz6h7mxv4Xi6lQU/TEQmYtuG508I8eIRzstYdqS43c2Gx9kJ/h5s/oLfs1uEyzug9duXuBBToL3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6175 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1638354942301100001 Content-Type: text/plain; charset="utf-8" paging_mfn_is_dirty() is moderately expensive, so avoid its use unless its result might actually change anything. This means moving the surrounding if() down below all other checks that can result in clearing _PAGE_RW from sflags, in order to then check whether _PAGE_RW is actually still set there before calling the function. While moving the block of code, fold two if()s and make a few style adjustments. Signed-off-by: Jan Beulich Reviewed-by: Tim Deegan --- TBD: Perhaps the dirty-VRAM piece also wants moving down a little, such that all three "level =3D=3D 1" conditionals can be folded? --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -604,23 +604,6 @@ _sh_propagate(struct vcpu *v, && !(gflags & _PAGE_DIRTY)) ) sflags &=3D ~_PAGE_RW; =20 - // shadow_mode_log_dirty support - // - // Only allow the guest write access to a page a) on a demand fault, - // or b) if the page is already marked as dirty. - // - // (We handle log-dirty entirely inside the shadow code, without using= the - // p2m_ram_logdirty p2m type: only HAP uses that.) - if ( unlikely((level =3D=3D 1) && shadow_mode_log_dirty(d)) ) - { - if ( mfn_valid(target_mfn) ) { - if ( ft & FETCH_TYPE_WRITE ) - paging_mark_dirty(d, target_mfn); - else if ( !paging_mfn_is_dirty(d, target_mfn) ) - sflags &=3D ~_PAGE_RW; - } - } - #ifdef CONFIG_HVM if ( unlikely(level =3D=3D 1) && is_hvm_domain(d) ) { @@ -661,6 +644,25 @@ _sh_propagate(struct vcpu *v, ) ) sflags &=3D ~_PAGE_RW; =20 + /* + * shadow_mode_log_dirty support + * + * Only allow the guest write access to a page a) on a demand fault, + * or b) if the page is already marked as dirty. + * + * (We handle log-dirty entirely inside the shadow code, without using= the + * p2m_ram_logdirty p2m type: only HAP uses that.) + */ + if ( level =3D=3D 1 && unlikely(shadow_mode_log_dirty(d)) && + mfn_valid(target_mfn) ) + { + if ( ft & FETCH_TYPE_WRITE ) + paging_mark_dirty(d, target_mfn); + else if ( (sflags & _PAGE_RW) && + !paging_mfn_is_dirty(d, target_mfn) ) + sflags &=3D ~_PAGE_RW; + } + // PV guests in 64-bit mode use two different page tables for user vs // supervisor permissions, making the guest's _PAGE_USER bit irrelevan= t. // It is always shadowed as present... From nobody Sun May 5 23:15:52 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=1638354979; cv=pass; d=zohomail.com; s=zohoarc; b=LIQNyu76Kmb3Emh9/cy1D4NQDCAPyrpx7KE938TmS6+SaHgWwf2k1rAKkLylqfe1bQ2Z5XD7MjTVVYim06xhqLxb5c4RBbeAqmXI9CIE3Q/ICqV/tsG/ZZDXGu5NMolj4XWCbKHCY7Lc2YSiF/N0rHDGBkS8SuGkvfhXUVMeRgk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638354979; 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=lk+/9fya1n2KyjR1glsL0wj+Ac+2/Uh8SxxK2MJO7+4=; b=VB62HLqceVy17gEoZ+stNPwmfMm7aPcFFmooBfecAYWcnXtOsRh2GAcWLgf3yEe92D214488DKFY4k1/Vrt3+2tIEf4xg/Va50urHGGEVEYXeX7FbxNYIk7lmfEqpLd5MI8vlmOn+00YFulNDAQySqdvXg+8HJ35GppZmDaLj7E= 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 1638354979845588.4259705117161; Wed, 1 Dec 2021 02:36:19 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.235827.409052 (Exim 4.92) (envelope-from ) id 1msMxw-0005a6-Au; Wed, 01 Dec 2021 10:35:56 +0000 Received: by outflank-mailman (output) from mailman id 235827.409052; Wed, 01 Dec 2021 10:35:56 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1msMxw-0005Zz-6P; Wed, 01 Dec 2021 10:35:56 +0000 Received: by outflank-mailman (input) for mailman id 235827; Wed, 01 Dec 2021 10:35:54 +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 1msMxu-0005X7-Lt for xen-devel@lists.xenproject.org; Wed, 01 Dec 2021 10:35:54 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id e9a7d901-5290-11ec-b945-1df2895da90e; Wed, 01 Dec 2021 11:24:49 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2058.outbound.protection.outlook.com [104.47.8.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-5-mkJGIjbpMD-sFYYK3mHWcw-1; Wed, 01 Dec 2021 11:35:52 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB4381.eurprd04.prod.outlook.com (2603:10a6:803:6d::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Wed, 1 Dec 2021 10:35:51 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.024; Wed, 1 Dec 2021 10:35:51 +0000 Received: from [10.156.60.236] (37.24.206.209) by AS8PR04CA0070.eurprd04.prod.outlook.com (2603:10a6:20b:313::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22 via Frontend Transport; Wed, 1 Dec 2021 10:35:51 +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: e9a7d901-5290-11ec-b945-1df2895da90e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1638354953; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lk+/9fya1n2KyjR1glsL0wj+Ac+2/Uh8SxxK2MJO7+4=; b=TiN8ZcuMbhBOr6meY1a31W81qmCLESPFAAC1I//VeTJeOJS1ARgODXMhIplZQWnfIgIP/F kLDkVn2Yxp+CsETNL/UxWyzoby4WHK7U1RvYbD01WzcSuAxHycvSIrzIHCHpYIgf0mJGb1 CMBIDDRNCb4c+qQfZGMx/4jpx0YYWO4= X-MC-Unique: mkJGIjbpMD-sFYYK3mHWcw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bK5FQEU88RmTl0NQnZxRvlZAo6TZgOlskGJtXykRu9mYgbQ2NrqXcjaYS74vGC8wPfCI3HeeM5/XumbTTNmvKo3g6j7hhgrUL+sVJqgUwqd3lnirSnJvY2PozjLXZRasmIiseJkDB3GhiilwyNCTc97cnaOaf0yoMo/mUBqHnP8EzDRBdS02ahR3veidEtukna+u0ch4BsUTDqgJfzmKm3roeguuCfBRv3ptuiy0rCrehuWeG61TDDyl6Wb32WaQD9igMET0sPuuxSR8Fi32krqSuLkr1+XOR63MKRUMLeFT3CcF4f4OSe9u9+W7pdeih8orGq0OyeMCUgBtoBIaAw== 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=lk+/9fya1n2KyjR1glsL0wj+Ac+2/Uh8SxxK2MJO7+4=; b=Se8QePMsIA3QrRhyTw9mUk9hsm7/GHlCOaQCs4PU0wFZVmlMp0BPaPy/rT62M8QInOT1VwH768yylkJ3Y1vZRf2jJxcgeL+9T5gKTOOsoCSShdoCLr7ybUq56EzfOCHdwzMq1OC0a09AZutXz5QlA6bLM+1sNCpLk06HoMH6Wj9ygMk9rkFfJrv/1e3FsCht4xq1iWRcO6v9Hk+6nFCMrS2u9tPVgtdvr0Wr7uycyyKN/7rnhFnaJJGFKg+uXGlzwP98t57/6Petc8kvXsNpmUq9tJyEYRI6vVPnxO0HZLqiMi8Uv1yFMCzsib+sTajMUO2OF9bgY5AwRmpr1WgIAg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Wed, 1 Dec 2021 11:35:49 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: [PATCH 2/2] x86/paging: tidy paging_mfn_is_dirty() Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , George Dunlap References: <69b75eb5-82fe-e075-146a-28a9758da433@suse.com> In-Reply-To: <69b75eb5-82fe-e075-146a-28a9758da433@suse.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS8PR04CA0070.eurprd04.prod.outlook.com (2603:10a6:20b:313::15) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0bf2e2f1-9180-4260-7c21-08d9b4b658ce X-MS-TrafficTypeDiagnostic: VI1PR04MB4381: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1002; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1ToGUhcd5K0UZG3hOUr755e8QE0bIu8UkvWBrAbgxNTPECfTQKnEkXjB8AkUXc2JtE0nFMgqs7CASwixgKTPQ7bDzN69PiJe0b/Y+J6NPTaHwe4HGACq5lWmvy9wDB5YEujECpriJbJLWmWPjeFTlTELy61rmUZmy85jqR1TZ9nwq/N0QYvEWyz4DF+ahPHpFonzDkk/PkJLzyXcA6VksNlNd+y7JyEzXNUofPn1TYsspeYtFbpeAuWozzRKru04WFaHqXkpD1PYkdWSSnjUu8bDSsG8Tr5CvuVEaqXYuIMZbpaalPI4ztZRcoYDRFZRdNIb7KzHU9dwdEQdVbSbUta2xZhmHhqHNK2eTZ1nE46GstuBJdCiP55Jl8oJZJZXrDi1B9g+2P66NS95IazOijDeCVyhQ12mtGzx1NloQdqPeM4gBcfk5QwdIz1R79ZbOBsgb1JiSQ2wRa57c4GSzsRLMqZaGO7VbWmSn6wUHJFYrtGoC3WFjbih9KFyOLqyIHJ3n16WfTXG/TipN/1qnELZs7qf8gZaHrLeF1aK8GN6NhPE2oUmMkjl3+1fDQjsZC44zrQhp2BUadQt4/Nm6iM7IstFgvVJKVRUtTjre7IsmX4TUczluXn3MRf4lF9edb/i6IVdAQKCQ1JAdc69NRAu8R80XJVpY+gYG4XgJbVMXCUdqirJuNHaF8C440GNcwqw3/fG59d764N+q6kHnjg8QriDe2DAjeurvRadzCB7XeOOUAY1FgPtInHxWFBS X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(26005)(36756003)(66946007)(66476007)(66556008)(956004)(186003)(6486002)(508600001)(31686004)(8936002)(54906003)(86362001)(31696002)(316002)(16576012)(5660300002)(6916009)(83380400001)(2906002)(4326008)(38100700002)(2616005)(8676002)(14143004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MWk4c1lkLzBYbXRYSWQweTZuSUVzU2V4OW9jMVhtOFhWOHl5bmNPaDFZWGYr?= =?utf-8?B?SFVGOGFLSGFUd1BFSEZabExuR2ZDb05qSU53YjF1ZG5lMzJQZ3ZTWi9DYVVq?= =?utf-8?B?VUt1V3dYRUhKSVFtUXNXVjRXMnFXWUZnYytjTFhuRmErVU9tclVTK05YODFD?= =?utf-8?B?WXBIS1ozb3ZnRS9qL3BsN0c3ZXgyZ2Y3NDE1aFIzaU5EelZlTVd1cXFacFU2?= =?utf-8?B?Yzh6aG1IUkNLOCsyR1BiQVJzcVQzVTVUWjFRTmp4eEwyYmRTS3VzeE5uWFdL?= =?utf-8?B?czBJOG0yNWZNMUs2SGVMZ1RycXNMNVNzc0w1L1JVVDRma2lQQzZkZ2RlbktN?= =?utf-8?B?N1BmR1lMbUJ2MXhZTHpkcEx5OXZ0OWZ3NjBOcXd5YTNrdTZEU2Q5TEQ0cEw4?= =?utf-8?B?eDBpS3BqTnRaNENSVnNZSGtBVmhOUGlqbENJTDVkMTlidm1rdW0rSFRuK3RM?= =?utf-8?B?N2xRcG4xS05iQk5Ra3ZJYUUyVmg0ZXFQb0NFL2tXSmZVa1ZUNm9WYzJFcHoy?= =?utf-8?B?alE2bTJUM04vK1hpU0N2OGVYbDVDR2dlOU9wMEFxVUYwVlQwYUR0SExzUFor?= =?utf-8?B?dmxjbjNQdGpSa0F5VXJpZXEwTHhtc25OODRqOHU1RWdjL3lsM2FtZTNudC9M?= =?utf-8?B?V2QrY1ZhQzNVVXYvVFVCZUZQZGRwSkt6VVNnaGNndzZNSzhtbVAzTVQ4Zm8z?= =?utf-8?B?UGVmcVpYOUtEOHkzK0RHSCtrRC85WnhScFdGSGtvazRaS2NXSHhEakZQM0pJ?= =?utf-8?B?cG12QTJ3WHZVOTk4M3ErZWgxMFBnM3k5QnVjRjdXVXhMcTJZN3BoazVxeFQw?= =?utf-8?B?LzVGa1RJa3VVd1huU3hrT0VQYlMyTy80ajE1NGV0ZTJYbkdzTXp0M2FQaXRS?= =?utf-8?B?aHJQd0hDbXI0Q001UW9wVXdablNyWkNZT3B1OE5tQk9XWFZGYU84YlBYclkx?= =?utf-8?B?eDJJUlFBRkQ4eitMOWVXKzMwUk16Y0k4bGdRNG1GYlJ1MWdxVzV3U2ZYWC9S?= =?utf-8?B?U2pNQkVoQklMWktWZCtUVkoxRmN6NFgwdXBOVjluekFKdkNtWXBrczZtMUV0?= =?utf-8?B?NXpWOE5JOHJSTDNlL0UzMm5XY1ZaUDRURjhWREhPRjZSak9Qb1JPbHhXckVB?= =?utf-8?B?YzBOOEtNZ0VKTWlCODg2MHJLa1hGbEF5ZlFWb0JRV1Z0V2ZLa3JycUl5RVU1?= =?utf-8?B?bzYvOEp6dWVPT3VoYzBQMFFqWUlMSnI3MStlNmJRY2orUFcvbGdhMnplUG9E?= =?utf-8?B?YnRQenZZekN5RFZFVjlEOFhGVE44cis4OXV3Q2FVRkVJTm5OZEZsVTlmM3ZD?= =?utf-8?B?dXBXQWhQSnhLelhxWmNITE9WZXNQa3lxS2hXeGRvbnVFVkRnS0N2TXYwSmpr?= =?utf-8?B?NFhFKzh5ZTRXSURDNEtFbVNqVTZJc0JyRGNGZVE3Skw0dmJsU1A5QTlqazVB?= =?utf-8?B?c0wzakNJZ2lFbmhwUWwwTWlNV2xzTm5XTTloaGY5U3U1b0FGN01YeVVMWVBN?= =?utf-8?B?VWVYUUtQcW9BUTJHYUJVOGtVQ3BQM05ucVBEcGFHQTRvUEY3eXVoS2xZZm1X?= =?utf-8?B?UnlwRkdRbHorU3l3enFpVjcrVHB5a3E1Z1Q4a0FSSFkrYjRqeE5KNkkvSlNv?= =?utf-8?B?aXlTdTZJMXZiVTdHd0d2cTAyeHV4Ry9JajNPelhCWjg2T0ZoaXRNekVwWjhO?= =?utf-8?B?eElwSHZ6Wkc0b2czVnlhTnlDem9CblJNdkUxTG14aGZCd2hxUUI0N2dGdWpR?= =?utf-8?B?S1Zvc1B4VVpQTk5Ma1J2TGJESGNJNXhZVUl1dUdHUVdFM0tLVE1MUXVSR2x4?= =?utf-8?B?cEJhcW1Ub0xoRmRNTlVlUVJkbHdUL1VZQXhYSDkydURlWTdiN29KTDBSaUlh?= =?utf-8?B?aWExSlhzR0U4UzJIVnBuSUNmVEwwSE9DZG91aGN3MFVHWGc4UEN6TlF4L0Yr?= =?utf-8?B?c0ppZGhCeWlBV2pqUW9zVlFJUXFsK0xMZ0djdVJvMGhSL3pySjdsUzd0eE5l?= =?utf-8?B?VmVIRFY0QUhMUk5hVDBnckNyc29GMmc2cEZqUDJBUStrMnRqaXBpOFFZR0R3?= =?utf-8?B?K0hqdXNIQ3dsRHVYQ2RrNjdSVllaZGlhZnJ5YlA0RWdHbEpPeVhjb3VROUFl?= =?utf-8?B?dk10MUNHZk5BM3NKWTM0TzJSZ3ZINS9OZzA2eHd1ZEEzQXB0ejhtdStTanQ2?= =?utf-8?Q?nwE55+fyXx73SsMh8nv040k=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0bf2e2f1-9180-4260-7c21-08d9b4b658ce X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2021 10:35:51.8159 (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: /IXVz/ZKscc6BTFgV34g5lLg4Npb2CBpdGn8RCYv4kI0ed/02Aql3oz8oFkmgdUB3ttEqTImXplr7403eQwnlw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4381 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1638354980780100001 Content-Type: text/plain; charset="utf-8" The function returning a boolean indicator, make it return bool. Also constify its struct domain parameter, albeit requiring to also adjust mm_locked_by_me(). Furthermore the function is used by shadow code only. Signed-off-by: Jan Beulich --- a/xen/arch/x86/mm/mm-locks.h +++ b/xen/arch/x86/mm/mm-locks.h @@ -40,7 +40,7 @@ static inline void mm_lock_init(mm_lock_ l->unlock_level =3D 0; } =20 -static inline int mm_locked_by_me(mm_lock_t *l) +static inline int mm_locked_by_me(const mm_lock_t *l) { return (l->lock.recurse_cpu =3D=3D current->processor); } --- a/xen/arch/x86/mm/paging.c +++ b/xen/arch/x86/mm/paging.c @@ -351,14 +351,14 @@ void paging_mark_dirty(struct domain *d, paging_mark_pfn_dirty(d, pfn); } =20 - +#ifdef CONFIG_SHADOW_PAGING /* Is this guest page dirty? */ -int paging_mfn_is_dirty(struct domain *d, mfn_t gmfn) +bool paging_mfn_is_dirty(const struct domain *d, mfn_t gmfn) { pfn_t pfn; mfn_t mfn, *l4, *l3, *l2; unsigned long *l1; - int rv; + bool dirty; =20 ASSERT(paging_locked_by_me(d)); ASSERT(paging_mode_log_dirty(d)); @@ -367,36 +367,37 @@ int paging_mfn_is_dirty(struct domain *d pfn =3D _pfn(get_gpfn_from_mfn(mfn_x(gmfn))); /* Invalid pages can't be dirty. */ if ( unlikely(!VALID_M2P(pfn_x(pfn))) ) - return 0; + return false; =20 mfn =3D d->arch.paging.log_dirty.top; if ( !mfn_valid(mfn) ) - return 0; + return false; =20 l4 =3D map_domain_page(mfn); mfn =3D l4[L4_LOGDIRTY_IDX(pfn)]; unmap_domain_page(l4); if ( !mfn_valid(mfn) ) - return 0; + return false; =20 l3 =3D map_domain_page(mfn); mfn =3D l3[L3_LOGDIRTY_IDX(pfn)]; unmap_domain_page(l3); if ( !mfn_valid(mfn) ) - return 0; + return false; =20 l2 =3D map_domain_page(mfn); mfn =3D l2[L2_LOGDIRTY_IDX(pfn)]; unmap_domain_page(l2); if ( !mfn_valid(mfn) ) - return 0; + return false; =20 l1 =3D map_domain_page(mfn); - rv =3D test_bit(L1_LOGDIRTY_IDX(pfn), l1); + dirty =3D test_bit(L1_LOGDIRTY_IDX(pfn), l1); unmap_domain_page(l1); - return rv; -} =20 + return dirty; +} +#endif =20 /* Read a domain's log-dirty bitmap and stats. If the operation is a CLEA= N, * clear the bitmap and stats as well. */ --- a/xen/include/asm-x86/paging.h +++ b/xen/include/asm-x86/paging.h @@ -173,7 +173,7 @@ void paging_mark_pfn_dirty(struct domain =20 /* is this guest page dirty?=20 * This is called from inside paging code, with the paging lock held. */ -int paging_mfn_is_dirty(struct domain *d, mfn_t gmfn); +bool paging_mfn_is_dirty(const struct domain *d, mfn_t gmfn); =20 /* * Log-dirty radix tree indexing: