From nobody Fri Apr 19 23:03:20 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=1641289714; cv=pass; d=zohomail.com; s=zohoarc; b=b2NBUL7sOu40TZeZHRpUjk6hWWTG4ZebVZNIHTzCsiBNVHegqIwTEKuFC5cJNaliSsmgSI164d54fBlx+dcZjFndWDGVGJ5UnWpH//9hgzctWMr2t2B6RasSTTnkmtzjlPvXZmrTOxscAP9mhaTBqhPrv0Vj7XgDoQ1m7qre7+A= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641289714; 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=Is8eyqS5UXxKKaxllWqlmG+svyS0Sr+AMv6UtD6Pldg=; b=QQzfYGNfffEUIGBvm7Zpt+BG4hLl0iaWf0828s0L5K8hKDvmem6FJAKF+2V9BzWwCYttfjxR4sgr+2NhEUOS8DkOleG0cBeFrJ2VtXdBsMgPRPCJfUDeJnEaa6tcMQky5/wTPbda9FxjLNegN++gqia+NAHmnMr9sLQQw6lmlzA= 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 1641289714680843.6271243454079; Tue, 4 Jan 2022 01:48:34 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.253110.434153 (Exim 4.92) (envelope-from ) id 1n4gQU-0003Jp-Cm; Tue, 04 Jan 2022 09:48:18 +0000 Received: by outflank-mailman (output) from mailman id 253110.434153; Tue, 04 Jan 2022 09:48:18 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1n4gQU-0003Jh-9A; Tue, 04 Jan 2022 09:48:18 +0000 Received: by outflank-mailman (input) for mailman id 253110; Tue, 04 Jan 2022 09:48:17 +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 1n4gQS-0003JT-VX for xen-devel@lists.xenproject.org; Tue, 04 Jan 2022 09:48:17 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 6fcd318e-6d43-11ec-81c0-a30af7de8005; Tue, 04 Jan 2022 10:48:14 +0100 (CET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2055.outbound.protection.outlook.com [104.47.13.55]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-16-glLD57jTMFqJ93DeBIDRbw-1; Tue, 04 Jan 2022 10:48:13 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB7037.eurprd04.prod.outlook.com (2603:10a6:800:125::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.14; Tue, 4 Jan 2022 09:48:12 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe%6]) with mapi id 15.20.4844.016; Tue, 4 Jan 2022 09:48:12 +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: 6fcd318e-6d43-11ec-81c0-a30af7de8005 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1641289694; 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=Is8eyqS5UXxKKaxllWqlmG+svyS0Sr+AMv6UtD6Pldg=; b=a9KlEQaKe//CBIIUR5vYUp5vTK1BBtIs3DxnS5fMRtR+YwiWag01NnSOguuokmC1tLQ4Nk afeVxLY1Ua+HU/iii10XXGzKDi9GgwLIb2n9oxDhyX7MbBzoTk1fxzShfmLtGYMcxQ/eDD FGo/BzvkMMp1xbXcr9VANfwHv7xvMUI= X-MC-Unique: glLD57jTMFqJ93DeBIDRbw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lEPut8a+paEEfOYuA9cYcDBhViwxvnuXSlq/BlwdO/tb9hMAaouLu1eRGMjx6HnYQO5v+ciJQjPGK7iFHJ2MRIhHmPDw+BeuupeXswwvTUdYvwZcLKq9dDcvAiUlYLLSnWSoNZX8xrVIg5Uajhkk7XDhTVk5iQCd4b7dOslAWn52qSy6xCaSpuAgQx3ZSG3A6obLJLAGUoTXxsplQ1J4FSUVtiOaP/7nP04az4ryzaFabbQwpuZmyA692eeS/JomGNlpzNn2Aruu1VZ5OJ/e3KBVqf0m9I/kSCBHAEbbvx1h9rQi0Aren8i+bHLl3sHHZZqTZFG1KT4+tH622U/44w== 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=Is8eyqS5UXxKKaxllWqlmG+svyS0Sr+AMv6UtD6Pldg=; b=I1CsEA1zr7vU+Zeys3Xe0SSLoGLH5s9TsHjpPSs2HMmulf93CgF7FTrIPU5EDo4Wc9011twjxfLobvLrvHK/J4ViGDir2v8AJdAQc7ep6whzFurgANLDeIUX9ry7HSvURmVHetTwPeV6VBZDFvyMNV3jNY8MMVZNIYWyufsiA2vJ1ux8Vh9s5W1VKjCzetUryriPKqYWpNvfmyToFlThD1vvcIkmuzoQ4J3Zkx56dxTVsfY0r20iTUKhguQcijtP+ZR1l5/HsPHGCwww1GkNSmFHBw8yWCHl34UKAdvxHz36wAJcZJXanAdUBiD/k5kUkCF3r3vbR/jV1O1ma1ro+Q== 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: <0c61e460-122c-6486-00b7-22a9a24ee1fc@suse.com> Date: Tue, 4 Jan 2022 10:48:19 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: [PATCH v2 1/3] x86/PoD: simplify / improve p2m_pod_cache_add() 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: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6PR08CA0034.eurprd08.prod.outlook.com (2603:10a6:20b:c0::22) 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: 54f4de68-8035-4ed6-ecff-08d9cf675273 X-MS-TrafficTypeDiagnostic: VI1PR04MB7037:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:619; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qa40BG+guA9oAc4vcJdU5dCr1r5Os9Oiyy6SuxGtdezgwN3EDsJgFwHbVS2LLk1WSWTKERlN6TJ0EUKp7iaOEd42FYX7WSMgFBlXIDsZ+AIULKHcdnHgTmViHOqGnrn3ZwGMsH9CjSevduO3IEx6fyQ5SVJg66xrCCal3yhY3xLYfJ6UyI/OcBFPXgqEUZJVrrvFlZQHkcXTcy7Ps1Y6+3hGJzMDsudq53xGlXYRI5LpQLotDNW/sOx/S+N+aoej/u4MSp58f8HG05ZR3hWzDfakKrIb5cen66bXhS9oaa74JQr4pczSt6oc65/UD0ZtsyBVBSLnm1an7U6imbRCc7GgsBL2UsC7ykHky5CI1N+iSWj8/6bWGtBiMMIErV5JsbBsYibzP8yfDOLkSb2l0lFnZ1VbnH9FKmNOqlB+zB9sVEt52Bq8GZu8TUXNyMNuKM2i9pI3rWq5GLAuggxRkiAZZJNTCV8vhmUlz84oDSTI1dc1hZInW+fsUTmkYte3DIj2eOiJSsnOetQPd8G7o3YOZWaP+cvY9q3jFThfUFOz1hFJ41zM9GpjLxMTVfMihMFjJmi9DchtavNWm+aH+F7DdWgldBbS7jgZiZ3A3dFo6gpvW8FUGBL13BCYHIcxGRUFg0pj9PGro5kHVGipKZZTjtZosu/p575xn73XB92tF4EEQqUtaDDIeugYvBrNiUpNjJvyY/qTiGruqZWabu5aWVPJuXTRd4PvfR9qAOc= 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)(316002)(6506007)(6486002)(36756003)(31696002)(6916009)(83380400001)(8676002)(38100700002)(8936002)(2906002)(31686004)(4326008)(66946007)(66476007)(54906003)(508600001)(66556008)(5660300002)(2616005)(86362001)(186003)(6512007)(26005)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YjZwNWVGaGMrVzE0K0F1bmlhV0VHZlR3WWZ2NlZDemd2YVNuQS9RNUxTeW05?= =?utf-8?B?TGRyKzlzWW9CYlc0aHRpam1LdDVJNUNZYWRRSTFtd0lCSWhsalJUQ0tuQVJh?= =?utf-8?B?cWdjWWg1VzlUWWVlYVVXNzBRM3pmbWxNcUMxZkM1ODZwVjRmSCtwTTErTWFL?= =?utf-8?B?OE1UYWY0QmdKcTY3MXRpWTJyZmFNS2MvSFlRbE1TVmtVOWlrZjFCNzA2U0Uw?= =?utf-8?B?dmxNdGF3Z0tZNWp2bEpDZyswLzNSR3U5Y0d2U1JBZk4vNElRbG1Ndm14S1o1?= =?utf-8?B?SktNMFVBTzJNOThrQ1NCRXRja2NvTy9od0xUeVpxWEgyamh3bnpna1N2M3N0?= =?utf-8?B?UFlOQWVSdDVLd1FkMWtnMmZnZjFmNE42Z0VZK1RrQnFOT2FlMkUyRXF3QTVC?= =?utf-8?B?QStnck5IVW1tWTJPRWVLdWUrKzJIUmE3NTRWTDJtdjZpNjFWMDJOYURVRjI4?= =?utf-8?B?MHpDS1VpRlEwbHhmd0lmaGZiRHFDSzlmL1lET1ZRRG9teUlHVG5PZWN0amZO?= =?utf-8?B?UFlnQkZ4ak5lVWE0OVFuSlB2WVFjVHRTem5SZXZmaGdILzgwVnhyTVZCbXdO?= =?utf-8?B?THhPaUQ2RGZXODN5UUoxaUluYklGLzlzNmxNcjYwNEo3UUVJa3NubUlnWlJr?= =?utf-8?B?WXFINlVSNjcyWEJhWjA1b0pybktJKzRMU28yYW5Od3c3S29NOTlhTnFmOXda?= =?utf-8?B?OTd2RXNGSU9FNkpOV3JrbVE1RzRtcFA0YVBJOWV0RlQrT3dZcE5VemxxR3Bj?= =?utf-8?B?WFlqTldZNE1ZZ1phbGhIcGNGZGRsWU9LYXpURzJ0bnhWWnNIKytad09hZU1y?= =?utf-8?B?ck5INGx6K2RhSUFUWmsrY1dpVEhpZnZ2SUJReGhIMTAzSllyR1ZVSENGdFdE?= =?utf-8?B?b2pFT3RPaTlSRHFkcS9hMWJnY0YvWkZTMm12NEF5VVBTdGV2WGNPZ2dlRGpv?= =?utf-8?B?S1BqeE9janpjVExEaTI0dFhFNWFhK2tIbnF1c1U3RTZBR21XN2FKK1VLaTQ3?= =?utf-8?B?QmhiY2NHLzhkTzhwdEovNUJrM0swOVpIZEFCdXdPM3lFYURySTUvMm0wRXds?= =?utf-8?B?MEo2YkpPakpXWW5NMFl0Y1l1WlA4NkFDb1ljVlhwdnlUb0xtSEROR3RQM0FV?= =?utf-8?B?ZXlQTGU4aXpleTdIN21BT3JPd2xySVJkSjJWV3JFZmVMUGxTSzRDcWRiY2NU?= =?utf-8?B?Tkg0eE8rQkdIdDR0MVRQNmg0T2ltK0VLSVBzUFNQWTV5TFAzSmdBSm1zcVpu?= =?utf-8?B?bWFxSlpsbHQ1bW1wYjh4OVBDaStIdFlDcHFUVXgvOVhNRngvRWlxdzl3U2NN?= =?utf-8?B?T0U5MWorUDFIMytFdElkUE41SklGcE9SYlMwZHNFS3hiaWt5d1JQMnJTbm9F?= =?utf-8?B?aHBxN2d2WDRFbzl3RU5lTmwzbEtkN2w2WktzZ2pFSTNWNFhFVUI0S2MzUFZa?= =?utf-8?B?eE0rT0FJVUFLZEp5TUxIYVpZVkVwL3pYQVg3Wnp5NGRBNmpzbkwyZU5wV0NX?= =?utf-8?B?RHNsM2RCRFh2UTI5TWJhTXdVSVppQnJKNEhKRGJxTkNweDlNNlpteXdwcUJR?= =?utf-8?B?Uk1mUWoxYUgxUXFNT3A4QVBvbWNka3JZTlp0OGZ2WEFpQ1g3NDd0a1VhSUNK?= =?utf-8?B?eW9zM3JEcGNPVkRBQkRkTFpFYmJqVGVld1FhRnpvaG84cWN4WjQzOUVOdURs?= =?utf-8?B?bjNBcmRSQmxNbjNHbVpESmNmZHBxa0UzM0d1UWVDMkg4L3lBZ2pHdVZEQ25T?= =?utf-8?B?REUvM1RRZ01ranlGSytFMWdsWUNGRzlBTVdHTjNvcVUrNlBpcWw1U2VpRGpr?= =?utf-8?B?bFNrcVhGeFZjZXphWXhUZFJTdU5WbkJrM2cxYytoQnc4NXdzNml0cTF0OG1t?= =?utf-8?B?ODRDL0VLOU5EZ3lhaHZXbU1PN1lENlM1WitydytVYkU0L1AvbHE0U0NCeE03?= =?utf-8?B?Risrbk1NSmJnNTBuYm9ndG1nOXlVU2lDeTlZOEp1RWxJYmF1WGIrODc4UDlq?= =?utf-8?B?a0RaYmdFNG4wRFRZQXFRRzJ0dUFoOVVFL0xiOE9xMk1GQkR2Wk0zMHE2eU9a?= =?utf-8?B?UVBtUm1TS3lYZkU3a0oxUTNJTXd0alpkakdUNFF2d3hrMnlrQ2lzaUxtc1I2?= =?utf-8?B?Y1ltOStCY0I0d1FNVmRhdjZIVnRlWjdQTTloT250K1ZNMFdiSWpFNktoeDA2?= =?utf-8?Q?PEfXltSGl4aXjaQ4oHcpk0Q=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54f4de68-8035-4ed6-ecff-08d9cf675273 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 09:48:12.2435 (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: ROVJzJr5YsNU+DGuViDQEro/M4gjxez6eMyu0alP97jHkvtDgBuaj8CckR1a2Hm7NzOi1MmiM8I8Sssfdp2j2A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7037 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1641289716068100001 Content-Type: text/plain; charset="utf-8" Avoid recurring MFN -> page or page -> MFN translations. Drop the pretty pointless local variable "p". Make sure the MFN logged in a debugging error message is actually the offending one. Return negative errno values rather than -1 (presently no caller really cares, but imo this should change). Adjust style. Signed-off-by: Jan Beulich Reviewed-by: George Dunlap --- v2: Return -errno. Drop exclamation mark from log message. --- a/xen/arch/x86/mm/p2m-pod.c +++ b/xen/arch/x86/mm/p2m-pod.c @@ -58,34 +58,27 @@ p2m_pod_cache_add(struct p2m_domain *p2m unsigned int order) { unsigned long i; - struct page_info *p; struct domain *d =3D p2m->domain; + mfn_t mfn =3D page_to_mfn(page); =20 #ifndef NDEBUG - mfn_t mfn; - - mfn =3D page_to_mfn(page); - /* Check to make sure this is a contiguous region */ if ( mfn_x(mfn) & ((1UL << order) - 1) ) { printk("%s: mfn %lx not aligned order %u! (mask %lx)\n", __func__, mfn_x(mfn), order, ((1UL << order) - 1)); - return -1; + return -EINVAL; } =20 - for ( i =3D 0; i < 1UL << order ; i++) + for ( i =3D 0; i < (1UL << order); i++) { - struct domain * od; + const struct domain *od =3D page_get_owner(page + i); =20 - p =3D mfn_to_page(mfn_add(mfn, i)); - od =3D page_get_owner(p); if ( od !=3D d ) { - printk("%s: mfn %lx expected owner d%d, got owner d%d!\n", - __func__, mfn_x(mfn), d->domain_id, - od ? od->domain_id : -1); - return -1; + printk("%s: mfn %lx owner: expected %pd, got %pd\n", + __func__, mfn_x(mfn) + i, d, od); + return -EACCES; } } #endif @@ -98,16 +91,12 @@ p2m_pod_cache_add(struct p2m_domain *p2m * promise to provide zero pages. So we scrub pages before using. */ for ( i =3D 0; i < (1UL << order); i++ ) - clear_domain_page(mfn_add(page_to_mfn(page), i)); + clear_domain_page(mfn_add(mfn, i)); =20 /* First, take all pages off the domain list */ lock_page_alloc(p2m); - for ( i =3D 0; i < 1UL << order ; i++ ) - { - p =3D page + i; - page_list_del(p, &d->page_list); - } - + for ( i =3D 0; i < (1UL << order); i++ ) + page_list_del(page + i, &d->page_list); unlock_page_alloc(p2m); =20 /* Then add to the appropriate populate-on-demand list. */ From nobody Fri Apr 19 23:03:20 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=1641289754; cv=pass; d=zohomail.com; s=zohoarc; b=anTFnDURkYfcH0mKwJES+yZEZuP1d4cxZSUT2vH9ki+R9d5AAZp2Mo6b7ALlgw5JShxPTm46CvNdxbRMzSNNMDdd0KoFGz7CuGIujmayooFLjQDkDzZlmEVIwmduCBiERM21xvRrsnsNK9SEVRgbhEq2lwUb16FwiaaOqUw3dVI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641289754; 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=hCkSWuMSwqATKZ5dxxY4oQpVb+g/5Cx++Q3cRs+RAlc=; b=c5TEa+yUsXZTRzQaOR7J3wCVXVBwEWYI0u0cjVck5hm6pF2Z4MLGVgl08p0+60OG7q8luFSgU1l99JNGjs/p/0yCmROsgwuxONFJTePQItI4L+QETh96WTUJHvy3aYLG5SCCbvza5A5VfOITYjofhQ0XrNmzSRnGvxrUJnn1gI4= 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 1641289754193686.8709928049386; Tue, 4 Jan 2022 01:49:14 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.253113.434164 (Exim 4.92) (envelope-from ) id 1n4gR0-0003sa-MU; Tue, 04 Jan 2022 09:48:50 +0000 Received: by outflank-mailman (output) from mailman id 253113.434164; Tue, 04 Jan 2022 09:48:50 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1n4gR0-0003sT-IH; Tue, 04 Jan 2022 09:48:50 +0000 Received: by outflank-mailman (input) for mailman id 253113; Tue, 04 Jan 2022 09:48:48 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1n4gQy-0003gL-JL for xen-devel@lists.xenproject.org; Tue, 04 Jan 2022 09:48:48 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 8358c224-6d43-11ec-9ce5-af14b9085ebd; Tue, 04 Jan 2022 10:48:47 +0100 (CET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2058.outbound.protection.outlook.com [104.47.13.58]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-23-BkuKODKcPv2OFf3F3W0sCg-1; Tue, 04 Jan 2022 10:48:46 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0401MB2446.eurprd04.prod.outlook.com (2603:10a6:800:4e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.15; Tue, 4 Jan 2022 09:48:44 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe%6]) with mapi id 15.20.4844.016; Tue, 4 Jan 2022 09:48:44 +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: 8358c224-6d43-11ec-9ce5-af14b9085ebd DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1641289727; 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=hCkSWuMSwqATKZ5dxxY4oQpVb+g/5Cx++Q3cRs+RAlc=; b=jwzPwuOzZUFBqXgdqz8Ri52vWuYg+jv8wNwpsyKsknBwD/Mtw8r4SO1Adgf+Rp7CWmCy7S Ijgr5e09o8WpPvfvAfbSySJJPT2RdtlN5iNuGiuStVOlKR3tnXX+pP8C7E4MUZ0bqpT7U3 PBlwP0ZAsX4tBGS9xKk4HRbVyz2gxKM= X-MC-Unique: BkuKODKcPv2OFf3F3W0sCg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P42KkC2a0QnMEAd2YleSb99539qSf7uyFgugtR0u7scqDhy9VZQ5KkeGWDWBCwMew2rAWH5nG6ZpiNGRa1/1DkfhIf/CN/0ZvzaLtwpcSmB/bQsfx1uYiz1K7/U2Wf5ir4+foltPTaHW4HK73ulEV2VGXFRuBP61foGzR3SUyJPrRUf3zxN4MESaiau2CZLKynRLofjf17vj64FJ8DUd4VeNLmHtzk/Bz5u5JYCuZP5fJEYxu8kwOlWEgsfVkY67VMVcUMcX23omXfXW4Hlj1nlP2WSK4US2bcLj0KK1Sx4yFuddUl/CeWrCi/sxbKMlLzjXuu1AKS/isi3E/cyoeg== 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=hCkSWuMSwqATKZ5dxxY4oQpVb+g/5Cx++Q3cRs+RAlc=; b=NnEkS35xlxKGZ2TYI7zFEkgZzlS4wWCNHV7grtlTurnPRNJoupqaBtRNOrbby+mOhh4V023D2Wuh9Y039MeZ5nFhv8qZ4Pl4BZ7gNFHP744bvJ4dGRMv314KoRHWKadlYvOuxIhG0icIdn7/vowBebLvXgqV3PWH0+ajw/gu8BAoj6zc3e9jt8N5t5GRW9IlqhPO1z8yhzVH/CV3QSAjA8c+U8NeyJggip3p575CkPjANXwEJPSJgw6NmJ4zYKJagqsvR9hfxONqosyoTdCI1OBDDVzzJL7bgFGPFptHvdimbBkzFdSePorHNQ36TJVLmO+qA8F70Z/Vt4FJiSfBGw== 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: <2e5c460b-9123-bfc3-d5c8-0922f7b2e667@suse.com> Date: Tue, 4 Jan 2022 10:48:52 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: [PATCH v2 2/3] x86/altp2m: p2m_altp2m_get_or_propagate() should honor present page order 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 , Tamas K Lengyel , Alexandru Isaila , Petre Pircalabu References: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6PR08CA0046.eurprd08.prod.outlook.com (2603:10a6:20b:c0::34) 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: aede9649-5820-4c2d-205d-08d9cf676559 X-MS-TrafficTypeDiagnostic: VI1PR0401MB2446:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QHsmhDJPkDzcJZ5IwjoLFZMKVVDwezTG6oznQBDtIxV3fkF62KHHIQWMMOoHN03dVDLYO5PcvgfBC7lrSY7gLNoPxCbD8VKeNE0P7jOgj9TrhX3vP8s6WPjp5h41IHVY8Iu1fakBDu/Z51bR3Yjg74qCdANaN9CKr1l2KLLhhkGn+ULhkeJZ1r4ClhElUz1OSvw8Y4yh7XNwYxfZap6IiZwMjrVX+8QqgRKDaUYbaVfpqmVfE39jM6W7dp7JXkRDTubZSTKQPQuSwng6MMjN70PBgsTnBuURzm36ym4TNTQ3X8mqa+cDGjXr5HACoAFfRQoTZ/pDVhi8t8ilU/fedxJ9F7KInPtt1bpYrmX//2YANJeL+yAG2M343J5PTqacCbkQTGyzxkvOak0u7IrmYZ+Hk3M35nuCmOX/nGBYxjNocEKGFLHaIrRZrtJanSirGCv4LhPX4tBOZvM46KSDHx5Gk5HgGZsB/attzuUnKdRsNGDzZ9nDFkFjQ9UgP8Hhq022srTWTjSpG29VeVbdz6mefvzFOV690qBsNvecEm0ZtWBXuZc5JtWohosR0I2Uwlo47tzglcQ57x4J7Xz7bsNQhBOeynA0xricqFJNZ+PQ4eTPRLEwONAwBOOcclk4qnjWZx1p3h5vqVZuxqjvzRxVx5PpCRxZQNHYPtlO2bPT/5IoEmcVwT2kDUQgluDjtwbtEOnlzlTOC6e7tZebbPgtybUDqG64HbUubMZ0AfM= 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)(2906002)(31686004)(508600001)(38100700002)(36756003)(6916009)(5660300002)(8936002)(2616005)(6506007)(8676002)(4326008)(6666004)(86362001)(83380400001)(6486002)(66946007)(316002)(186003)(54906003)(31696002)(6512007)(26005)(66476007)(66556008)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QkQxbzNYSEFEQ055WVRFSlpCZEw2ZkNXTVhqRVRlMjBRQlVJeUxvV3YxYlBM?= =?utf-8?B?cG9lV1oyYmVRTENvblVwck1XbjNIMGFpL3k0NDhNbUJPcFMvZzF3d3A1NnFS?= =?utf-8?B?SnVUSXM1TE00eWpyRnZ4QnhLbCtyb3FIdHUraG1XS00rR0tTZ0x6QnRPT3hN?= =?utf-8?B?bDI0YmZ1cHRoaHZZdnVJNjJkVHlEcUtKa2wwS04zZ1BhdXc1SzFGc21CME43?= =?utf-8?B?eFB6WnU2ajdkU1pUbDRnSko1UDVRMEhtbFh5U2Q3c0FydU1hKzh6T3FOaVpC?= =?utf-8?B?L203Y1RrOXpqcndQMmJHaFBQSC9GclRwSUVHeSthM2RTajlORWxoWHhXWHJS?= =?utf-8?B?aXZuTEFoQ3ZRaW1WYmFJY05LeDNJSmQ0MDE4YUhudXdna3MzVmJmNG1scERy?= =?utf-8?B?ZmlDc3N6eFVjS3NTZHRpS2d3ZHhjZGIyY3lrODREa1R4ek0yTThmcVZCRzhZ?= =?utf-8?B?R0VvZytSSGhZUHBwZTlZWkxYZWJNcXdhRXV1OUMwQ2FqSU9ra290aTRaZzZM?= =?utf-8?B?VDdYK2hoQzVGMjVoWFIwZkZ0UzN3REZnM2hPU09HU2paRGZIaTIzeGd5djdY?= =?utf-8?B?TGZ1VkhscVhRbDc2dHdERDZiQXRxUHovK3Q1S2U5eEFzWW13NHNZdGRWVUFP?= =?utf-8?B?L1VtOTU0cGxJTjErdklubU4vVG5RUkpxbkVuUERoMnAxN3NTcmgwT1dYcmoy?= =?utf-8?B?Z0N3blNyWGhGQmc1ZGwwZVd5MkZIeExNdWZMWlRhZXRiWklxRjU5elVFV1RQ?= =?utf-8?B?UDgzTCtpUkd4WU1YZWlDZ0hHTjdXN1g4aFhqeFJrQnF6Y2tMa21OMDVKTStQ?= =?utf-8?B?SXpFdHJObTRDVEVUKzlLL0pOamFMZzlwMUNpYms0WUtrL3k4WCt2dForUlQ5?= =?utf-8?B?QVQzckM1WFU5MmlCRUFlL1MrbE5ZczN1M1ZiWjlqUjFKejlYd3p2K25QUEVX?= =?utf-8?B?OXJuNWRVZVZuRnl3cXVzQ1UwUHJGbmEzRHpiWjMrZ2svMVdDM3l4V0JNRUQ5?= =?utf-8?B?Y1c2dzhyaG8xZEsrVkg2WGh3RXYxcWNjWU1IRFNxNHF6b0NOZ2RtSnB4RHVO?= =?utf-8?B?bWx1cUNBRG1PYmg5UndtbGtST1pKcDhDVTNBUExVcCtMZHphcEpmOXdZbnI3?= =?utf-8?B?Q2U0aWNmTzQ2YXE4ck5uRFMxRU4rUmQwY2hid0JKQ2J1TERRK3pNd0NHV3pU?= =?utf-8?B?R05FdjNCbGkxMjFJbVRKdmVNR1ROZmdRYmtpeENOS3B1VFliMjNrT05TeC93?= =?utf-8?B?cDhhb0J3N0dQZDhXNzUrVk5JTVhXVnBnT1F6LzdRSHhkcGlzblZOMXVUN3ll?= =?utf-8?B?aEVxT29ERFFPNVBDWmtoWDNGSllldjA5aG1TWllHZVNadjFFbUpRWVNmV2pK?= =?utf-8?B?VDdvMTBjU0pjSGpKTHpXNFpNRWFLODhZZWFrTmRhVm96dFp6QmlQVm44dUd4?= =?utf-8?B?Ky83WUcyZXI1VUhCL2NJMkpURUN3U1ExUng0eEZIR3IxRnFFSE1lTjgxNHdD?= =?utf-8?B?cmJGendyRFY2SmUvZk5GYmdYdTVOOW9mRmdYSWFwK1hLYlBHUTA5Ti9rcVhU?= =?utf-8?B?bEFqZXBCSjdUYTVSOUVoRXRGUk95MFRzQ3NTdVhxWnJlLzQwYjZ5dHl1WU9h?= =?utf-8?B?b1lQUENEM0Z4LzZzSStHYU1yOEhwTURscEdsU3FNdmp3YnlJVENybTJqQ0Vj?= =?utf-8?B?bVNVYi9hMHlmR2NEZ2RDMGFCcE5qU0ozOVZCR0dtb1pTT0NKNWZxVDlnUWVp?= =?utf-8?B?SGxJQXRiK1BiZnA5dnZEc1I1MUtkOHVpUlc3RzhGRGErTnlITjlZOWkybDU0?= =?utf-8?B?cHp5STVKMXdVNnJMeGlLN2I1bFRDTm9iaXo3eElqK2l0cGtxQmEwd2FRRUV6?= =?utf-8?B?ZlpsZ0tPRUJrU2RiU1BnOFp2aE8xS3BGSFlzdndZS0xQQnhKVE9SYU84OW5F?= =?utf-8?B?WERIeXlRZW1QdHFxajY1MXIzK2lzS2hlZHZmS2ZsL2g3azlrcjdldmdESkR4?= =?utf-8?B?d0VQWnFJRlhRcmIyWHJOUUhEcjhxMEFmRDh6dXpsVlFpTTFSU3kzVzN1MVV3?= =?utf-8?B?cmwrNGFkUGNqVHdxN0VuT0Q5ZEtrVnI1VnpVV1pNOE82RisvV2ZHNWVMSWlU?= =?utf-8?B?ZWdlQU5wZDU2MnErYmpaMmpGTFUwb3pPNGhvRngyS1Qyd2J6REk0NkpIREg1?= =?utf-8?Q?VCw6sZEbbhKHwuz+vO3n++g=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: aede9649-5820-4c2d-205d-08d9cf676559 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 09:48:43.9536 (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: mE7jqxDekhmwkeGwOBnV74rF3EFsSnWH86xLnY5dOWWn90JBYUyUzqu0G6EuOIOwuvQZb7VESzKruVGuMfrZRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2446 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1641289754667100001 Content-Type: text/plain; charset="utf-8" Prior to XSA-304 the only caller merely happened to not use any further the order value that it passes into the function. Already then this was a latent issue: The function really should, in the "get" case, hand back the order the underlying mapping actually uses (or actually the smaller of the two), such that (going forward) there wouldn't be any action on unrelated mappings (in particular ones which did already diverge from the host P2M). Similarly in the "propagate" case only the smaller of the two orders should actually get used for creating the new entry, again to avoid altering mappings which did already diverge from the host P2M. Signed-off-by: Jan Beulich Reviewed-by: Tamas K Lengyel --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -1832,7 +1832,7 @@ int hvm_hap_nested_page_fault(paddr_t gp * altp2m. */ if ( p2m_altp2m_get_or_propagate(p2m, gfn, &mfn, &p2mt, - &p2ma, page_order) ) + &p2ma, &page_order) ) { /* Entry was copied from host -- retry fault */ rc =3D 1; --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -2198,10 +2198,11 @@ bool_t p2m_switch_vcpu_altp2m_by_id(stru */ bool p2m_altp2m_get_or_propagate(struct p2m_domain *ap2m, unsigned long gf= n_l, mfn_t *mfn, p2m_type_t *p2mt, - p2m_access_t *p2ma, unsigned int page_ord= er) + p2m_access_t *p2ma, unsigned int *page_or= der) { p2m_type_t ap2mt; p2m_access_t ap2ma; + unsigned int cur_order; unsigned long mask; gfn_t gfn; mfn_t amfn; @@ -2214,7 +2215,10 @@ bool p2m_altp2m_get_or_propagate(struct */ p2m_lock(ap2m); =20 - amfn =3D get_gfn_type_access(ap2m, gfn_l, &ap2mt, &ap2ma, 0, NULL); + amfn =3D get_gfn_type_access(ap2m, gfn_l, &ap2mt, &ap2ma, 0, &cur_orde= r); + + if ( cur_order > *page_order ) + cur_order =3D *page_order; =20 if ( !mfn_eq(amfn, INVALID_MFN) ) { @@ -2222,6 +2226,7 @@ bool p2m_altp2m_get_or_propagate(struct *mfn =3D amfn; *p2mt =3D ap2mt; *p2ma =3D ap2ma; + *page_order =3D cur_order; return false; } =20 @@ -2229,6 +2234,7 @@ bool p2m_altp2m_get_or_propagate(struct if ( mfn_eq(*mfn, INVALID_MFN) ) { p2m_unlock(ap2m); + *page_order =3D cur_order; return false; } =20 @@ -2237,11 +2243,11 @@ bool p2m_altp2m_get_or_propagate(struct * to the start of the superpage. NB that we repupose `amfn` * here. */ - mask =3D ~((1UL << page_order) - 1); + mask =3D ~((1UL << cur_order) - 1); amfn =3D _mfn(mfn_x(*mfn) & mask); gfn =3D _gfn(gfn_l & mask); =20 - rc =3D p2m_set_entry(ap2m, gfn, amfn, page_order, *p2mt, *p2ma); + rc =3D p2m_set_entry(ap2m, gfn, amfn, cur_order, *p2mt, *p2ma); p2m_unlock(ap2m); =20 if ( rc ) --- a/xen/arch/x86/include/asm/p2m.h +++ b/xen/arch/x86/include/asm/p2m.h @@ -852,7 +852,7 @@ void p2m_flush_altp2m(struct domain *d); /* Alternate p2m paging */ bool p2m_altp2m_get_or_propagate(struct p2m_domain *ap2m, unsigned long gf= n_l, mfn_t *mfn, p2m_type_t *p2mt, - p2m_access_t *p2ma, unsigned int page_ord= er); + p2m_access_t *p2ma, unsigned int *page_or= der); =20 /* Make a specific alternate p2m valid */ int p2m_init_altp2m_by_id(struct domain *d, unsigned int idx); From nobody Fri Apr 19 23:03:20 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=1641289803; cv=pass; d=zohomail.com; s=zohoarc; b=jloGKKvWBI4F4V8ATDq2YhJBcDvi/Rl6ILl3yEUQYsqk3Jble859ivDmHLNGFLc1SzwqTE91n1lcS3ZxeQiwGIMAXRWAtmcrG3KlK2oMwZ5wTxg+O0w39zLUizwc+9ZoYwSBCQlKhLdSvBqpnG/cQ+bL2c1wiN9g9J7lAbVlkgU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641289803; 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=EubbiLSoJ7gBkAT814XkFnEd7VOT3g+5pVKJpSG0l1c=; b=gyUKyTR3LemVb30iUaBdMbAoisyNjoG8axHh1V6/8lp65cmbWYpZ6UbNueYio1DNwXnyzXo7liknnoQQxITv9JP6AKfJ1bq/dp2PFdwbCMxSeN3hBvCgwb+GrZwbKmFJXxRdIPMr9cp9qgnKhcrltBWxbHz+wkM+upWuqNwfs9I= 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 1641289803060860.331840058579; Tue, 4 Jan 2022 01:50:03 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.253118.434175 (Exim 4.92) (envelope-from ) id 1n4gRi-0004Xv-56; Tue, 04 Jan 2022 09:49:34 +0000 Received: by outflank-mailman (output) from mailman id 253118.434175; Tue, 04 Jan 2022 09:49:34 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1n4gRi-0004Xo-1I; Tue, 04 Jan 2022 09:49:34 +0000 Received: by outflank-mailman (input) for mailman id 253118; Tue, 04 Jan 2022 09:49:33 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1n4gRg-0003gL-T4 for xen-devel@lists.xenproject.org; Tue, 04 Jan 2022 09:49:33 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 9db13e11-6d43-11ec-9ce5-af14b9085ebd; Tue, 04 Jan 2022 10:49:32 +0100 (CET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2106.outbound.protection.outlook.com [104.47.17.106]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-5-Ck4OqX7YOq6lAnU2hsquOA-1; Tue, 04 Jan 2022 10:49:30 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0401MB2608.eurprd04.prod.outlook.com (2603:10a6:800:4f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.15; Tue, 4 Jan 2022 09:49:28 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe%6]) with mapi id 15.20.4844.016; Tue, 4 Jan 2022 09:49:28 +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: 9db13e11-6d43-11ec-9ce5-af14b9085ebd DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1641289771; 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=EubbiLSoJ7gBkAT814XkFnEd7VOT3g+5pVKJpSG0l1c=; b=LjD5fV7nVxal/vZMNpxu+3XzUrZxVzIQRALfkNCoUjS29hFCumUl+ll5qXKrD/7QNqk7+N W9gUojIaed6RCA4ECdMIxXyzBVhvaY+TEXex8AT9fMd7UXz4vjiaHAlpKZ0U9rRUEgVXap J3d3fwPyUE6VzU02FwFABPjKg2VDJq0= X-MC-Unique: Ck4OqX7YOq6lAnU2hsquOA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KswNQ733G5AG0qTy7/Ks91J6+NIyOnIY0cyvVRRdGE7+F3OnDssVSEOH+X6vCNGC5FxwKBoRtctSC0sqJANRVTumXudNxZ79isUP3aSfQXtHcSuQUbGyhjf7f8pIFSmNa3/VP0c9jTZockfpkSKbj3R2wodWt5fqGQfKXiZ4F0cvt+BcZzTeZ9Q+e7vQKFS69gwHJaTGlZKKirqZyJEdyWn336c9INH9hF/O6yywtPnlcDC7NWVB417IsZqEU4UelSqDV9UY94dxyH/CLCPmD++ckOH2x9Th/aMYTRBV0efeOnGMai6KAWGEByqTYYpQOzCBuHN4GZ0CzSX6tr902Q== 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=EubbiLSoJ7gBkAT814XkFnEd7VOT3g+5pVKJpSG0l1c=; b=Sk/uAZpaHlWrsvY7yXbMbuNMeJdqKVZ2V1MlHhK+aM3T6aofESwMINZEvbxgCCpNkomW2O4MRIAe9HNF3twlaUIfbB8CbzE6jnmkTH31YqgkXnQiK3hJuWEC3LBsMhdIdHGX0DG38Wf7qEecsRuBYR+FvS/1goZs/2YPeAoDCYI/r2EIi+Gu0dx3YQa93bNBkEDFxdHXkraGG0uhsDBgQCajKrauki3DBK2GCpfDNvlhKLxmP4Os1Siwvfk0G78/7NVjwI7042UL5YhzYQmibFqSbwcHs2cNxxXnxCN/LMnuNbeWYrXQ1UZDiq7S/Y+eQ+4IPI40cU1l71fkPWo4+w== 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: Tue, 4 Jan 2022 10:49:36 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: [PATCH RFC v2 3/3] x86/altp2m: p2m_altp2m_propagate_change() should honor present page order 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 , Tamas K Lengyel , Alexandru Isaila , Petre Pircalabu References: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS8PR04CA0128.eurprd04.prod.outlook.com (2603:10a6:20b:127::13) 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: 2265aa29-24da-4215-521c-08d9cf677fc7 X-MS-TrafficTypeDiagnostic: VI1PR0401MB2608:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CeMFi/pFQ8t27qxHfdIk3Vti9YdjqmN7QJQ9NHMVhiQpXBE2et9MLuLjCNW0OeY9TH0iEpMxT/IFcV8/1EL0dzrmssT0OoFrG/F4KOxUEt3TbTeOH1CQt/lmxccKP7r94Obh0o5+S+SDmOsMbJXMUs6ARApLAPi5zk3wnrYcuMUghlnysNjCN9YKxgmjWTphAUi6bMTp6dPxxKhBIwsPABF5/ak8DdOsjh8CL9BTJ5/x6b3E/q7huGNXuvj6eZwj99wbsQan7P3sHMEeU8h/1zh4EiLtJ2TeHlbTVwEQit54JylJdwo7Ca1Nrqff/8jrUr5Lfa2o0s/s8VXfqNnrEp6sew4QSCUT9PIH70Tso0EF6Zh8SDXbZPJM+64Cb4rXKKa+A97ncu8c89evgEIZTxjUVLTpT+7M4VnurnUHLYSt3e1iAdUj7ZfMrpZ7sxpQ3bRAy+H/5dZmCU52ndkwpsazxR+8sVJuomemGAlkhPD2V32pjXL9jrMvZWHT7N9N9YIt56cmYVFUW6TYmlJ2cTEmIfWG2qXC2NQojPtuiMYIzTAjqxvd2DFiSmuCaqDfkt4hzGdRgBy3fkiU6BtOfa2dNIpFwA5slqcUhNoyw/LyVFxv5xiAcrQXeOtw0M8qdUCH+ssBMawEABoaCGgOn5XxuXqldqEM4EkwV0gSjv75QJo+FML9+5mBFyqAbElWfCyntOiHJXP40Xqsk6gSbR15nPmpr1riix7Ko8YT7IMERmSUPxKO9KLy1nhDMyOS96D6R2GtXNwiEWrhr5Rmvw== 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)(508600001)(316002)(6512007)(5660300002)(31696002)(6506007)(8936002)(86362001)(66476007)(8676002)(66946007)(4326008)(36756003)(66556008)(2616005)(186003)(31686004)(6916009)(38100700002)(54906003)(6486002)(83380400001)(6666004)(26005)(2906002)(21314003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YzdwQ0Z1ZnJyM05LUjh5UTNNdUt3QytqdVVTYTFJcTNXaFFtVlBTUDU5UTE0?= =?utf-8?B?bEJCUmg2V3JkNlhvbDVtdU9KeDM2bG9YQTVoZmR0ZnovNGxIbVpqbVJSNkxk?= =?utf-8?B?WjdScml2TzFvMkpXM2NET0h4Y3MxZTdKdndVMStrVnNsd1pjY2NmRGNGU2JC?= =?utf-8?B?ZElaNEpHdnZkQkhBMnJyWUZyMTl2aXByWlhVRVkveE90UjZYZ3UxUVZhSnc2?= =?utf-8?B?N1dDMW50dk5YeUduQ0VBUGZFZWZzTHdVVnBIUk5acllnME12dkFSRG9aK1Fo?= =?utf-8?B?dmRhbnhuV1lvOEd3YmxTdkpnMWhMZ2lMQjFlcG1BQ0JDaDNRQzZOU283Y20r?= =?utf-8?B?NUI1TFF6WU9idE9JdjVJbStmMzJsRjQvYXFoZzJvSTd6VjU4VzVyQ3FpYTZv?= =?utf-8?B?U1lCdENPcSsvUVhtNHkraVZKcGg4YllyQ0JlTm03WXhrTm0wM05zN2NTVVFI?= =?utf-8?B?SXFjNUZ3WEpvWFJNZnRRYTdhM0J6Y1N0ZGUyMktqYU9MS3hybDcyK2hsMTRh?= =?utf-8?B?a1RJWXhjYzdHUnhhaEZEZDAyRUlqN0RUZGZXTTlYMmlyUnRoYlkyQUJ0NlVh?= =?utf-8?B?STAzdi81K1dCSmhOUHA3eGl3cVlYamw0NHhFY0Z1dmVkMXhzNklSclg1TE9N?= =?utf-8?B?dTFSeGRPczJpRytYanRIbGVWM3A0d1hWOUpuZWZHMDJUS2ZXTW1uclRzcHcw?= =?utf-8?B?OWF6SGhlanNqcTc0YThGYlF4UXVSQkc0bnV3NzVLZTE5NDlzcFVvZEl2b0h2?= =?utf-8?B?bTVTOUMwNHlSeUVZMmhrajVjbnZmS0dkOWdCTmN5ckJaZzVNZU1EVkcyVURP?= =?utf-8?B?WjkvZ3VnRnJtLzU4OEh0ZjdDYy85dE5Bd241VW5mTDJFT1JuVlo0Mm1hd1hl?= =?utf-8?B?U3kwYWExNW56NW9Cd0NmT2xTS3hMWUtEWTFNRURsNDA2ZnU1YnBWeEV0K2tO?= =?utf-8?B?cXRETFE2TUpMc1M3U3A3blBYWmdtdVhJRTNrQlE2WjNDQlNNcGpSWWYvWjVB?= =?utf-8?B?SWtvRU5XUWhvbGhSTmZlbC92Y1BrODNqNTNsYVVyZzMxbjB0K0IxRFVJejMz?= =?utf-8?B?NVdWd1A0RWt0TXRzWHNxNGpsekxzWC8zQkVnNnJ6QmJaKzErcXR0Y0RWR1M2?= =?utf-8?B?cmZGRjlLNkhMYStST3FyejhHTmlYcWVkSkg0OXhaVnlsazlWQW1XL0hVRG94?= =?utf-8?B?OXdOcmgyMnUyVnQ5b2l3c1ZnMDNYbEh2UVFTN1pvQlBhdVVlTnVFY1NVTitM?= =?utf-8?B?WVkyNElYc09ac3A0SjNMUXN5Q2ZmUjBLbEhYVUQxdzFSaU5FVEloNHB1QXpk?= =?utf-8?B?djYwRHpBcWpNSlQ5NlJBVlk4bzQrQ1FxZEhVakhMV2x6bVYyZDlqd3BMRWJl?= =?utf-8?B?LzFjUlVEYjEzbkVCWVNKVHZmTlR4THBJcHFUYnM2RFlheTZ3N3o4YjZ4U2R0?= =?utf-8?B?NUV5ekpkWE5PRzlPV3BMWXFYK0N1VnJpKzN1KzlhQ0t2V3JxdkZ6ODBkUGNr?= =?utf-8?B?OW1ZVkI2bWlYSFJadlEyZFNjd0Jta2ZpZytYRi91enB1YitPWi9GU1RkUWhD?= =?utf-8?B?VVR2V1VKcVV0WThmSjlxOXZ3NitHcmhJY1JGODNTd2o4MnpCUVJGNmxOMjNJ?= =?utf-8?B?Z3lyblVaZThvanM3aVQ2Vlk3TUcxYnN4NklpOVJ0cVRoZE50UXJoUkppZHZ0?= =?utf-8?B?YzY1YXhwSEpuNDlaMG9mNlFDQlV5Zk40WXE3VE9YWnlLM3lMdXFtY0R2cVk5?= =?utf-8?B?ZWVKOWFMWElPT3VKTDVoOHBQMkUyYjlGVEZjNWhRTlV6M3ZSQ2hrVm9qa0c5?= =?utf-8?B?ekk0U1Z5cldhSHZvOVNDMUp0M2lsM3NNL25PZ2ZGYTlhSEx3YWVhdWpCZHRh?= =?utf-8?B?U05ENFVsWjJvcUNlenBvRG5HczJNMzEvdU9jSk1ITTNRQ25iZVhicnp0ODhD?= =?utf-8?B?Ums2QXB3ZHZXN0g5cW03NW4xenJlQzdCT2J3cDJHQ2RHK1BvRDhEbXRreUk3?= =?utf-8?B?NnNHTWdlN0tNN0hOR09DUGo1UmZqb1JFN2lGNjNiUVM0M3llL05aRmgvRUdT?= =?utf-8?B?dFpGU0VYZ3h4QVZYelJETnhROTg4N29FL0xuOWRFWkRkNzJZQVBkN1NKV3Ev?= =?utf-8?B?dlQ2YTc3cE5WZUFYRXRxeFpnUFVaeWhCOFNXbEF0eDBDYVZUR1FidmtjVTVj?= =?utf-8?Q?gBx/cRKS5E5ISGX26Nsx7nU=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2265aa29-24da-4215-521c-08d9cf677fc7 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 09:49:28.3235 (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: RtxLhc/B1XDIWGKxhB4i9DKqDwKr2V1QPXZv2ma0upGBsWAfWDNGTijdnJF5WT/PieA3ErdvRGV0/q9uHtnXOA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2608 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1641289803661100001 Content-Type: text/plain; charset="utf-8" For higher order mappings the comparison against p2m->min_remapped_gfn needs to take the upper bound of the covered GFN range into account, not just the base GFN. Otherwise, i.e. when dropping a mapping and not overlapping the remapped range, XXX. Note that there's no need to call get_gfn_type_access() ahead of the check against the remapped range boundaries: None of its outputs are needed earlier. Local variables get moved into the more narrow scope to demonstrate this. Signed-off-by: Jan Beulich --- I may be entirely wrong and hence that part of the change may also be wrong, but I'm having trouble seeing why the original "!mfn_eq(m, INVALID_MFN)" wasn't "mfn_eq(m, INVALID_MFN)". Isn't the goal there to pre-fill entries that were previously invalid, instead of undoing prior intentional divergence from the host P2M? (I have intentionally not reflected this aspect in the description yet; I can't really write a description of this without understanding what's going on in case the original code was correct.) When cur_order is below the passed in page_order, the p2m_set_entry() is of course not covering the full range. This could be put in a loop, but locking looks to be a little problematic: If a set of lower order pages gets re-combined to a large one while already having progressed into the range, we'd need to carefully back off. Alternatively the full incoming GFN range could be held locked for the entire loop; this would likely mean relying on gfn_lock() actually resolving to p2m_lock(). But perhaps that's not a big problem, considering that core functions like p2m_get_gfn_type_access() or __put_gfn() assume so, too (because of not taking the order into account at all)? --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -2532,9 +2532,6 @@ int p2m_altp2m_propagate_change(struct d p2m_type_t p2mt, p2m_access_t p2ma) { struct p2m_domain *p2m; - p2m_access_t a; - p2m_type_t t; - mfn_t m; unsigned int i; unsigned int reset_count =3D 0; unsigned int last_reset_idx =3D ~0; @@ -2551,12 +2548,30 @@ int p2m_altp2m_propagate_change(struct d continue; =20 p2m =3D d->arch.altp2m_p2m[i]; - m =3D get_gfn_type_access(p2m, gfn_x(gfn), &t, &a, 0, NULL); =20 + if ( !mfn_eq(mfn, INVALID_MFN) ) + { + p2m_access_t a; + p2m_type_t t; + unsigned int cur_order; + + if ( mfn_eq(get_gfn_type_access(p2m, gfn_x(gfn), &t, &a, 0, + &cur_order), + INVALID_MFN) ) + { + int rc =3D p2m_set_entry(p2m, gfn, mfn, min(cur_order, pag= e_order), + p2mt, p2ma); + + /* Best effort: Don't bail on error. */ + if ( !ret ) + ret =3D rc; + } + + __put_gfn(p2m, gfn_x(gfn)); + } /* Check for a dropped page that may impact this altp2m */ - if ( mfn_eq(mfn, INVALID_MFN) && - gfn_x(gfn) >=3D p2m->min_remapped_gfn && - gfn_x(gfn) <=3D p2m->max_remapped_gfn ) + else if ( gfn_x(gfn) + (1UL << page_order) > p2m->min_remapped_gfn= && + gfn_x(gfn) <=3D p2m->max_remapped_gfn ) { if ( !reset_count++ ) { @@ -2566,8 +2581,6 @@ int p2m_altp2m_propagate_change(struct d else { /* At least 2 altp2m's impacted, so reset everything */ - __put_gfn(p2m, gfn_x(gfn)); - for ( i =3D 0; i < MAX_ALTP2M; i++ ) { if ( i =3D=3D last_reset_idx || @@ -2581,16 +2594,6 @@ int p2m_altp2m_propagate_change(struct d break; } } - else if ( !mfn_eq(m, INVALID_MFN) ) - { - int rc =3D p2m_set_entry(p2m, gfn, mfn, page_order, p2mt, p2ma= ); - - /* Best effort: Don't bail on error. */ - if ( !ret ) - ret =3D rc; - } - - __put_gfn(p2m, gfn_x(gfn)); } =20 altp2m_list_unlock(d);