From nobody Wed May 1 22:58:43 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=1638356510; cv=pass; d=zohomail.com; s=zohoarc; b=YdkCEDy40/ZYeqG6zjjcpZk8lqlWhKbT8Vwq1tdwecG9vXianQYzcLsXcLnfEdkdFkJmbn4MGl+D/nFhlnD3YZa4rCTDnWeZcRM5Zcb1gF6NCLfImuI2Ec0yIHgy7Z/s2s5wnZlff9F2Ut3AJfZUKzLjfrbTCanjtyrEn7GwQMU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638356510; 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=3SD4EFe90Lggs8cQz5yURwjH248lNbQoaGblSbtee8k=; b=D+d0ZcSMCLl5xMWsK49BXVK1is5YSEgMxzNheuKfCfWp0BmEjhTzhkwQ6CgG9QjCwFUJt7v/x394epUzH3yRyxl7JLriNIMh6SNHd28smO+NBnMdNm23Xx/zVdXllgBjXdG6GlN1u092K/OQEakbSWOIkpuH16GxQhf7VXn3sNU= 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 163835651094195.16630575313343; Wed, 1 Dec 2021 03:01:50 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.235878.409140 (Exim 4.92) (envelope-from ) id 1msNMg-00052O-Hf; Wed, 01 Dec 2021 11:01:30 +0000 Received: by outflank-mailman (output) from mailman id 235878.409140; Wed, 01 Dec 2021 11:01:30 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1msNMg-00052H-EM; Wed, 01 Dec 2021 11:01:30 +0000 Received: by outflank-mailman (input) for mailman id 235878; Wed, 01 Dec 2021 11:01:29 +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 1msNMf-000520-FP for xen-devel@lists.xenproject.org; Wed, 01 Dec 2021 11:01:29 +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 087a4eff-5296-11ec-976b-d102b41d0961; Wed, 01 Dec 2021 12:01:28 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2056.outbound.protection.outlook.com [104.47.8.56]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-1-jjKr47zZMxaB6a3ZKhyu7w-1; Wed, 01 Dec 2021 12:01:27 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB5743.eurprd04.prod.outlook.com (2603:10a6:803:e0::26) 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 11:01:26 +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 11:01:25 +0000 Received: from [10.156.60.236] (37.24.206.209) by AS9PR06CA0161.eurprd06.prod.outlook.com (2603:10a6:20b:45c::11) 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 11:01:25 +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: 087a4eff-5296-11ec-976b-d102b41d0961 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1638356488; 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=3SD4EFe90Lggs8cQz5yURwjH248lNbQoaGblSbtee8k=; b=b/xpd3n0DIpsq7kdTe9xgrVlb5sDA8DKIbdrN/BD4g2J4tXf9He/HyHqsKbu91EmU+ZnqO hYNhPBy40P2OoLALsNL1PeW0k+CGUW5kLepSDM/DEU1u/8u6ScqPFN0O9MWAP5sPICSbZ9 Lta2f85g68rCmKXv59uv+Yme+sjURFw= X-MC-Unique: jjKr47zZMxaB6a3ZKhyu7w-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=efPgwyBHy4QT1c/YMgeoASqJwVCwm2KWUILRJIma8NK2H4k+BoJWD5sKr1U5Y7sXvc7AQkKy0gjLL97C+Y6/bJWdEJpBzapg8ABNLRZQHdsRAGJew0YYBUyoeBVO4aGM3bZIZISkgN91IsbGKROy7B3MKyzlzpaK9bF6DjSLZBNb4YP2w3oGMSo3/XXn6apzMbnMOwWb5bJ4xxrLVPPK7BkgZYPm/pGqXltSOlc5JCqCTNXI4QLlzZ3n2BtCE/C+zJGcOjIwNpYaAjYalTIh+gFcXIvjeHhfP8/jYnx4buBv+pniUHsSFoD/QvW5B0eu+ObiUpiBu7N/YzUa1VBUpw== 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=3SD4EFe90Lggs8cQz5yURwjH248lNbQoaGblSbtee8k=; b=GJPGSH7l4a/D06JboL3XncY49JYhjUhC0g6xiVI89rIcKS2dhCsno4D2bfq2kfvNsBTJGTwUN+Ji8RuFMcZ1rFmRo9LOou2BRG5ELwmw8TsIQ4UF5btuYZlRdBn/chiYZ5qr1UJJMK9dTOYSFz/2erl0A06zXpfsyEum8RMtYSbUZB+Pjy1PkkmXnwrx5vT/9m0ZX+VXBRJIJFWoK4VwxZDTlGrCcvVbx8x5hvhayQ7PCxZOCxjgj2JjDNnI8aXS620HyuwS7czMci02p0qpx1xntLz0s7rN2QYO5KFTHUgeO/zITks8I6XPGNSsPi9SeTqIRQkXoCSqJmwo62WHWQ== 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 12:01:24 +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/mm: don't open-code p2m_is_pod() 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 , Kevin Tian , Jun Nakajima , Tim Deegan References: In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS9PR06CA0161.eurprd06.prod.outlook.com (2603:10a6:20b:45c::11) 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: 63740cbd-078e-4d64-8644-08d9b4b9eb2c X-MS-TrafficTypeDiagnostic: VI1PR04MB5743: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:626; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sctOP0GClj1bhtYr4E4vKPV5WjgylqRk46Kf8+tQfcW4EI13mtiyuXCC7HtmgZ0jdMg5oVubJKK4+z01Sho7IeIAoMDh6AOkVZy0KzbFvdEnLBZnRuTbJCRIyIbTgFZI85PAyQzhT7lEEeIt3dqWJfDLvpHQF9itRblsJnjH3WPwqsMiJGZct071I2dLmk2s0Esl+XRMHT9elQTh1A3LSfh9L9EXyfW6WckDfVIN/I9SAEI7ugjQ515iXulLc5uLCuR8ynbZ+Gw8ofra99tlegH2gkOFEaNvBMz1nsMk+TsGiwQwcbw4McHd4pwFhTFe7HCU+Bo4iv0JGksg6xu/MbUEXxX9dDneE5AZaWIE0NFMcKqbik1XHhbq0NxwNgGAk+J7TXgYrspBeThPkIpilolG7dhGG/euOLHlz89Xz/ajKkgnP7zG8/qxGp2npyZ9sQaYx4gD/Y1JmEYLszcqEqxlOzOGkJjhRyFOputcdNz7IgJBNfgjxgNj5WgJ1yzx/QVb1wYyhjjN6wqCzFfOTtpApTrB5KAoltCrZ4ZmH62j55ieCCBdorIbjhJ/UMT2BOECaDi6hkg0zzasb9m2dr96+eymn9a7W0cHugK9wlQqC7nj2Pzv1t56XlGsm72c5uKto982rqFv6AlDBeyJJWHECBcROCKWcwaUEKe2VTPuwDZ+e6gUI1Rr1nYhm2EfVyXBRs7J9bMTs3I/gD8PBvZV1MwvBlTDi3MvHKag5ikFdmv+fVz5ifISXLo2oFLJ6AR+q51/XXZaBbUjrEy+/j+11s5NXOeAa6SuPDhjqCU= 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)(8936002)(16576012)(316002)(36756003)(6916009)(31686004)(66476007)(66946007)(83380400001)(38100700002)(31696002)(5660300002)(2616005)(956004)(54906003)(6486002)(186003)(86362001)(26005)(508600001)(4326008)(8676002)(66556008)(45980500001)(43740500002)(473944003)(414714003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ams2eURQejQ3Rk54bWxoNitOdjNCOHdCOE9xNExicXhRL3NKdTlBblA5d2xK?= =?utf-8?B?UDVvTENPeklYemgyUWNpdUdNVHhuMHJsYnR1REtpdE1SdEJqaXBFTWh1RXJP?= =?utf-8?B?WEozQzVCMFAwemxjOWZmRVArWVgycUZyNnEzZ0RYbXVpM0VJc1B5RjZrY0FS?= =?utf-8?B?cWxUVU5YQnI5NkVEOS9USjlhMVR4Uzl1WjhBUnlHdUk3eDcvNE82US9hQkpO?= =?utf-8?B?ZlYva1JXWmhhZEJLRzNTNUoyekRTWVRpemlRYzA1YnQrTEFFNmhyVVFMS1B0?= =?utf-8?B?WDgzV25LYTlWeFd0Q1ordXVaSldFSGo0aDl3aUlveW5uK2VGWlluWmFKeERQ?= =?utf-8?B?TWx2V3h6N2FJUDU1Q0x4U1YybjJ5QXk2NGZNT3VuUTBzVU8xSnd0NmRCZ2xq?= =?utf-8?B?dmorSHBwSGdSRURUNWxqaW55bW5hQllleUt6S3FzTmxUMTNYQmIvdFU4TFhi?= =?utf-8?B?UXFXS01URmx4LzNZQU56dFRaLzNqdkowV0pjdkVMQmVGRVZuVnlOOXQxek1i?= =?utf-8?B?bHBGM2VYalV4SlBscElMYlZaU3UycWtjSGJscUJtZVo2OTRlUTFpQW1QSjZl?= =?utf-8?B?STNRYVlZUWcyeUk3WWFtY1BUcGxRN2FRaDQ1TktUSDc3SmtlNVUvckRwbzF6?= =?utf-8?B?ckpMNVU2TVBtRm0rSGliU2tqVHN6U1cwM2JrYUlRekI5VmFma1NLUzNnVUZ5?= =?utf-8?B?RlJYQlJlSUw0UnZwM1ZzemtONmhMYUJnb2FSOVZiSzNVNGQ5cGR3U3FiaXpU?= =?utf-8?B?dmh2bnVMZWNsNmR2UzlNZGI1Mkt0cStrbWt5NDk2aEJ5a29MTG9nMzhDb3JK?= =?utf-8?B?c0lQUExBM1pTRE9pdUxhdTlFY3lKaU5kZkZKSUt5dVlwZWdyKzlHRFYzL2pl?= =?utf-8?B?NnVvUS9KV1V5WFpGVWpScVp1eHZxY05CTjRNTVcyRDg1cnUvcDgzRWg0OWNS?= =?utf-8?B?ZFMzeDkyRUNKRlgrL3FSSE1XS3Rid1ZtbzRodW9BM2lLTkNvUlRHZnBZcnoy?= =?utf-8?B?N01NVVQxNDVmeitoeTdleDlGbU83eXVuZUtkeEpEeFRJVjJzOVRLQS9FcCtG?= =?utf-8?B?QjFRb1VmdWlCYjZJUVBrUUhDNmVPdmZQU0lybmI2RjU5dVpSZm9icHFib0Z5?= =?utf-8?B?RlVVenlta3RlREM0dzUwRnhRNE9vR0gyUnEvcFFDdWNabXBaSFYxWmdqUUd3?= =?utf-8?B?eVZDNmxzQ2xuYmhIdVpFV2lScUNaUklkKzdqMUFZRGlOc2JBY2dvc3Q2WmFX?= =?utf-8?B?MXREOENzSWJSdHRqMUxWMkxlLzA2S3ljbHVEdGRsd1RBNmRUV3ZsVkVGV0Ry?= =?utf-8?B?c2RXVnRBS2FJOE9QdGpTcDh4L1d5U21uMTdnaWtnM3RuRXBLeG9BU3ZmNURX?= =?utf-8?B?UHNNNDNRcVM2UkFoK1lUYzZnclhuaVZualBZaW5WQ2pOTnZUUEdJNUpCRUNj?= =?utf-8?B?bkRvQVNPVmNUN2ZLZFBaaWpzeU85ckVDMTJkdWdydUdwc0krYUd1eUVaNkFn?= =?utf-8?B?SkE1M1UvM2FTTmhWeUc3dXNQQkJYSGd1QVVoaGVSNnUyRmhZdGVpMzE5TmRY?= =?utf-8?B?WFRhakU1RDRCM0pkbFVwZjByaEdSdXluNEpMRzBYZHduLzNERGZqSTYvdjND?= =?utf-8?B?T09MK1RRNFNYVUNXcXBxRXFRekFmU1BlUWZyZ3pPU1RTZTVteDNhSWdpVGhN?= =?utf-8?B?RWVMSHREdElFaUl6ZjE1RWxQVnU4ZFFBNG1YVFZ4ZVZwNU1JNVFQTld6ME5F?= =?utf-8?B?MEp3M3dmSlpNYXZMVThqUktPTzJmTStTTjlFTmJXcXZFUUpYUy8wemROanlQ?= =?utf-8?B?SXlJR295WCswTjUraUFKTm9scUVLSFpmbThmdmNGQU1jNEVtaWppbVFjYmJj?= =?utf-8?B?YkY0NU8veldHTTVjVFhFVUgyckpRRHhCeU1WaWhPbXRoUTJFSW1YdW1VN2wx?= =?utf-8?B?WWdlSHBBamUrVmc5MUZ3d0FpbWQ1bW1KTld3UlF3UWZZaHhiaThZVUNmcjFY?= =?utf-8?B?RHpGTVhVMkxZT0Jwbkszbm9sT1dmMmkxQytGVmNLNlgyYjJoSCtBcEdZYzdk?= =?utf-8?B?NzEreE9WWHd5Qkk4bG81YUNkc24vek5VcktZNjY3ZE9WdGtGOFhpdW1wN0Ux?= =?utf-8?B?SkI4S2FwYmlXSE94MnIzK3JYMk5aRVRWaUVsbFpIZEFadVVxMnpHRzlEODZZ?= =?utf-8?Q?NL07SubK8sCtFFmBDBuqWaw=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63740cbd-078e-4d64-8644-08d9b4b9eb2c X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2021 11:01:25.8308 (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: vDnjOLDiHA/MRvDC2mvPHe1EiUmSVQ1Si7tqVLl68a9ce7wBDeaRn07C5OmPJ+W9k69h6g8ny33TevS99wQGTQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5743 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1638356512273100001 Content-Type: text/plain; charset="utf-8" Replace all comparisons against p2m_populate_on_demand (outside of switch() statements) with the designated predicate. Signed-off-by: Jan Beulich Acked-by: Tim Deegan Reviewed-by: Andrew Cooper --- a/xen/arch/x86/mm/p2m-ept.c +++ b/xen/arch/x86/mm/p2m-ept.c @@ -344,7 +344,7 @@ static int ept_next_level(struct p2m_dom { int rc; =20 - if ( e.sa_p2mt =3D=3D p2m_populate_on_demand ) + if ( p2m_is_pod(e.sa_p2mt) ) return GUEST_TABLE_POD_PAGE; =20 if ( read_only ) @@ -1071,7 +1071,7 @@ static mfn_t ept_get_entry(struct p2m_do index =3D gfn_remainder >> (i * EPT_TABLE_ORDER); ept_entry =3D table + index; =20 - if ( ept_entry->sa_p2mt =3D=3D p2m_populate_on_demand ) + if ( p2m_is_pod(ept_entry->sa_p2mt) ) { if ( !(q & P2M_ALLOC) ) { @@ -1478,7 +1478,7 @@ static void ept_dump_p2m_table(unsigned ept_entry =3D table + (gfn_remainder >> order); if ( ret !=3D GUEST_TABLE_MAP_FAILED && is_epte_valid(ept_entr= y) ) { - if ( ept_entry->sa_p2mt =3D=3D p2m_populate_on_demand ) + if ( p2m_is_pod(ept_entry->sa_p2mt) ) printk("gfn: %13lx order: %2d PoD\n", gfn, order); else printk("gfn: %13lx order: %2d mfn: %13lx %c%c%c %c%c%c= \n", --- a/xen/arch/x86/mm/p2m-pod.c +++ b/xen/arch/x86/mm/p2m-pod.c @@ -543,7 +543,7 @@ decrease_reservation(struct domain *d, g =20 p2m->get_entry(p2m, gfn_add(gfn, i), &t, &a, 0, &cur_order, NULL); n =3D 1UL << min(order, cur_order); - if ( t =3D=3D p2m_populate_on_demand ) + if ( p2m_is_pod(t) ) pod +=3D n; else if ( p2m_is_ram(t) ) ram +=3D n; @@ -618,7 +618,7 @@ decrease_reservation(struct domain *d, g if ( order < cur_order ) cur_order =3D order; n =3D 1UL << cur_order; - if ( t =3D=3D p2m_populate_on_demand ) + if ( p2m_is_pod(t) ) { /* This shouldn't be able to fail */ if ( p2m_set_entry(p2m, gfn_add(gfn, i), INVALID_MFN, cur_orde= r, @@ -1332,7 +1332,7 @@ mark_populate_on_demand(struct domain *d =20 p2m->get_entry(p2m, gfn_add(gfn, i), &ot, &a, 0, &cur_order, NULL); n =3D 1UL << min(order, cur_order); - if ( ot =3D=3D p2m_populate_on_demand ) + if ( p2m_is_pod(ot) ) { /* Count how many PoD entries we'll be replacing if successful= */ pod_count +=3D n; --- a/xen/arch/x86/mm/p2m-pt.c +++ b/xen/arch/x86/mm/p2m-pt.c @@ -841,7 +841,7 @@ pod_retry_l3: flags =3D l3e_get_flags(*l3e); if ( !(flags & _PAGE_PRESENT) ) { - if ( p2m_flags_to_type(flags) =3D=3D p2m_populate_on_demand ) + if ( p2m_is_pod(p2m_flags_to_type(flags)) ) { if ( q & P2M_ALLOC ) { @@ -884,7 +884,7 @@ pod_retry_l2: if ( !(flags & _PAGE_PRESENT) ) { /* PoD: Try to populate a 2-meg chunk */ - if ( p2m_flags_to_type(flags) =3D=3D p2m_populate_on_demand ) + if ( p2m_is_pod(p2m_flags_to_type(flags)) ) { if ( q & P2M_ALLOC ) { if ( p2m_pod_demand_populate(p2m, gfn_, PAGE_ORDER_2M) ) @@ -923,7 +923,7 @@ pod_retry_l1: if ( !(flags & _PAGE_PRESENT) && !p2m_is_paging(l1t) ) { /* PoD: Try to populate */ - if ( l1t =3D=3D p2m_populate_on_demand ) + if ( p2m_is_pod(l1t) ) { if ( q & P2M_ALLOC ) { if ( p2m_pod_demand_populate(p2m, gfn_, PAGE_ORDER_4K) ) @@ -1094,8 +1094,7 @@ static long p2m_pt_audit_p2m(struct p2m_ if ( !(l2e_get_flags(l2e[i2]) & _PAGE_PRESENT) ) { if ( (l2e_get_flags(l2e[i2]) & _PAGE_PSE) - && ( p2m_flags_to_type(l2e_get_flags(l2e[i2])) - =3D=3D p2m_populate_on_demand ) ) + && p2m_is_pod(p2m_flags_to_type(l2e_get_flags= (l2e[i2]))) ) entry_count+=3DSUPERPAGE_PAGES; gfn +=3D 1 << (L2_PAGETABLE_SHIFT - PAGE_SHIFT); continue; @@ -1132,7 +1131,7 @@ static long p2m_pt_audit_p2m(struct p2m_ type =3D p2m_flags_to_type(l1e_get_flags(l1e[i1])); if ( !(l1e_get_flags(l1e[i1]) & _PAGE_PRESENT) ) { - if ( type =3D=3D p2m_populate_on_demand ) + if ( p2m_is_pod(type) ) entry_count++; continue; } --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -992,7 +992,7 @@ guest_physmap_add_entry(struct domain *d ASSERT(mfn_valid(omfn)); set_gpfn_from_mfn(mfn_x(omfn), INVALID_M2P_ENTRY); } - else if ( ot =3D=3D p2m_populate_on_demand ) + else if ( p2m_is_pod(ot) ) { /* Count how man PoD entries we'll be replacing if successful = */ pod_count++; --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -1476,7 +1476,7 @@ static int validate_gl4e(struct vcpu *v, mfn_t gl3mfn =3D get_gfn_query_unlocked(d, gfn_x(gl3gfn), &p2mt); if ( p2m_is_ram(p2mt) ) sl3mfn =3D get_shadow_status(d, gl3mfn, SH_type_l3_shadow); - else if ( p2mt !=3D p2m_populate_on_demand ) + else if ( !p2m_is_pod(p2mt) ) result |=3D SHADOW_SET_ERROR; =20 #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC ) @@ -1535,7 +1535,7 @@ static int validate_gl3e(struct vcpu *v, mfn_t gl2mfn =3D get_gfn_query_unlocked(d, gfn_x(gl2gfn), &p2mt); if ( p2m_is_ram(p2mt) ) sl2mfn =3D get_shadow_status(d, gl2mfn, SH_type_l2_shadow); - else if ( p2mt !=3D p2m_populate_on_demand ) + else if ( !p2m_is_pod(p2mt) ) result |=3D SHADOW_SET_ERROR; =20 #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC ) @@ -1586,7 +1586,7 @@ static int validate_gl2e(struct vcpu *v, mfn_t gl1mfn =3D get_gfn_query_unlocked(d, gfn_x(gl1gfn), &p2m= t); if ( p2m_is_ram(p2mt) ) sl1mfn =3D get_shadow_status(d, gl1mfn, SH_type_l1_shadow); - else if ( p2mt !=3D p2m_populate_on_demand ) + else if ( !p2m_is_pod(p2mt) ) result |=3D SHADOW_SET_ERROR; } } From nobody Wed May 1 22:58:43 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=1638356543; cv=pass; d=zohomail.com; s=zohoarc; b=ThviqMHTVFBNw9vuZrD/XEV3RBT0jRFL7IrZ9Q30rmgmrb5GO70rn8G3A4vH00y5oclwJ4fWQNTY4GNIodNvAk6SxJXJDIzddHMssAFM4yeqU2CFwmaUCKbrnmbLuPcbYme5LhRxI/IhHe2NkObXc9kAr9/QHgJ3dZOSzzK1YfU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638356543; 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=ivkhnbVo3ZCtO6SLZl0Vo9tL62ytjpIHAIb5DwwD2SU=; b=LD6Hmc8SGKYms2kB1I4Y2UOE0njRPHBTQrIYmoeeSQLJbHuVg1cf6VIg8R3QTM8Kg5GRcoqmsg7knVuwuPKearqLmMvqs0ARYFV1kmHoy2o8vvFwKqtOryuZO2dxZWeW/zYyOVB8aAsVy5l22OErVur81xcnE5TXLa0ZmqFYkVw= 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 1638356543326673.0187912992709; Wed, 1 Dec 2021 03:02:23 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.235882.409151 (Exim 4.92) (envelope-from ) id 1msNNI-0005aT-SS; Wed, 01 Dec 2021 11:02:08 +0000 Received: by outflank-mailman (output) from mailman id 235882.409151; Wed, 01 Dec 2021 11:02:08 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1msNNI-0005aK-OI; Wed, 01 Dec 2021 11:02:08 +0000 Received: by outflank-mailman (input) for mailman id 235882; Wed, 01 Dec 2021 11:02:07 +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 1msNNG-000517-RJ for xen-devel@lists.xenproject.org; Wed, 01 Dec 2021 11:02:07 +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 92bfb4eb-5294-11ec-b945-1df2895da90e; Wed, 01 Dec 2021 11:51:01 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03lp2059.outbound.protection.outlook.com [104.47.8.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-2-UvxS7umGOc2QSbh9K0jT4A-1; Wed, 01 Dec 2021 12:02:05 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB5743.eurprd04.prod.outlook.com (2603:10a6:803:e0::26) 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 11:02:04 +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 11:02:04 +0000 Received: from [10.156.60.236] (37.24.206.209) by AS9PR06CA0176.eurprd06.prod.outlook.com (2603:10a6:20b:45c::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11 via Frontend Transport; Wed, 1 Dec 2021 11:02:03 +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: 92bfb4eb-5294-11ec-b945-1df2895da90e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1638356525; 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=ivkhnbVo3ZCtO6SLZl0Vo9tL62ytjpIHAIb5DwwD2SU=; b=lqKO+gWfBDOP+FH+WfU8TKHNpTSlSdNcGhYOxHwtRVaw5xcc9uZIWz7Y3SJ1FEkWn5ga0g AQf78LCkwQDUdRlldQNv/1v0k+RuakNYWDcd43DChZMU0rZLXUUxiBHEmlgJG/WOv99Gm5 fjLbXihFf+dUU8kGCZd/G5kUBfC4dKM= X-MC-Unique: UvxS7umGOc2QSbh9K0jT4A-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cpqTe3gdzd7o0uiY5ZdnN56bEskD5gwkMKpHARtNPmGMzx6QgPv8qCJzS4h5I8yEsc4R8S9wNuOZ9XnWYjuqkxl6mFEUKTDeEUyBOfIPBE1hQBKrKzj2Zx+Ape6Ha3XsqK3R8bByd//U23mPJK8FUoS7ZjXNeGQwbMRZZvZgWQds8oUwG2SBRh9LZnF5c0ofFe6PZ4Wtspva9tJdozN1zOu3caJHqKldby8Ts7PTxPpddEz0a1Gxst+H0xHQPBfg+RD8OtlXPtTDjrtwu3w0IxrPRHJN3XJk5MVlIwfG/Zs36H/lKP8rsHZ+e19KsHJd4i0YT4LUvKejhxdBELomjQ== 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=ivkhnbVo3ZCtO6SLZl0Vo9tL62ytjpIHAIb5DwwD2SU=; b=Zuyc23ovwhDkp2BkGyoRLyrwsVdX7ypqsBBcqcWXadTsmV7LVqnADQ/p9NmV4T1V0F8mWZ/V6f9RJopgyWfZ3gF7PcUR1+jnwDK2ogxzFbXXfFuS+eBhH08Jg3pQsrFQMIVDNUDPQUoqCXISeS+MjkIXYjIymujELKV3hePA9lu5Rrg56/E+ixU6CSqCc4UoXbjBQAa+0TWGzGcKgot4XrlUbuMdDGfVyYqRiOyhui052Poa7PD7+hduWJB46EehtC6cbEr4YKtG4DtQuUl2sAA54JiLtTxrztGPB6RF9SGUCTX/Ry5et/G3N+vrpLyJ/2T4DspmhpfCoj8tfgTDfw== 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 12:02:02 +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/PoD: move increment of entry count 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: AS9PR06CA0176.eurprd06.prod.outlook.com (2603:10a6:20b:45c::14) 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: d86fb32f-bcdf-4551-b1b1-08d9b4ba0200 X-MS-TrafficTypeDiagnostic: VI1PR04MB5743: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yZFGFSP4dr64oFGenfI1p9dKJ6IrHd81hFtyNjLrR3+heI9NpNWqOPA2Moxg+X+hexOWoZ/M1UUpow+C6Ur52wxU0IIjkq4PCnoM6+TNn25fvH4d632o4c+qfxdVWSFowjHsqOXxQi8v0+EvYU4OmhI4OwQaJm2N6UeMrOr0TWMbsV979PMmIhRQvvqi6MI0y6x7cbYt1v5k+VkaAsw0Z6Q9rUmVtj6IR0KPoZrTaNq2Q5mrDDU9tssKhmk1JmUyFb60E2F9D8ygQCk39E0MYLxYvTSmrWZiCkpWeMRYM4D4xqFfCscg7sIXamdJ1sCyEtDo/gey3g2yquUKpx08808k1wMnYnABzoAuks8+SLfepnfdPKK9/xFDdUm+nii5CJSXRmhI5P+jKUNNSfBKTkLR4DYeC4JdJLoNzXGGmEH1GNltjy35O1MJADJJAAXUb8ezVz+ysHXaMHbRQVvu5KJudP2M1Kr4qFRtuTgudBy+qIcH8BmK7+7Iqt91LSnDYbvuOYpuO8cUX3n44Ezt15K/k4IQCugxtxCtDVv8TxSGn8mUMQoFSrMOtdWwQkC2dzJxXB86rxkzo1QWgN0fKkATC/MfsucwP5TqUYMSwx+xTSSVQKB1y0rimSYv1R0Pp8rH0AMSW0hzcKLWfIxOA/VoJsnunyikd/+ilLRg0yEIW/NLrk/DU4JvAXreNpChgmXmN/2Y4oKcAOp4J5lLgPRNLDPJuaS6Gj0xRDQFVRM= 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)(8936002)(16576012)(316002)(36756003)(6916009)(31686004)(66476007)(66946007)(83380400001)(38100700002)(31696002)(5660300002)(2616005)(956004)(54906003)(6486002)(186003)(86362001)(26005)(508600001)(4326008)(8676002)(66556008)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZGMxTmRCQTRtRExCcmNQbDVVand6YjJqaVpkM0MwZWpYT1JsSi90bXJxRURn?= =?utf-8?B?VkM0TVJiUHdDZ1BhVnlEWWhGendRZzNMeTMwbngrRHZ4K2E5SEgrUk9sTGFi?= =?utf-8?B?WXJ6RjBJZWM2bTVZenkxL0p6VXQ2SUJFSnlwTUUzUm5xdndwZktGeTFXYnBs?= =?utf-8?B?bW1XN3VuUUdTeEVISWJhbGVzMFJrVjRkN3F3ZG5XUm1QRXdVVFd2ZHZlNXcr?= =?utf-8?B?R3N4ci9tS01LNWh6N0R3VFRKNEdCbmE0YTFEcFNrZDNWQTEzd2NOMk0vemFa?= =?utf-8?B?ZEgvclQ1QTZNVXhxeGgyYVM1ZVlFaU1jdU5rRUhOUVpSbjdvOFVrL21yWWR6?= =?utf-8?B?K01CWUhRMUE1OWJMc2RKWmlZMVVQek5XaHpUYWdHWG9pOFhMK3U5UVF3bGJM?= =?utf-8?B?R1F0ajRnYklTTWFuL1JlOUJhL2sxeDBDVjk4dDZYSzFhZDJOeE9uNDhJRUIv?= =?utf-8?B?aEVUaklBWElpVUZRdHF3dGZnWG5uY0piYnRlTzJlbVJzYXVsSDV4bVZiOTJo?= =?utf-8?B?RzY2K3FacXFxUlhjNnhPblBkd0dwcUJVcUVsbWgwZVZlM2REcXF3dE9PbVJE?= =?utf-8?B?QlRwWkJncVZwc25EaEt1cE5OY1AwNTZ5d2drWVFCZTNvN0srSTdYMWhCUzZX?= =?utf-8?B?cUpGRkpPVGJzV0xaWC84Vm1LMkQ1Q0pQK2Q0WVg1YmlCTXN3MUx3S3hUR05N?= =?utf-8?B?NkJPNk44SnZhcENtdTR6QWtBVXVsTm0wcGc0VW1yWEUrWkRuTnJhNUZmeGh0?= =?utf-8?B?eWl5Y1lFSkhkTnMxcEZwdnVBVlJQVFJqd3NKRGNBRGJzbFEzT1dJam03QU52?= =?utf-8?B?SFJaNTJ5czZRUTNIMGFIZ3ovMGw1UVp0THUzekg4TkJKN3BWYmpoWW52VGda?= =?utf-8?B?eDNJaUpBSCtCNFhFR1ZuZ2lMZVg4NjQxUjhBeTJVYmE3YXlVckRKZmFCaFky?= =?utf-8?B?ZmpYcGkvMnBiT0RZYzhId3p3YzM2RGxNV1pmR1l4YjJmbG44VlpDSUhXV0hT?= =?utf-8?B?cmltVE9KeWFHY284aUZzZmFMS2tscjJVQTdMbTM1emtyYnRxTXhlLzFLbHU3?= =?utf-8?B?clpNR05nTWp3RHFsNk9PNWwxd3R0b2lBOXl2L05NQ3BNZXhMcVlQbUpBZVIv?= =?utf-8?B?bHcrOXFrRGl2cXAxRklqcnhNWGpWSjF1cmdzNXMwVWtNdmhKVWhPSU5vaFRr?= =?utf-8?B?ZWx2N1l1SmFBTzNWYU9WYlRJME9CWHBZUjVKQ2J5ZjVUOXVsNUFoRW5YR1Nm?= =?utf-8?B?ejRHTUM0c0FvRW12MytEbXpUakdwNytRb1pLOGpwMUdoZm1sMWhpNmM4WUJa?= =?utf-8?B?U1pxUnFCU0tzSzBJTXVBVmN2ZjMvdHY5RmtVSStGL3lCTWFnN094NThDTk9B?= =?utf-8?B?anNreThhZlBHTWpKSWN5blRXU2dVb3JJUmdLTFErMUIwaTZVZmlxQ1RDM0Nn?= =?utf-8?B?ZklpUDZJUnRMajQ2WkVZUGM2eDIyRGtPZk1FQ0NGdEN4WjFYOEhrZm04OC9z?= =?utf-8?B?UlcwNkRtRTRHZXBaOS93UkpDR05VTmUrckpkbzZZY3I2VWxnMHp3L3pudHpk?= =?utf-8?B?ejFYNUNvTVdQcFBleDMxRUFnS2w1NUk4WDNCUWN0UXhEcCtSU3JMeE5mL3k3?= =?utf-8?B?akNYaHptVHBELzc4anJJTDZmbVhhbU1BZEhFOVUrMVgySHRyV3lveWJxdFVn?= =?utf-8?B?ZklXeFBjRHFWRlk0V2hxWUdpeWVkR09XRFZQMzRjWlNlLzJCYitGaFVkM0dO?= =?utf-8?B?Qmo3T21hRkNQRWh1U1p1VE8wUWIrOW1LOHN3TVZkV3BwV1NsTVRiTzd3c1NU?= =?utf-8?B?WElmQ2hwelpoWVRsaTZyN2pSTVNVbDhzREpuclFkM0JOdW93T3ZEOU9wMVc3?= =?utf-8?B?RWIzbVBTMEwrSmNKTFMzZGNhYTlzZzdJWHJYT1Z4UjRLeFdQVWZ1M29qZVV5?= =?utf-8?B?SkRZcU13TW50V1Vva2dTOVBJc1p3MWdublFHaDdDSVRFNlVMSWpkTmkyRFYr?= =?utf-8?B?ZmdXdkNHcHM2Y256Zmx4Z0ZqcG01U3ptYWxkTGovWnJIblhNcnAyU0FqZVNq?= =?utf-8?B?clcwQXpjdElqZk5wZmRtMUJUKzJEN21xMjB5c3ZFVmtPVUgwZlo3RXNmdlZi?= =?utf-8?B?VGJaZDBCRlhoMHlkWTFsdlN4VGZYWDFtMUdqLzIzTENlRFdybFhPaWI4azh0?= =?utf-8?Q?jRE3K2/QY6Ep1UcufiJbDho=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d86fb32f-bcdf-4551-b1b1-08d9b4ba0200 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2021 11:02:04.1151 (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: uGPST0ygLERJYiuaYAd9+uo4laZ0hLvPExHaGbF+DGp29d5mt9lHVdqbT+BOccHcRo6DMx3358yDrvrW0Ce5AQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5743 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1638356545401100001 Content-Type: text/plain; charset="utf-8" When not holding the PoD lock across the entire region covering P2M update and stats update, the entry count should indicate too large a value in preference to a too small one, to avoid functions bailing early when they find the count is zero. Hence increments should happen ahead of P2M updates, while decrements should happen only after. Deal with the one place where this hasn't been the case yet. Signed-off-by: Jan Beulich --- a/xen/arch/x86/mm/p2m-pod.c +++ b/xen/arch/x86/mm/p2m-pod.c @@ -1345,19 +1345,15 @@ mark_populate_on_demand(struct domain *d } } =20 + pod_lock(p2m); + p2m->pod.entry_count +=3D (1UL << order) - pod_count; + pod_unlock(p2m); + /* Now, actually do the two-way mapping */ rc =3D p2m_set_entry(p2m, gfn, INVALID_MFN, order, p2m_populate_on_demand, p2m->default_access); if ( rc =3D=3D 0 ) - { - pod_lock(p2m); - p2m->pod.entry_count +=3D 1UL << order; - p2m->pod.entry_count -=3D pod_count; - BUG_ON(p2m->pod.entry_count < 0); - pod_unlock(p2m); - ioreq_request_mapcache_invalidate(d); - } else if ( order ) { /* @@ -1369,6 +1365,13 @@ mark_populate_on_demand(struct domain *d d, gfn_l, order, rc); domain_crash(d); } + else if ( !pod_count ) + { + pod_lock(p2m); + BUG_ON(!p2m->pod.entry_count); + --p2m->pod.entry_count; + pod_unlock(p2m); + } =20 out: gfn_unlock(p2m, gfn, order); When not holding the PoD lock across the entire region covering P2M update and stats update, the entry count should indicate too large a value in preference to a too small one, to avoid functions bailing early when they find the count is zero. Hence increments should happen ahead of P2M updates, while decrements should happen only after. Deal with the one place where this hasn't been the case yet. Signed-off-by: Jan Beulich --- a/xen/arch/x86/mm/p2m-pod.c +++ b/xen/arch/x86/mm/p2m-pod.c @@ -1345,19 +1345,15 @@ mark_populate_on_demand(struct domain *d } } =20 + pod_lock(p2m); + p2m->pod.entry_count +=3D (1UL << order) - pod_count; + pod_unlock(p2m); + /* Now, actually do the two-way mapping */ rc =3D p2m_set_entry(p2m, gfn, INVALID_MFN, order, p2m_populate_on_demand, p2m->default_access); if ( rc =3D=3D 0 ) - { - pod_lock(p2m); - p2m->pod.entry_count +=3D 1UL << order; - p2m->pod.entry_count -=3D pod_count; - BUG_ON(p2m->pod.entry_count < 0); - pod_unlock(p2m); - ioreq_request_mapcache_invalidate(d); - } else if ( order ) { /* @@ -1369,6 +1365,13 @@ mark_populate_on_demand(struct domain *d d, gfn_l, order, rc); domain_crash(d); } + else if ( !pod_count ) + { + pod_lock(p2m); + BUG_ON(!p2m->pod.entry_count); + --p2m->pod.entry_count; + pod_unlock(p2m); + } =20 out: gfn_unlock(p2m, gfn, order); From nobody Wed May 1 22:58:43 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=1638359556; cv=pass; d=zohomail.com; s=zohoarc; b=Uql30/u1vnEJoNQbZ2T8NO44kbDZrO2yOtjC4VzHIU/if/KdRnAvGC93uzUqlkadmWu2w08RGe9Wwb0R0SPlezHuRqv6qmSVT0Cwo6Jvm3s/5xRMtl2aVP7zKx7S+v45LV3yq+i2f8RHqaBbamMFazdk07U1UayMs6iXGlkhNrE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1638359556; 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=jFiFW1A5HX6NQdugw21gayywBYK+vQSEiTp/bOCwvUk=; b=ixS0K67R1BaWaPgBlYXNIUq2yVeitY3+vAg1FVMws6kbrY0CZTUh1cZS1PsFe2LUaWorql67xIpbffUM0l3GLFIBpDYZbUZgceufpkykKTsyHBWaYQMz0/NBtHyCAAvAOW9QRP7+mAmqA3drL4VJ24nnf0zkpQPN1MStCoBQcgc= 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 1638359556408216.42220437250137; Wed, 1 Dec 2021 03:52:36 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.235962.409296 (Exim 4.92) (envelope-from ) id 1msO9o-0001ao-0J; Wed, 01 Dec 2021 11:52:16 +0000 Received: by outflank-mailman (output) from mailman id 235962.409296; Wed, 01 Dec 2021 11:52:15 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1msO9n-0001ag-SE; Wed, 01 Dec 2021 11:52:15 +0000 Received: by outflank-mailman (input) for mailman id 235962; Wed, 01 Dec 2021 11:52:14 +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 1msO9m-0001aD-LK for xen-devel@lists.xenproject.org; Wed, 01 Dec 2021 11:52:14 +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 1f99ea94-529d-11ec-976b-d102b41d0961; Wed, 01 Dec 2021 12:52:13 +0100 (CET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2110.outbound.protection.outlook.com [104.47.17.110]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-1-8Sv8aH-JMdaPmLWtdMHVfg-1; Wed, 01 Dec 2021 12:52:12 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB5598.eurprd04.prod.outlook.com (2603:10a6:803:e9::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 11:52:11 +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 11:52:11 +0000 Received: from [10.156.60.236] (37.24.206.209) by AM6P195CA0058.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::35) 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 11:52:10 +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: 1f99ea94-529d-11ec-976b-d102b41d0961 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1638359533; 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=jFiFW1A5HX6NQdugw21gayywBYK+vQSEiTp/bOCwvUk=; b=Mvij0ji9DSMjxqrYNiCw6JzfAYaIWYg4lozKY5IymnLfuTSdCrnBFvS9lmjQyRn5+uIGOV XeCycDq3yMrbg5xiUfccp7uaamd9OLLOu+sdO6iddaXCCP0KFUvSoOLPNpnWvjGgNGXSQY 1RdWeMbqwNDWizSnaNWZzrA4YFRYw8c= X-MC-Unique: 8Sv8aH-JMdaPmLWtdMHVfg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g8+QdujFIaN3lpbRGY9kl0J35q/jeHmqhfiBUDkOpHJR4ztwbhfJs/LXIfXZoI+LeoAd4Oz0Daj0iLCx3Ub1RkTZjhskgo0QJej2IdCvlW2Rc8c6gkEUaDF8E6l7xmpSFLmY+EYQHz4FiqUdSRfvcdYx2Mur8q6J4CFMdsiyI8AuGQrFeN7sWveWCQweNTxRuEvJ2ihUNFpll03KC9sKmBeuedD+/TdjhfS65olDddystgrfr3Zv1sLJwtPOo/HD2WyN+OkX3xrcOKpfEqude/8NlKTBqsejBMVnzPa/BoT19c3+CEU4Y06axZ2RuIGQR/fbPlPHBbxTADP60UO0yA== 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=jFiFW1A5HX6NQdugw21gayywBYK+vQSEiTp/bOCwvUk=; b=kzQHidR1fSJWaFpb08kVjAvMnorPNx54ervEN7SBfGf83KY21CtqU4oQ+2j24w+zufeC2RC5sjcTylVCaDksWt04domeoehGIJg4Mk92Aa6+lLEzkEj7zHnxgxZn7mmMaWijpop3OhNC5KVLHQr6RKORwZvPTZlNYa/9u5hh1D3kwCq0uUkrqwwyGSGDwxKtsrc13xrGPDaM44w4N/kHVSuLaAX/cCJJ8eWIuVrAd6c9k0z1UFrlLZ9qcobFfNeQ9092JB91Y6uGP9/bq17H4dOcHBNt4xiTgoac4sfs8Rd72of8ua9qwGvDnUgiy/7XZb+RbN+EjDZmcEIS+PNHrQ== 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 12:52:08 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 From: Jan Beulich Subject: [PATCH 2/2] x86/PoD: move increment of entry count To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , George Dunlap References: Content-Language: en-US In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6P195CA0058.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:87::35) 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: c27536ab-408f-4c8a-2af3-08d9b4c10229 X-MS-TrafficTypeDiagnostic: VI1PR04MB5598: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MSY9GOsxx4vAmZ7TZnoSztFFdyXAc9sUATNaauHB50L5kOc18ilYGvkUuw172ai9PMMsiO4Oea7PFP5AJVFbDcGeD5I9FX4wxxDgk+bFi8V41OWD5u5D/R8ncpYmbMMllBRyE8gpkclIHVICdxNIvea8jXChCx6vGWDTHxNX+A5wqt/+kdjIZqGeJjkAiYzY9oRNLmpVBHOnAPl7zo5Pp3ejboqujiZypAy6mdG0Qb7ysyk7qqWWYvmmgSQ80YxgTvSGvKSENmtppRD2VWXd1qXYHRJI+J35bkilgCpTRMxDE7i/PMumVIEcjSZ/3zQFY198aoGuVSpQD4k5X7ybyuv8zVLFbyMkJHqZDVnpJvmH4gtRuWHrsmlwy2CT7oJK9UhrldzbXRIACGaMfkDXvPlMsDdS2X5FyXmp0UCVeNZlV4C5H9xYsqeh5O3eGDGnERG1F2NmLuXm0yHUcuwSTlCEEcrIs8n1lVaX/JUE1EV8cfNm/ydNGEsyeTzEoaAF4714xfFuR255h98DFq7I8WvR7fpFBB82dN2AK+ogYKgwX/dQRhWpz6PFdeKTD3svGJCOONBmbOrO+GuyG+7sEEmdDW8bXdWPK+GVM6lhLfR2h+zSn2y80kjyxwIC3yHiYu4+TciDUkZutbXNi/p8phEcprbGizX9SbxgS+/m5otr49HXujkK9o2nr2C2NBxPPUHzALrlKg2jtF87hn353sgV5lB4b+J2oZ7xts8KuDdyHEtSlePdbZtkPFHAW186 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)(8936002)(8676002)(66946007)(66556008)(31686004)(66476007)(316002)(2906002)(36756003)(83380400001)(16576012)(186003)(2616005)(6916009)(86362001)(38100700002)(6486002)(31696002)(4326008)(956004)(5660300002)(508600001)(54906003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YVV6dWYyb0c5SVVwQWIyc2twS01ESSthYVd3Yk9WVnVuYnJjbzlGR1FublFE?= =?utf-8?B?M1UzQUJ6QWpDS1hzN2JhWXB5YjA3VEVTall1eVVRekNCMlNKTHcxUUFJSDA0?= =?utf-8?B?WTQydjZuNS9ydHRicmZNNlkxL3BpazNMbWgycHRmdlRQYzhzMzFicEdQR2xZ?= =?utf-8?B?elkvSDFHMHBrQkdtWTBvalN5SlUxb1FhTjNITnJ0QTlaU2ZwcHp2OWR0dk9M?= =?utf-8?B?emg4R1VTaC9WSTB6RVc5NTMzbXZuam5QZWhVM1pPUGRoRS9Cb2l1OGJPdXBG?= =?utf-8?B?STZEbmdnbkhLMlpHdGp0cTQ2Ri9yaks0cmFLclhjRTVUcTNpVnhhVGFQNjNO?= =?utf-8?B?YXczK2lrZTBjQnR5a05oUDJPaFAzWFUwVUgwd243dTdiU01rWm9YbHdidE1C?= =?utf-8?B?U3NWRWJKUTFUVlprNFFseG5vNGUyL0VWbzN5R3NkVmp0eEI1OEY4M1kwTmdw?= =?utf-8?B?NlNpeElrQTgyaUF0enBBWEd2MjFXVDRoYWlsQXp4TmJCTEorZ0R5RUZJeUlK?= =?utf-8?B?eEg1eHhWYmNzMDZRa3NSSGZBNnNTd1J1ZVNxbXVDSllIVGpjaFE1UkRhOGhO?= =?utf-8?B?M2pTUVdyTUJqenh4S0NnbW8yb3VMM1MwNjdNSEFyZUdLUFBldGNrQXU5R2V0?= =?utf-8?B?YkNwa2dtcFBXcXJoOHJkQzhPTkQ3djQrN1V5UktGNUg4NGQ1ZTFuZytsZTk3?= =?utf-8?B?VWlLbXhteUp5dE9qejl2Yk5TeTRmT3JsaHd5VXRtaHc0bWR6UlMwR1pGaHdl?= =?utf-8?B?OU9rK2FNRTVlRWFrQnVXODJ0UndON05Vc1ZYeXIvbDVvMnZ1c3ZCTXEyU1Fj?= =?utf-8?B?a2ZwNW1KNUFVOW1pWjRXdkZpZW8vTmt2K0xUY2IwRzRFdTFNZXBPS3E1ejdK?= =?utf-8?B?ZGg4NFpBQmxEQXpKK3duSGRNWHE1clhvamJ4cldqNkxlWi9TSi8zMTFnTlpG?= =?utf-8?B?MkJsbUR4Vk1nTk0xQTlCQjB5L1dnZ0FxcXBWaS9WSTdDM3ZTSkd6ZlBuVndm?= =?utf-8?B?Slg4d1pSS3N4R2Y3bE9jOWRxN09WYlJOU2NROXJTeHlqNGh6d3VKSG14aXR6?= =?utf-8?B?MWNEd3JuaGUzdktzR2VmeXp0OEhaMDZERXd5Qk4zdEdxQUJhRkV5cS9MWStW?= =?utf-8?B?b1FmVjJSc2haZ3lmRVN5ME00NUdxYlVGVFZQbjIwWGszeWNacFg3aXdHMVJi?= =?utf-8?B?QVcrMkhQbDBOMkc2WCtUdFJMQkNGeUkzbnYralptcHB6OWVOVnppMmZaeHlU?= =?utf-8?B?TTZleVV5QklpN3h1RnRNUXFHcCtkUnl6azltNGkxcE9OV2xxMkNFRE05Tmpp?= =?utf-8?B?c0FnWDVJWU9ocFNkSzIwTGJlUzhHOE5RRzFJTlJCckxYUFh1bjVENCsyT1dm?= =?utf-8?B?UXVxU2JNYVpJc3N2NGJxTkRoRVlFYi9nRjJpQVZFMjBsSEJCN1FYR3U1eGZh?= =?utf-8?B?MDFzNWQ1Yk9SSzh2aU4vSGJ5b2VMb0pFVDk1dVlTY0xDUkZDOTYzNitjS0dQ?= =?utf-8?B?aEgyM0pMdWZZUEZ6eTBxYjRaVFJaVXlFZ0dSWE94ZUk0RjRhMHVRdXdSeS9y?= =?utf-8?B?MERYc0Z0UFdTN2pwclpxdTYweDlmd0FWL2FkMWxQNUdVZUxDamFFRlltSHR3?= =?utf-8?B?TEQxSXJiMGtuTncvK2ZLeTJMNmxnSG5WRmtSTnBrTHZpcE5PTVAxYnBqZWVN?= =?utf-8?B?cVJ6TC9WTG4wQVhMQmJZSFd3OGk4d0hybGZ0UHd3eDhxSGU3TXZrQklJNlhX?= =?utf-8?B?cVVEM0RZeGtLdXVWcVV5WFMvSkhiOXJaMnFiYTZoTzJRcWx0RW1KYlgwN3VP?= =?utf-8?B?Rm5pdEl5ZGw5QTBGQyt1czNBNjlNSEZEaEdua1BmNTdwS1ZneTdNamxJMG1V?= =?utf-8?B?M0c2OWl5UWhjeVNxa0JIOVBVRVkwdHJrcUlNdytNU001eko2bWEydDZkaHBG?= =?utf-8?B?U2ZIVDB4RWtZdlNOWVg3eUV4SmJ4cmFxT2U5S2F6clVKc0dHMGxxQ2pma0pX?= =?utf-8?B?czVoSUxKVzV6RTZLc2Y3RXFRN2t4SXM4YkRVeU1Kb3dtTHZjeUpzWHFBdnZx?= =?utf-8?B?aVBVYnErSVArYWJoWGdQSTBXU2xBcUk2cmZmUEhiWEh0TGhkeVh1Z0VlM2lG?= =?utf-8?B?K1poTlB3YlRDWW1Ib1BjditTWHVWbjI5MENCRWxVOTRCeTloSW9yNy8za3lj?= =?utf-8?Q?tlfqtLmS6S8zLie3ui10kwk=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c27536ab-408f-4c8a-2af3-08d9b4c10229 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2021 11:52:10.9005 (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: Q8LjKjPJCDMDZbSZcA01SaBqPeFtwvkHMRmKNoNvRwGe+CWrf5d6bDlXG/wK3XL05kBzLit4ncb1tNKQi7+1eQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5598 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1638359557020100001 Content-Type: text/plain; charset="utf-8" When not holding the PoD lock across the entire region covering P2M update and stats update, the entry count should indicate too large a value in preference to a too small one, to avoid functions bailing early when they find the count is zero. Hence increments should happen ahead of P2M updates, while decrements should happen only after. Deal with the one place where this hasn't been the case yet. Signed-off-by: Jan Beulich --- Resending due to the original submission having had the same contents twice. --- a/xen/arch/x86/mm/p2m-pod.c +++ b/xen/arch/x86/mm/p2m-pod.c @@ -1345,19 +1345,15 @@ mark_populate_on_demand(struct domain *d } } =20 + pod_lock(p2m); + p2m->pod.entry_count +=3D (1UL << order) - pod_count; + pod_unlock(p2m); + /* Now, actually do the two-way mapping */ rc =3D p2m_set_entry(p2m, gfn, INVALID_MFN, order, p2m_populate_on_demand, p2m->default_access); if ( rc =3D=3D 0 ) - { - pod_lock(p2m); - p2m->pod.entry_count +=3D 1UL << order; - p2m->pod.entry_count -=3D pod_count; - BUG_ON(p2m->pod.entry_count < 0); - pod_unlock(p2m); - ioreq_request_mapcache_invalidate(d); - } else if ( order ) { /* @@ -1369,6 +1365,13 @@ mark_populate_on_demand(struct domain *d d, gfn_l, order, rc); domain_crash(d); } + else if ( !pod_count ) + { + pod_lock(p2m); + BUG_ON(!p2m->pod.entry_count); + --p2m->pod.entry_count; + pod_unlock(p2m); + } =20 out: gfn_unlock(p2m, gfn, order); From nobody Wed May 1 22:58:43 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1710854550; cv=none; d=zohomail.com; s=zohoarc; b=OTXUrFpcOyfI4rRRA41eN4w8J22mTEDE3zcKjSUmKFzy3QCxQ17IGkbA4E82zbI5J0BIT31BIXh944JztQOhxjflD+72zrbLUjdFXPvH7O5b74w2tObWUY62Ylogg8Cy9o2Ujt4ujWdmHEB8N+iZzh8fSv3TdofvfRTppBo9aFI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710854550; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iNHqaS4hCYlzXBeIJcF37JkLflryMYj84q8OtdKaqUc=; b=ImHb9nJ2mANNSq4AenIW/KXn8lDr0oSkuyfj7203sojbZDsFc0PSlir+GOg42LJYyWSdQj5z5SXURmv+dCNk3wAbYxjLJk/lrFhpWI27mG/PHHBBR3B9CuIZFAo/orhxJJggMgcaNGPiZwJThUUlDxO55eP7eRcOVml+A3tDn+o= ARC-Authentication-Results: i=1; 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; 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 1710854550203809.3625630844809; Tue, 19 Mar 2024 06:22:30 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.695373.1085058 (Exim 4.92) (envelope-from ) id 1rmZPy-0006zU-Cv; Tue, 19 Mar 2024 13:22:14 +0000 Received: by outflank-mailman (output) from mailman id 695373.1085058; Tue, 19 Mar 2024 13:22: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 1rmZPy-0006zN-AE; Tue, 19 Mar 2024 13:22:14 +0000 Received: by outflank-mailman (input) for mailman id 695373; Tue, 19 Mar 2024 13:22:13 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rmZPx-0006zH-5I for xen-devel@lists.xenproject.org; Tue, 19 Mar 2024 13:22:13 +0000 Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [2a00:1450:4864:20::632]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id b1fa7bb7-e5f3-11ee-afdd-a90da7624cb6; Tue, 19 Mar 2024 14:22:12 +0100 (CET) Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-a46a7b8e07fso415358266b.2 for ; Tue, 19 Mar 2024 06:22:12 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id o20-20020a170906289400b00a4668980c12sm6046479ejd.182.2024.03.19.06.22.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 19 Mar 2024 06:22:11 -0700 (PDT) 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: b1fa7bb7-e5f3-11ee-afdd-a90da7624cb6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1710854531; x=1711459331; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:subject:from:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=iNHqaS4hCYlzXBeIJcF37JkLflryMYj84q8OtdKaqUc=; b=TLxRYrpLg2FVEDe/5B699AlyiAOFmsIdY3PCZoqTCQK3aD/FcDvzoTuOOtgA9B5tCF JB4mTUEMuPH1vzIIS+kItHVjKPFPsdtWet2zaSVG5n2q2Kd7oF39qlDHXfDw7PQFjuY2 who01+1rVCU609V4cyc6rkdd56N/w/pwTwW+ET6gDPZTdeT9wZxS8pH1JOp9EtUMT84X NxD+LMWtgJKdBx4zz9gsyeW7T3QXq8xx9Zs0T1LznPCkqtXyuYe7ovyTzTWnvKylTGPy aCADYjcOPuEY7GFcz8TenpTvUiyV/5IM7NdMJNTT87kB25p0OCoTpMQF3VhLm13or/v1 ZeGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710854531; x=1711459331; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:subject:from:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=iNHqaS4hCYlzXBeIJcF37JkLflryMYj84q8OtdKaqUc=; b=m0BBgbXkugHpdxlktv2tHPfGdidxsayFaq+qmCF+mJCUizW2fleA1JH3G/1KCyB137 XLeNKkf72IQofN8+6k9WpvR+zzxZDL0Cia2WgbyWWIVxED/wHBoAp8oDZ3w0yRxZtnPj tvPQULOSKpo8SZSeJjrfsIiq8WB1Ao2g4AOrGeVw27qBpe9n1J3wLrWfNpsSdTGD2JZH GsiViBYlipXUqVsMtvdRXQqE5vGcNpXy4wQJvZvHxkR+6PemKArGthc2defqK4OQdIOR tUfpYz2J+kye3FAfWV9OdaJ7hCqYQ0cf9OkUWjx5DuhcVypF2ywtJlfeusbCfKIpDF0o 4K0Q== X-Gm-Message-State: AOJu0YyEezz7J5EFzUPP6zcnlXvFG6qjWTAqfjQCgdJkfor1J89/QwSk bMCj9bBW9jp0Pwa1Rj246sGmW1lS8ojVxpL12fgLozA80Fs/8Ko6PGzaFI0s9SaCi4udIPh3dVw = X-Google-Smtp-Source: AGHT+IF5I93HlWa1k48yzQp5rLpOSD1GUXFpYyMPj6ExHw4qGKj5DTFa2ZHs6as+JVJ0AxG3nCOZ+A== X-Received: by 2002:a17:906:7b8f:b0:a46:50ca:b318 with SMTP id s15-20020a1709067b8f00b00a4650cab318mr11159149ejo.16.1710854531640; Tue, 19 Mar 2024 06:22:11 -0700 (PDT) Message-ID: <95699d2c-7e2a-40db-875f-907990797317@suse.com> Date: Tue, 19 Mar 2024 14:22:10 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Jan Beulich Subject: [PATCH v5] x86/PoD: tie together P2M update and increment of entry count To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , George Dunlap References: Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1710854552129100001 Content-Type: text/plain; charset="utf-8" When not holding the PoD lock across the entire region covering P2M update and stats update, the entry count - if to be incorrect at all - should indicate too large a value in preference to a too small one, to avoid functions bailing early when they find the count is zero. However, instead of moving the increment ahead (and adjust back upon failure), extend the PoD-locked region. Fixes: 99af3cd40b6e ("x86/mm: Rework locking in the PoD layer") Signed-off-by: Jan Beulich Reviewed-by: George Dunlap --- v5: Re-arrange conditionals to have just a single unlock. v4: Shrink locked region a little again, where possible. v3: Extend locked region instead. Add Fixes: tag. v2: Add comments. --- a/xen/arch/x86/mm/p2m-pod.c +++ b/xen/arch/x86/mm/p2m-pod.c @@ -1348,19 +1348,28 @@ mark_populate_on_demand(struct domain *d } } =20 + /* + * P2M update and stats increment need to collectively be under PoD lo= ck, + * to prevent code elsewhere observing PoD entry count being zero desp= ite + * there actually still being PoD entries (created by the p2m_set_entr= y() + * invocation below). + */ + pod_lock(p2m); + /* Now, actually do the two-way mapping */ rc =3D p2m_set_entry(p2m, gfn, INVALID_MFN, order, p2m_populate_on_demand, p2m->default_access); if ( rc =3D=3D 0 ) { - pod_lock(p2m); p2m->pod.entry_count +=3D 1UL << order; p2m->pod.entry_count -=3D pod_count; BUG_ON(p2m->pod.entry_count < 0); - pod_unlock(p2m); + } + + pod_unlock(p2m); =20 + if ( rc =3D=3D 0 ) ioreq_request_mapcache_invalidate(d); - } else if ( order ) { /* From nobody Wed May 1 22:58:43 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=1641293919; cv=pass; d=zohomail.com; s=zohoarc; b=itoGjLapI9epL614+4WD+NgCwfVQRBDA9XYpdwv05ILzjkfVJqHOFQ9OrMWB7tOOcQ7qYhW0ExJKqhXGRH/EHSP0x6Oyefnd8Msn00kEjmIsApFgVXQjgmt/boxEea78JKm4w+N1ivvL/iy2gPJRP0/3GPBiKZY/5+QIRze8cKo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1641293919; 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=LoA5SyaScT/msHw6SXGRTAvCTjtuPX45uUkGT+64aSA=; b=UsVaEZWWlnuUBlM49Uo+/8TskuPr9Fe55YyXG/NTsdu7y/VHRhn+yqEavx+dSuIk5yjbJ7uZNZ9VKN2ok4w04/KbkFULG8pnlpoSyIHahNn+6jqg1s4mdXOeAWY9w88Vz0j3cJbZq7vqvVnz8PWKeJBK/8a7yGuP4qy6z5+ZYlA= 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 1641293919078495.51381735886616; Tue, 4 Jan 2022 02:58:39 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.253160.434241 (Exim 4.92) (envelope-from ) id 1n4hVe-0005tL-Ew; Tue, 04 Jan 2022 10:57:42 +0000 Received: by outflank-mailman (output) from mailman id 253160.434241; Tue, 04 Jan 2022 10:57:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1n4hVe-0005tE-BZ; Tue, 04 Jan 2022 10:57:42 +0000 Received: by outflank-mailman (input) for mailman id 253160; Tue, 04 Jan 2022 10:57:41 +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 1n4hVc-0005t7-WC for xen-devel@lists.xenproject.org; Tue, 04 Jan 2022 10:57:41 +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 21386a94-6d4d-11ec-81c0-a30af7de8005; Tue, 04 Jan 2022 11:57:38 +0100 (CET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2170.outbound.protection.outlook.com [104.47.17.170]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-38-rDHezk7XNAqEe7Z6L0Q-zQ-1; Tue, 04 Jan 2022 11:57:37 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB6176.eurprd04.prod.outlook.com (2603:10a6:803:f6::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 10:57:35 +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 10:57:35 +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: 21386a94-6d4d-11ec-81c0-a30af7de8005 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1641293858; 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=LoA5SyaScT/msHw6SXGRTAvCTjtuPX45uUkGT+64aSA=; b=F9UOH/k6cnzMv5vk6zEpx0XfabP26+9NxocT7eKXc93oleqBg7/FVOqEhGFLNlOB7ywIVV kYfmaz2qK/abNaJSlgkbVBXi0qlolDVFL7paxhTOU7fnOmUwt3LlFkUZ+Ic863Ol/qzluj BBCyJVH6zgaVhf3oFUTiyOnduTgk+iA= X-MC-Unique: rDHezk7XNAqEe7Z6L0Q-zQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A5W8651EDRCskZmwfKbUyr7ApV2Txle+9qZhnp1iCS7mOnn+aI1eC2Nrh/rLDZ5+9kqzc4ug31SkdnCJf5LKkjveiyzofVa2BzmAB1USs0TtJVgeRM1l5WhlhC78cEMrtBOqSGm24qo4NuwrFeNHOs5swfu/+5fg9EUOS3cKjW7VjvGPSwDdFl5DJd82WIfGQ3rzTlPEXlfECIblxwRY8UKdOZYZ7y+oEWXbb2FGQL2lo9VETi2tH/xcx22qeh4wQltqDs9Ph3/eedmybVZhFl4oyvQaEM38LRUgU/45SzkUoPCOcv0WKdScIvQv6g0lVps2rXStL7dPPik9d5LZHg== 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=LoA5SyaScT/msHw6SXGRTAvCTjtuPX45uUkGT+64aSA=; b=SqB6t8N9nehWU5jLXBTbkgao6dYC+b+zu7JTP5Vu1nqwP6TDthGjkSyXBag1xTcdJ+voGzhJaSLDHaQoxBxe5jjmcQ/T2OAHPYy7IG+PRIbxZQZZSUHt3P+2u9OfNpoIrJsEFytdnTkoeTXP1hz5QN0bWE/1728zPEIllLAFF4zQpyTNA1TIVwP5ec7FXyUUdOwuaVi8+cfUmj/uueHf4jAbB7xPbvvmrsvPrFAaWsus8VF/LaOyc3XCmHLXvwsaBKQEG6LVJDgKMqghGxUuL37D6T8nNBpe08jTkQt9VW/YULK9lwi2dHxboXRjcwlbEtT9gUNVJ8XnIowwFTn7jg== 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: <5b3f46f3-3c9f-57fb-00a5-94128f41e34a@suse.com> Date: Tue, 4 Jan 2022 11:57:43 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 From: Jan Beulich Subject: [PATCH v2] x86/PoD: move increment of entry count To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , George Dunlap References: Content-Language: en-US In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS8PR04CA0188.eurprd04.prod.outlook.com (2603:10a6:20b:2f3::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: dc993f5d-d713-48b0-8eb0-08d9cf7103b3 X-MS-TrafficTypeDiagnostic: VI1PR04MB6176:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8HkbE+8hR2XPwiiqDzedjVOvEUcjPnmpmyA38emaUKvcZzqAzjFor6I9hcJ5rc3F9bLOzX1qhddpvEzyb2RXQNQH2zQZXafpS0LAokYmsaExn0kTsZs6eTip4CZOPdAxtKAFZzKbcECpVgmmT88y3O6k7+/Df6hBYIBy3iaoYUGTy54WLReVLCh74xWW5HMgcnccjqRz1iH25NF8Kmt0MndcQDMi5ded9oA+8dU7L9hAgPMoIsx7tW7cu/89VVg+VtPVxIjIuxIgZbLlFxsGAiE4k4sjmH4SYc2FpzR/hd3U+ONmJ2nVAIAetNQ/kGj+zzjKbrUeC2v1kp9BxPYdtKPpSpZebIrpUz6BTsm2x6gdeQeSVWbisLfDyclqi4TV2fFYNTsOZhDAN4Lxmef6d+3cjdQb+tnkEe5nswTyqltIdXKa2+nphxtR3Wru8MHSDd1sbkhltrwaXTbKJfT/VDFf1z92zixc80AVPfsbin1X7/wbpGLR2O7XRUnXw4MHvoyeOD8a3p2nAMPl+3aSLspikOKgq9nQuNGnDDJqtkxQA70QtlY3Ik4BntHu40pnztjaUaWxDn39fsByFOOIXwAh52OhTXN98zhY/1mg9DKWD19Caj8RLLIChGoQ8iXhk0TkkAixWPH3Lw7sVVMXod5tUM15mSXBpaKd6fOrVCdUsiGD/J+gZ3xGFErqfb1hFksQAlgAsJi6mwcgLkqiDkoVYT9fFZ899wytJHSjvYU= 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)(86362001)(26005)(186003)(54906003)(2616005)(38100700002)(508600001)(66476007)(4326008)(6506007)(316002)(6666004)(6512007)(66556008)(2906002)(31696002)(6486002)(8936002)(31686004)(5660300002)(6916009)(8676002)(83380400001)(66946007)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TmYrZm9nY01DMmk3MUNjUVl0Lzl2VzVJRmR2Q1ZMQ0d1S2dCeG9xSDh1U2pX?= =?utf-8?B?NXhYVURNMzhsZllUdmg3clJaYTVMMzU0TldHVS9iS1ZWcEl1RmdaeFNhLzNs?= =?utf-8?B?VU1WZnV4enhqK0xkWXRoUENKRXJyV2k1WXpEWDBJMzRtL1dtZW5zQUJrQ3lZ?= =?utf-8?B?SXo4WWxxTHZjaXRxdTBpcHhpcUp0cWZXNGFBRm94R1BMWFNhODZnSW5pdDZT?= =?utf-8?B?d3dDZFE3TkE4SHJYa0NEYnZIcEYyWEhiOWR5N1M1b250MHhhakVON3Joa1pJ?= =?utf-8?B?ekJhc2dhNXF1NnlrMDdINm1jQVlqYUUvemVobFkwNG42Rnl2UXA2Rk05WGFO?= =?utf-8?B?QnpKVng0bkxjblRvSGdqcEgvRFlWMkN1eWVQeFRGWS9EWkN1R0hWNzJoWTZX?= =?utf-8?B?Rmt1ejRMZ3h1anJ1S0RNME8xTFdqcDBmZm00Y3FNWkdhVUdLZ1VMUVk3NXR1?= =?utf-8?B?NHIzYXFyRWk4V1grMWV0SFlhdlFxZ1RyUXkxYW9jSXZocVh0MGM4S21jMENO?= =?utf-8?B?Y3Excm1lNlBGSkIzVTZNVkJtZ29hRXRVYUQxUnl5dFBsZHI2aXJZODB4VHJC?= =?utf-8?B?Y2s4d0pMc0NadXZMeVU3MGw3dG1PcjJTRmlvRlNyR3BKc0hmZFhJL0c1TTIy?= =?utf-8?B?RGlnRjdFSDVwcm4xeWw5NHhwandCU3pxQlVuR3oxUHJZQWRnRDFCWFd5ZHdq?= =?utf-8?B?NjZlSkdpTXA3TjkwL1pZV2xBNWRBVkN0b3ZlYmx4OHhFRTYwWmFoK1FNVDlv?= =?utf-8?B?NkZ2bWNVc3VqVDR6VmZsWmVMRG1uek9nT1dYcWtiUURvZG56c1BleVNEN1ll?= =?utf-8?B?MmJneFJWMFR6S2tnT29ISFNhNGlBdnpTWlJNZnR6N2diV2RMWUJPNDFRdnB2?= =?utf-8?B?bU8yS05iVXk5WVNqMmQ1NHRINjJEOVJUYlNtUnVrQnBBSWN5cEdTMjFkRXZw?= =?utf-8?B?SEFYV3JEa1FtaEdQRHpyUU9wNnZ1SUx1aGJQeGV4VEVPSGtsK0Nnd0YyeVpT?= =?utf-8?B?REJNS0ZmRU9hMW10VzRjdXJETENyUHFaWllFc015L0FCWll1M2NCMUJ6cndN?= =?utf-8?B?ZTJxYmNXYzNUVHh5ZHZGbWFRVnNqSnFkekJyaDlZMFVYakVOYjNEeU1CYWZI?= =?utf-8?B?bFdTdlBSZ09TZmp4bHJQNXBPUU1uN2NQUEdBdThId2dPNDMrVW1qQVhpOWE1?= =?utf-8?B?MjRMaXNQVkRVVnorcGdnM2FtTFk4UGNKRDR5T0c3Vnp5TzFtck9OZmNYRFY5?= =?utf-8?B?b3ZXS3dzdGoxeXE1UEV0bkkwd3Niemx6cmthQTRZemJiaUNKb3RFM0JOR2g2?= =?utf-8?B?a0htSGd5aWdzZ09MNWpZVFJDSkU4R0Y4WmdudTRhMWNXL1pwTEZYMm5iUG1M?= =?utf-8?B?MVpNcUhYcDhTV0RNamR2NGRuZ2MzbWIzZDN2eG9ramthUUpZNVRmYzk3dVpC?= =?utf-8?B?TnhmMzlWenVtSDlacFprU2RDZTJSdEJaemFuMkczUFlQRytUZTQrR1lvWURm?= =?utf-8?B?Wmozbk5kRzU0MEMwSTBpYUwzQ0hBbktvK2dtdmZDUjN4d2lGdGpMcFFOVitq?= =?utf-8?B?TFRkMlFITjZyKzNJRFR1cE1tbCt6T2J0ZkNaTDdacmZhcVJCTEtVN3p3SWg3?= =?utf-8?B?dk5nTEMyOTRDVDMwWkpjT3JaS0ZlSUpTdHBPZmFoOThpazdQVkdoYkpidGVY?= =?utf-8?B?OU1oNjlwSE44eGNGbkd4UTI1aTRtUDNJZ092T1ZmbFdiU0V6eGVnNnp2VVRm?= =?utf-8?B?SmZ3NDMyRVJhYWZPOTdrVWxmY3dnTU90OU96aFhaVm5BZTRENWI2eENibng4?= =?utf-8?B?K3FvTmoxRDFITmNUczhoZEdqR2I5TXI4Q3VXYitXNFVzRDNGN3BkQzhJTnJm?= =?utf-8?B?aDgxeU1xdk5NNEJ2M1JGYTd5R1EyNDZPK01UcWZ1U3g1eEtIRkprMzBlQ3c2?= =?utf-8?B?RFNVVmxiTlpaVEZOay9ta1lzYzEwWmIza2xXV3lzeWJ4MXQzclA2NDg2dXlm?= =?utf-8?B?UlR2c1Zacm5sLzNsR0RKektpelFFdGkyTDBaalZhb3hvS2FVTFpqK3BOUjBL?= =?utf-8?B?QnhkaElkWlQyRlBYSE85MGFQNkpuRW05NVVjY3hzbFowdjRjUUNpOWJkN1ZP?= =?utf-8?B?dmgrZU1oQ2M5OUM0MWtiTEJ3Z2xLYTFVZEREVllzeXFYeEo3UHcrdkFvZmtV?= =?utf-8?Q?6SSykMMaEOPNHaRUzrOhTck=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc993f5d-d713-48b0-8eb0-08d9cf7103b3 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2022 10:57:35.2647 (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: aQAYqaNnbSSV1zdmiCRP0IpguDboMZHxRqwpJRxV6Q1ytBOVI0dBzbVkgYH9dJBa5EAINy92MhXFkKAxcxCKmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6176 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1641293919721100001 Content-Type: text/plain; charset="utf-8" When not holding the PoD lock across the entire region covering P2M update and stats update, the entry count should indicate too large a value in preference to a too small one, to avoid functions bailing early when they find the count is zero. Hence increments should happen ahead of P2M updates, while decrements should happen only after. Deal with the one place where this hasn't been the case yet. Signed-off-by: Jan Beulich --- v2: Add comments. --- While it might be possible to hold the PoD lock over the entire operation, I didn't want to chance introducing a lock order violation on a perhaps rarely taken code path. --- a/xen/arch/x86/mm/p2m-pod.c +++ b/xen/arch/x86/mm/p2m-pod.c @@ -1342,19 +1342,22 @@ mark_populate_on_demand(struct domain *d } } =20 + /* + * Without holding the PoD lock across the entire operation, bump the + * entry count up front assuming success of p2m_set_entry(), undoing t= he + * bump as necessary upon failure. Bumping only upon success would ri= sk + * code elsewhere observing entry count being zero despite there actua= lly + * still being PoD entries. + */ + pod_lock(p2m); + p2m->pod.entry_count +=3D (1UL << order) - pod_count; + pod_unlock(p2m); + /* Now, actually do the two-way mapping */ rc =3D p2m_set_entry(p2m, gfn, INVALID_MFN, order, p2m_populate_on_demand, p2m->default_access); if ( rc =3D=3D 0 ) - { - pod_lock(p2m); - p2m->pod.entry_count +=3D 1UL << order; - p2m->pod.entry_count -=3D pod_count; - BUG_ON(p2m->pod.entry_count < 0); - pod_unlock(p2m); - ioreq_request_mapcache_invalidate(d); - } else if ( order ) { /* @@ -1366,6 +1369,14 @@ mark_populate_on_demand(struct domain *d d, gfn_l, order, rc); domain_crash(d); } + else if ( !pod_count ) + { + /* Undo earlier increment; see comment above. */ + pod_lock(p2m); + BUG_ON(!p2m->pod.entry_count); + --p2m->pod.entry_count; + pod_unlock(p2m); + } =20 out: gfn_unlock(p2m, gfn, order); From nobody Wed May 1 22:58:43 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1710338449; cv=none; d=zohomail.com; s=zohoarc; b=QmnryUsPZiSNd8j3pkyC60UI5w51h2O7tBybso3IQvEtcgZRdvhIw/uply1ArDCHmeSHEZ9ilWGSoRDRVHLqPdCbS8uecGtkjxkNveEoSVmDeyJKFvimFynkt3qhi7KbT1A55K+0P7cRZ1J1MRK3ZghXgj/k9Z8mFLsx8s9joFg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710338449; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ZqVblptFSYqrUaUw2YhIZpKb+B+OQXgBxRb0Ru7EDt0=; b=IUlIIJ2m0VEb2esoPQPiDP0WwdJ1oehgUP/4sYkU7Q/eelzKDLQje+iGdalsS3c6t/nwvMl9SG0DxxJ2wrTd7InaPqot08OELcFN1ywotItNc+PSlFWkbznJ80RURrhanjORkQ6ilM3IPnAAR8gt+urLE5bfiOMX0CkZLzxlZVY= ARC-Authentication-Results: i=1; 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; 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 1710338449676690.0033187337366; Wed, 13 Mar 2024 07:00:49 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.692445.1079590 (Exim 4.92) (envelope-from ) id 1rkP9k-00087s-0n; Wed, 13 Mar 2024 14:00:32 +0000 Received: by outflank-mailman (output) from mailman id 692445.1079590; Wed, 13 Mar 2024 14:00:31 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1rkP9j-00087l-UL; Wed, 13 Mar 2024 14:00:31 +0000 Received: by outflank-mailman (input) for mailman id 692445; Wed, 13 Mar 2024 14:00:30 +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 1rkP9i-00087f-Dn for xen-devel@lists.xenproject.org; Wed, 13 Mar 2024 14:00:30 +0000 Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [2a00:1450:4864:20::52e]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 0c9f83a3-e142-11ee-afdd-a90da7624cb6; Wed, 13 Mar 2024 15:00:29 +0100 (CET) Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-55a179f5fa1so8961870a12.0 for ; Wed, 13 Mar 2024 07:00:29 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id hg13-20020a1709072ccd00b00a45fefe4fc5sm4816032ejc.135.2024.03.13.07.00.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Mar 2024 07:00:28 -0700 (PDT) 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: 0c9f83a3-e142-11ee-afdd-a90da7624cb6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1710338429; x=1710943229; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:subject:from:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=ZqVblptFSYqrUaUw2YhIZpKb+B+OQXgBxRb0Ru7EDt0=; b=FVQRpjSz0Cv95fkMb8COxxiCDJWTc57M9GrpMYq4bDLCJ/Lm1/7tGDhi+kxzCD4q9e rEgdD/TidGUVMO6tUuScXJbfS/olsHns6AR4/C3pUljhaMbrzoKBcLmKLie3HnlM22hR khOhaEkK7m1z4zdikTU06Up1rKWmI/z9nrDrA+TRQvXw0lCffkeS98MdTovXlxGaC/DJ Bd37/+9TCb+GJ0V6jOJJbNAOqspG6PxJl+tku/8C7Rqkt+iR/hwwJd48U7vpX1F01o6a d8S8pJcs9IiO0N5hfRrmLH2FaoiAaoV/WobLocy0yISP+1q9ajwhU7vbu58u7jC9mz9X YqCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710338429; x=1710943229; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:subject:from:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ZqVblptFSYqrUaUw2YhIZpKb+B+OQXgBxRb0Ru7EDt0=; b=gvGIw9sTzroJLvk4Vqypt9MLiZcDWBhf4HmiuwlhZp/F0D/hWQ477+cGqdiSts6UI5 LLpzMg745r6OXYlbqkuuiNMOvXVHb0zY3OCy+lD3PRHS/XK79j+VW9pOF9HPpKuLAqn2 nOX1+xAhvXTUFknJfknZV9K94x0Ya/qbmk7cWtTzQ7c18iQjTnqtqflcUqEawwIf/WZ5 dum1Ks1F6oy6rKIjEaU8fcHvP46EE/x0v9Tew093u9WbEYgQht777Fm3+MrDRQYLKp+9 VR1apNoAfDPW+x1EecFgZUiVYH7l4zyioaI3HwPeXa3qkSbhnN5ZBHQ8h4XhdNkvjJQ4 Tpww== X-Gm-Message-State: AOJu0YxL7Q0B9mTtotNryAzAUUuk4Odd5O5BFuBUEjtyD/8eb70ZBgUu yll4MprtGQQku+tY1+haCnsAWBZ6jcNm+wBYWrar3k3V6eqkSeQw1BiO767gk2YXJG5mf2/QvGw = X-Google-Smtp-Source: AGHT+IGfZUYgv0LBZI7ynmBibYHGydGzTJEVXyDq9KBWg4ePpew7ngHM3nni36MeEenbTSu/ZgtW6g== X-Received: by 2002:a17:906:2b8c:b0:a46:13d5:46fe with SMTP id m12-20020a1709062b8c00b00a4613d546femr6612028ejg.11.1710338428583; Wed, 13 Mar 2024 07:00:28 -0700 (PDT) Message-ID: <3daef84c-47dd-4a6b-9984-402e997598dc@suse.com> Date: Wed, 13 Mar 2024 15:00:27 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Jan Beulich Subject: [PATCH v4] x86/PoD: tie together P2M update and increment of entry count To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , George Dunlap References: Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1710338451102100001 Content-Type: text/plain; charset="utf-8" When not holding the PoD lock across the entire region covering P2M update and stats update, the entry count - if to be incorrect at all - should indicate too large a value in preference to a too small one, to avoid functions bailing early when they find the count is zero. However, instead of moving the increment ahead (and adjust back upon failure), extend the PoD-locked region. Fixes: 99af3cd40b6e ("x86/mm: Rework locking in the PoD layer") Signed-off-by: Jan Beulich --- v4: Shrink locked region a little again, where possible. v3: Extend locked region instead. Add Fixes: tag. v2: Add comments. --- a/xen/arch/x86/mm/p2m-pod.c +++ b/xen/arch/x86/mm/p2m-pod.c @@ -1348,12 +1348,19 @@ mark_populate_on_demand(struct domain *d } } =20 + /* + * P2M update and stats increment need to collectively be under PoD lo= ck, + * to prevent code elsewhere observing PoD entry count being zero desp= ite + * there actually still being PoD entries (created by the p2m_set_entr= y() + * invocation below). + */ + pod_lock(p2m); + /* Now, actually do the two-way mapping */ rc =3D p2m_set_entry(p2m, gfn, INVALID_MFN, order, p2m_populate_on_demand, p2m->default_access); if ( rc =3D=3D 0 ) { - pod_lock(p2m); p2m->pod.entry_count +=3D 1UL << order; p2m->pod.entry_count -=3D pod_count; BUG_ON(p2m->pod.entry_count < 0); @@ -1363,6 +1370,8 @@ mark_populate_on_demand(struct domain *d } else if ( order ) { + pod_unlock(p2m); + /* * If this failed, we can't tell how much of the range was changed. * Best to crash the domain. @@ -1372,6 +1381,8 @@ mark_populate_on_demand(struct domain *d d, gfn_l, order, rc); domain_crash(d); } + else + pod_unlock(p2m); =20 out: gfn_unlock(p2m, gfn, order); From nobody Wed May 1 22:58:43 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; dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1710256986; cv=none; d=zohomail.com; s=zohoarc; b=dqCBKqt/HdLIrfFD9k703i5tapBqTkD168FdHyvvL/ufQDkmqjHc/XQKQO/m4DH8t/N1kHkhkvnu4QyRFVM0U/7oNoy/mDLEZmeIwJAZBK9b3JR9aaAF6KP70muqYdVkHFEQVWMkztJm1XeX90PXgBJDtRfp9vEI4pp47kDpjBU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710256986; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=eVS8NZ9xD+RsOm+qUk/upY9IPwTqTT6N6KGsJzYt9PM=; b=Igqc+3lD020yuMOvaikVmDgqcCPuZZMBcrjvAd1J3nKvkUTPmrVr8t+gj+x0uppcfb8loxMyRXk/ZyFFbgZDuJi04F6QlGUngNnGkf9Iue60kBb9c0uz7XvRLIMxvrSptV8WPSaKstmzM4+wBqZxlSUjrrB/4ulrcNmzNs+5t0s= ARC-Authentication-Results: i=1; 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; 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 171025698624989.27426173969832; Tue, 12 Mar 2024 08:23:06 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.691910.1078481 (Exim 4.92) (envelope-from ) id 1rk3xq-0005l3-L6; Tue, 12 Mar 2024 15:22:50 +0000 Received: by outflank-mailman (output) from mailman id 691910.1078481; Tue, 12 Mar 2024 15:22: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 1rk3xq-0005kw-IT; Tue, 12 Mar 2024 15:22:50 +0000 Received: by outflank-mailman (input) for mailman id 691910; Tue, 12 Mar 2024 15:22:50 +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 1rk3xq-0005kq-6v for xen-devel@lists.xenproject.org; Tue, 12 Mar 2024 15:22:50 +0000 Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [2a00:1450:4864:20::236]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 62049562-e084-11ee-a1ee-f123f15fe8a2; Tue, 12 Mar 2024 16:22:48 +0100 (CET) Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2d2ab9c5e83so567781fa.2 for ; Tue, 12 Mar 2024 08:22:48 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id h8-20020a0564020e0800b005653c441a20sm3568497edh.34.2024.03.12.08.22.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 12 Mar 2024 08:22:47 -0700 (PDT) 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: 62049562-e084-11ee-a1ee-f123f15fe8a2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1710256967; x=1710861767; darn=lists.xenproject.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:subject:from:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=eVS8NZ9xD+RsOm+qUk/upY9IPwTqTT6N6KGsJzYt9PM=; b=W+0OHNkdTf+ztfwSMDouznIS0hnk8Rfmcj3qreAYCI7nW+WKnjpbCCo7Jec8soGwRf zrpUGhPIgdoLothD0pVeEgcO1Cp+7qJ0CJhFr8eG9OrtT/rKOugteFc6UDehLVrha+Lc QbbGtAh3AfqhSVar5MM0j7zf21Q80kahPd3imWqLC9sB4EUnHPSoBZVX85szHZy+tlCb T+9kXw7h+tMel2oDrkHj8vPl7GnmcE8LoRuouEDMA6OLuhZoyDQb8yNDVniWi6GnvdOZ bSlGDF3qdFIyd4Nc8ay9lhM9zyLG9kj0OkjsH8zmw9e4BPxESLCbZQukTBm03Yx5yYxg 7/ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710256967; x=1710861767; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:subject:from:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=eVS8NZ9xD+RsOm+qUk/upY9IPwTqTT6N6KGsJzYt9PM=; b=Us5uc5ZCizgP9xLMV2QvwwdXKncreqCfXFFiTeEuCnLrfOuI5cBa8TB+unCyjM1Edi xpLsRdgM5a+15CTgENB1qcnNvqcwX+8TtmbNmcdgJWtengf6QIO9zl/JRfODxUQFdGus RgxQSo5+Jrddx49rttS1JPavtXJ4RconjpnsiURalS9fmokkdCKZmC1OG6dVOCTPQJ6+ s54COM3WDJZq9/jrhPUMiu/qY+jeXminjy5an2zZDH+ejuSOIBIr+d5kE0n5qwyFjEED Mh9t46NGGK1NE2oG4zCC8QNgmCc+bXTGSj5/S7dKJcIvEGfkl4EAG5JkE2fj77S+/AQf 6jrA== X-Gm-Message-State: AOJu0YyuvklvNW08ntQvRrGQD5W/niOSv7qhzOq0iBvr7cXBAD+veWA2 8Xf8bM8Di9QHXxo+oqjHos3YFWqfcTUhYp6Y1AEsIrwZOwkTvukcEFmDrjqSqdsSwhZAAxNW7T4 = X-Google-Smtp-Source: AGHT+IHAxhdifFTOqPCDZrEdwk2ND3FsHuBNsNyjx64p69BDCtH3I0dVYmK6ejEipOh2GgbMKU4TfQ== X-Received: by 2002:a2e:be9c:0:b0:2d4:522e:62f3 with SMTP id a28-20020a2ebe9c000000b002d4522e62f3mr2434688ljr.44.1710256967547; Tue, 12 Mar 2024 08:22:47 -0700 (PDT) Message-ID: <740404f0-3da9-4ae5-b4a5-b24cb2907e7d@suse.com> Date: Tue, 12 Mar 2024 16:22:46 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Jan Beulich Subject: [PATCH v3] x86/PoD: tie together P2M update and increment of entry count To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= , George Dunlap References: Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1710256987654100001 Content-Type: text/plain; charset="utf-8" When not holding the PoD lock across the entire region covering P2M update and stats update, the entry count - if to be incorrect at all - should indicate too large a value in preference to a too small one, to avoid functions bailing early when they find the count is zero. However, instead of moving the increment ahead (and adjust back upon failure), extend the PoD-locked region. Fixes: 99af3cd40b6e ("x86/mm: Rework locking in the PoD layer") Signed-off-by: Jan Beulich Reviewed-by: George Dunlap --- The locked region could be shrunk again, by having multiple unlock calls. But I think both ioreq_request_mapcache_invalidate() and domain_crash() are fair enough to call with the lock still held? --- v3: Extend locked region instead. Add Fixes: tag. v2: Add comments. --- a/xen/arch/x86/mm/p2m-pod.c +++ b/xen/arch/x86/mm/p2m-pod.c @@ -1348,16 +1348,22 @@ mark_populate_on_demand(struct domain *d } } =20 + /* + * P2M update and stats increment need to collectively be under PoD lo= ck, + * to prevent code elsewhere observing PoD entry count being zero desp= ite + * there actually still being PoD entries (created by the p2m_set_entr= y() + * invocation below). + */ + pod_lock(p2m); + /* Now, actually do the two-way mapping */ rc =3D p2m_set_entry(p2m, gfn, INVALID_MFN, order, p2m_populate_on_demand, p2m->default_access); if ( rc =3D=3D 0 ) { - pod_lock(p2m); p2m->pod.entry_count +=3D 1UL << order; p2m->pod.entry_count -=3D pod_count; BUG_ON(p2m->pod.entry_count < 0); - pod_unlock(p2m); =20 ioreq_request_mapcache_invalidate(d); } @@ -1373,6 +1379,8 @@ mark_populate_on_demand(struct domain *d domain_crash(d); } =20 + pod_unlock(p2m); + out: gfn_unlock(p2m, gfn, order);