From nobody Thu Jan 8 12:32:48 2026 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; 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=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1766605278; cv=pass; d=zohomail.com; s=zohoarc; b=XD/rxZ9qh1SPHIvTk93oYNeNgpS1uYuORYXW5goN3OLsd1Rt1KZ0dtb0oR6N7Riu6S9pMAbW6ZbvSztQBhWgSkoqBu+VWJf/HK1iuFCWJa4gmZ9S4BxZFx/UKD6s5sRXEeJ9Y6hQ7s4KQYuVKtHkzdRYprUZPwvouUMhDu55PPk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766605278; 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=t+/OaSnO+7dubGjNm/28Rt0UT4bJsYsC3HQ9wqyEhQQ=; b=in7uTpBJNYiYnUiNZfyvV9nHI5fDktCuq6zIT3WrUH+CikxAZApn/3jJiktV+SypLTLVgJwAC/opaKEZlDftGJmVEGh/hasW9d8h6d3Hy2gh/x9pbQ4tlv1L3kLXhmZia2UoxmL9Uug/kUYzaGEuTh/H+1ZDN2k/6GPcWSuk6fo= 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=citrix.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1766605278024481.6528061630802; Wed, 24 Dec 2025 11:41:18 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1193146.1512125 (Exim 4.92) (envelope-from ) id 1vYUj5-0007pk-PM; Wed, 24 Dec 2025 19:40:51 +0000 Received: by outflank-mailman (output) from mailman id 1193146.1512125; Wed, 24 Dec 2025 19:40:51 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vYUj5-0007pc-MZ; Wed, 24 Dec 2025 19:40:51 +0000 Received: by outflank-mailman (input) for mailman id 1193146; Wed, 24 Dec 2025 19:40: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 1vYUj4-0007pC-JV for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 19:40:50 +0000 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azlp170100001.outbound.protection.outlook.com [2a01:111:f403:c110::1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 71772e5b-e100-11f0-9cce-f158ae23cfc8; Wed, 24 Dec 2025 20:40:47 +0100 (CET) Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14) by IA1PR03MB8045.namprd03.prod.outlook.com (2603:10b6:208:595::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Wed, 24 Dec 2025 19:40:45 +0000 Received: from CH7PR03MB7860.namprd03.prod.outlook.com ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9456.008; Wed, 24 Dec 2025 19:40:45 +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: 71772e5b-e100-11f0-9cce-f158ae23cfc8 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sKljABgmgUiIALbTUnMz5Yg5P5BCqE3kHRPljKVn51QndLvPznKxo4XynplieoJ25eBZyXSZYWgT9FiMB2rvL+miBwU4gpySAXFa64TixU+eqUnkSA8jo1rqF2gaJI7/yxN/nN/BhgMumDCULsvsEd0Nt0C78oFg9jEvtfGSLgutr8Cda6lFaVRPZsNR4Fv090oY2opZOvB1LVj7FGcC82Qj2O0LCCrCmV2W02u+FzlQoyN2v72ZqTu8+sTmR+KtrKjvAfvriALseu84x9qz/YJyHye3m8fuNDPcoAS/nZsFdjRvo7uFFyUDELfytuXNjMfjOntosGIQYxQ8XaMObw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=t+/OaSnO+7dubGjNm/28Rt0UT4bJsYsC3HQ9wqyEhQQ=; b=RpMKHJCVdB9XE4SHjy8b84lLdyNbxdBuxK8jihcpHUNOcnnldV/aVDudIq96kdzBKr7aUHjXU/F0HjXgPAdTAI42UfyoBlrYc5MDceJRhddagaOogIfsaQOkWzMq37mz1KFVCMDxZWxtDI8s39z4d76Jkg1tgFEg6RhIJuu7nK/KVwl+bKfEOTuRz2CX8/eowqUhDbTIBCct+n9UrrGo9+0dpgSDvwk/QTlgAMM7I5Cth7q9q/uGjEU/gnzmLD6QKvwcuxg1abC6Jvb7oLqWvITVxjQO2RDREzkXS4Fi8zzcqYzxuOcN6NPhWTxpfQl6rKIG5AEKrRLInrPsiNKRcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t+/OaSnO+7dubGjNm/28Rt0UT4bJsYsC3HQ9wqyEhQQ=; b=fzRf8M4D4+CbjpX6MCuzufs8jOFiAc9N55XiZ+SCvvU5DXOeUFenJc+nr0mU0b6ZYUDT4ja3CQodksUr07K7WfQ+D2BSsWrz6cbbmKDa39OCjuAHAXUdBKz2WSTLiy8w4mpRgI98G8QZw14AfbJBgQQHWVF9Ynr37sFg4VVTc7w= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com; From: Roger Pau Monne To: xen-devel@lists.xenproject.org Cc: Roger Pau Monne , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , Stefano Stabellini Subject: [PATCH v2 1/2] xen/mm: move adjustment of claimed pages counters on allocation Date: Wed, 24 Dec 2025 20:40:34 +0100 Message-ID: <20251224194035.60173-2-roger.pau@citrix.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251224194035.60173-1-roger.pau@citrix.com> References: <20251224194035.60173-1-roger.pau@citrix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PAZP264CA0010.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:21::15) To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA1PR03MB8045:EE_ X-MS-Office365-Filtering-Correlation-Id: fe4c420f-3bb6-4374-eab8-08de432454bb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?c21yVm9Zc1YraU9WcUIranB5ekpRVkxaRDAxWDR3TXUrbEFPMng2UzdCcDkw?= =?utf-8?B?NkdpRjdub3NrbHRWdStsVVBDejAvMVpiRGxTL1FGNk1IbW5oOXhVYnJwbmxl?= =?utf-8?B?aFdhVTJUY0hrWXBwWW50bW5iNlBHRmovdU1mQjBWYU01aEk1SXd2ZnhVeDNJ?= =?utf-8?B?WVZ4NnFHWklwOGk4c3hHQkNGeHh3Umd2Mld6UVFyT2V1RjJpaENXVlhiVm5j?= =?utf-8?B?OUJBdDl1VFdkd1FjT2VMM0tYQS9URUkydEZvM2E4N3MrdFJtdHl3K3BGSHlW?= =?utf-8?B?Z2w5Y0RBL0FqRVM2TThsVmVNN3dYWmFGTlEzUzhFd0Z4RWRPbzBKbEVQQ3Vx?= =?utf-8?B?T2NvdDJOM0dtd3JrQ0lkZ0lYQXdpQWxLa1MrMjYwdmVlVFNuWmFhS3p3cEFp?= =?utf-8?B?UnFDRDBlMjhlMEV2QUVvalZLcXUxaFg0OXZvdGRXRGZEcGFpQklxT0ZJOVYy?= =?utf-8?B?TndiNjJEQ2RTMXNUTVNRejJET3liN3V2cVZxU3ZBcmxpUVdVOGluayt5dk1t?= =?utf-8?B?Z2owZUdsWHcrMmNDUW5CalNTZ0xCV0c2YXh6a1oxVEI1aHdUM1BaUE5KaVhE?= =?utf-8?B?cnRYZEUrakNzbmo0eENtRGpjQXBRMnkxMUxmRFZCbitWVjFRTUV4ZHZKZlZY?= =?utf-8?B?RWxZL1pCaHEveEJQUzNaUmRlTGRkOFVJemdyNDlMNkZad3dkTk5LQjA0L1FD?= =?utf-8?B?RW5IcGJ0eFkrU2xnOU9jMldCOXdUd2tGdCt3UnhiUGhTNFBBZlpPcXgzeGk1?= =?utf-8?B?c3JReDN3ZVh1U3BVV2JUY2U5YUl2Y0Q3UGJFNVB0MGc1bm1HbnZCMGYyUWdF?= =?utf-8?B?YXVCVENVVXZ6ck5SVFNXNmQ0d1pUOVJKVTNlVktVaVhGM2ZLSUJhRmRVbUkv?= =?utf-8?B?ekMwTFlPWHpkbHRHZ2hCaVNHcmJkSmhXOHZFb1RHQnNnTHVVdmczTEZaTFlC?= =?utf-8?B?dzNmQzlRV1phZEpZM3pJampmUlNzM2gzSEZlTW1SMld5cENsd1FnTlhyLzg1?= =?utf-8?B?N21BenNHdkVUSkRLZ3Ztd24xajd6VjdJOThicnRhcWIvdXRYQVA0Q1hkc041?= =?utf-8?B?RVQ0MzBJdmVZQlRXbWZBdjlUR091b0ljNmtwQUIyTnJWMnBlWmE4Y0NoL0Ew?= =?utf-8?B?ekJELzdLZGlFTGE4VGk1dHVDcFozQk16MHl4VzdJUkxKbkZQSjhyRkMvNmVj?= =?utf-8?B?QzM1aE90L3p5VHMzbzNHeUZwMEFmd0NjSEpxSGw2TFR5UzJHSkhGdS96YVpT?= =?utf-8?B?WG5iTm5NUWZuQktiVEI5Z2xZT3ZVazRSNUJuUzZ0ZmZ1UHZFeVl1MzM3RkdV?= =?utf-8?B?eXliOEVTUzdDN2JPaTFzc0ZOSnVMTFFEdzlSYktWdVVDYlR3NDQ2NVFjdVdt?= =?utf-8?B?RXdYTjFQUVNJaGIySjczc29PWkNKMWtndEU4ekRhY0drR21WSUlRSk93K2lJ?= =?utf-8?B?OGJnckoyZlprSlJybjEzYWZyTDlRcXR2MFppWWtWSnF4TzRaMjhpYTZLTEVG?= =?utf-8?B?VElNeDVuR24xQkJpZ2xrRFBtQklkYUZ2QUo3dUJBV1JDdWQrTDRtcFRmMmdK?= =?utf-8?B?dWdIUXJ2SWdaeVlGNWFKZWw1VFRHNWNIWU0rVGdWa1VTLzl5dHBMdVNyMUNi?= =?utf-8?B?cEFpQWF3aGYvYW13VFZDMyt3UmZXSVFYVzNTWHFOVnBmMXhIaG1NdE9TT2dH?= =?utf-8?B?WVpOOGErMk1XRUJNL09jTjQ0UFlVa3pvS2dXeTU4cXR0dVQ3bGp3RWlPdGo5?= =?utf-8?B?TktzL1YrT3MrZ1ZWbEhvOEJva0RwS25SVlFhMzVKWVIwY0l3akk2am5idGcw?= =?utf-8?B?dFlkbUQ2YlF1K04vdFlDeXNTM0ZkbWpxblRiZ0tvSHpubTNXV3RBdk56cGFH?= =?utf-8?B?WHNTUjB1am5ONlg2ODFjakxhMmZxOTRycW15ZzRVZUpOTGpHZ2NDRVFIdnhS?= =?utf-8?Q?PXW9WrNK2pTz4xU04i2PpI9wC/kqm3B+?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RGNGZ3R0aXN0QXRoZ240TFpiZ00rblRYeUk0THpPOUx4WHFyREk2eU9HK2ww?= =?utf-8?B?d0NPUG9wa2t2SDBOOVZFL0tDaGdaM0U3SFp1Z1ZZV0pLa0RIajdpYXZNWVRN?= =?utf-8?B?VXFHeDRtYVNmL0JMVGQ1K0NwR1p4T0dSRHBsQjhsVFd0WFF4OVA1OXN3OVls?= =?utf-8?B?Vi81VVJhRHlFMThVNktWNHd0dlZNWWdyd2V0djVxRkZtNHU2Yi8wb3VYVFlY?= =?utf-8?B?Ri9SMk9hQTRYSkNOSjZ0djN5QnBZcWpUZ3RmaWoySlc2TXRqVTdRcFRsdXpm?= =?utf-8?B?ZFRxVjhMS2VtM1VzbnZIdlF1RUhKVFg0UGFTU2NZY251NmdCZFlSNU1oMEN1?= =?utf-8?B?QzREMFJhWWpPWFd5MFR0SlF4Um80NHhHaVQ3d2J5K0Q2RU42RlZES1hwbHdZ?= =?utf-8?B?NHVpR1RkZlhXZGxDQitsYXB0eDhPdmN3SWxITHNuYmVDY1VrSS9GWDhPRVcw?= =?utf-8?B?d1hYZm4yQzRvY1ZFRk8vNzdhNWFPRDhXY01KMkFOL1h0Mmd3d3NpcGsrR3pq?= =?utf-8?B?cStqY1JQQS9XbTYyNmJPbzY4ZUNzNzhKNWdTSmp5M3hHTUc0OUdPZzZQb25B?= =?utf-8?B?SURNYStFT2YzU3c1azNXV2VZQ0EwY1ZNSk83STJVUmhBUVg2SWJRUXhoYWts?= =?utf-8?B?NHgrdDdqalZRSjBsTGFwYW1XOFBtcGxrU1g5V01JRWRjMERBNHhBTmpBR0E4?= =?utf-8?B?NmpUcnFId3lWaE5RSTZZcVhhRjVsdllkcGloUU5Bb3pBUDRSOGlUTFNmdEYw?= =?utf-8?B?elhldyt6TmFUL09KUjZMWFEzSnpBM2oreTNWQ0tRTDc4b0pDTFFndWhnMi9R?= =?utf-8?B?RGRLaGFENHV6TTFROWtKYjlNUXRCQnRpQXNycmxsNDJRckJtZEI4T0l4dTZP?= =?utf-8?B?RzV4djNJMzZibWNUWSt1ZTMwQWZoQXBCU2p2b0FWTkpKZ1plUmVyM2VZWUNs?= =?utf-8?B?MkgzY3p3VTRkY3c4c1FnNksxbi95N0pmbWhrd1ZvMXdFSGgremJTa3l0K3R5?= =?utf-8?B?VWt4akg4bU9VSms2ZzJqRTdTa3RJSUpwOXkzcUpuckhEQ3pWVjNKblF1VmdO?= =?utf-8?B?MjM3NmpYVnJwNFFKdFg2aFJFREFiQTFNQkk3eTdFdi85TksrUVRGY3hNbkJt?= =?utf-8?B?a3JGYm9KOU00ck5tdUMrTHpwRWJsSHdxc0U4S1A2TUZzeVpiYzAwSlp1SUVo?= =?utf-8?B?ODNTTG1BYUxjWjh6V2Mvb01DVzNubTQ3ODhXWFRBaWtTaFJLOTZWR24yUUxM?= =?utf-8?B?Qm9hbkVCY1g3NFVFamJOS0VrSlJCdkdoblVGKzlSUWhJcjRNVEJWc3VSaEUx?= =?utf-8?B?czl1L2gzM01CbWVtQUk1QWdOU1kxZVdhNjJ4NWV0YWtNRmRxeHM0empSOTNG?= =?utf-8?B?bHdFeHVJa1g5aHUwZm9jRXV4TklCL1kyc05XVkY4SWYwTW5RVWRobmN2TjFV?= =?utf-8?B?cTJaV0s5d3FSajh5Z1hMT2c4dFY2cm9uVnNHbGhjdVJSWWViaFArdmROSkow?= =?utf-8?B?K2VmL2dIdjYxOS93cWtRNUdEbERBNmlvV3JEcmxnTm1Dd2E1K05OOGJuOE1a?= =?utf-8?B?RU1yQTJOUy9jK3o0NFhUWDFNOU5WUDROYzZybGlzb2QrcUhIbU94SHp6QVRS?= =?utf-8?B?MjBmcVdwcFdhdC9XV2NURUlkNHN3Z1NaV1pGSW4vWFNjVnlKYjEyTWg2TUll?= =?utf-8?B?NThsT0trOU9hbGFiR3VNNkM1dXRLcUZBM0M0NWdsUnVUM3FhRVcrT0N0Mkdk?= =?utf-8?B?ZTVSUTY4cGR3Rm4xYk9nU0NKVXRKbWtXOXZjeTZTL0F1NmNXdm9NemxaLy9P?= =?utf-8?B?S1Ntd2tnTUtNTENGWldOdkEwNnVuc2ZISTJBbnBPbGVWSGhoVGkva1NRTTJQ?= =?utf-8?B?MzJ0OWE5aThjUkVVbGozeWk5dWFrZExnQjgwYkM5ZW1vMjZ0bUJqejBadWJK?= =?utf-8?B?WlZtV0lVWlhHODNqaGZGOERPcjhIZC9nN1ljaHRkdHk5UnYvcTM0VTVmeEVV?= =?utf-8?B?TlRuWEk5TUM0RlRXend2UkQ3Yy9CdTFveE9sRHc4SzZIc1FIWXhBM0FiYUo2?= =?utf-8?B?TzVsd2k0THlvdU01V3pLWnJPZ0FhL29tWFR3cGZCUEM1Y21VSjFFb2YzVWs5?= =?utf-8?B?TVVpcmZMOWZoaG9oRmJoY1ZiVk10M0t6eHhySHVFSTJqTVZqQ1o1UlVzVjdO?= =?utf-8?B?MVM4bWtGZEpTeEVNTXlSeWt0NUtQNjFNV0hkWmdYM3ZZVFptUGsvNDE1aU9x?= =?utf-8?B?WjlIbWVXK3NpZnlESVZkSDY3RjMrM0RUWUZGT0Rhc2FsODVVU0pyM3p3c25B?= =?utf-8?B?bmJPNUxlWlpOeHJwVlBOZHpEMjVWVUxLN0tkTEl1d3pJZ08xUG9MQT09?= X-OriginatorOrg: citrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe4c420f-3bb6-4374-eab8-08de432454bb X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2025 19:40:45.4405 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JftJmo69iOimiHvpQ357kOW3PT8iQHJAlBMbca75rFD1GcWjbonUWauPKf78SOOYbUQuqRApNlsTy1kX0f9+hw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8045 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1766605279501158500 The current logic splits the update of the amount of available memory in the system (total_avail_pages) and pending claims into two separately locked regions. This leads to a window between counters adjustments where the result of total_avail_pages - outstanding_claims doesn't reflect the real amount of free memory available, and can return a negative value due to total_avail_pages having been updated ahead of outstanding_claims. Fix by adjusting outstanding_claims and d->outstanding_pages in the same place where total_avail_pages is updated. Note that accesses to d->outstanding_pages is protected by the global heap_lock, just like total_avail_pages or outstanding_claims. Add a comment to the field declaration, and also adjust the comment at the top of domain_set_outstanding_pages() to be clearer in that regard. Finally, due to claims being adjusted ahead of pages having been assigned to the domain, add logic to re-gain the claim in case assign_page() fails. Otherwise the page is freed and the claimed amount would be lost. Fixes: 65c9792df600 ("mmu: Introduce XENMEM_claim_pages (subop of memory op= s)") Signed-off-by: Roger Pau Monn=C3=A9 --- Changes since v1: - Regain the claim if allocated page cannot be assigned to the domain. - Adjust comments regarding d->outstanding_pages being protected by the heap_lock (instead of the d->page_alloc_lock). --- xen/common/page_alloc.c | 88 ++++++++++++++++++++++------------------- xen/include/xen/sched.h | 3 +- 2 files changed, 50 insertions(+), 41 deletions(-) diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c index 1f67b88a8933..b73f6e264514 100644 --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -515,30 +515,6 @@ unsigned long domain_adjust_tot_pages(struct domain *d= , long pages) ASSERT(rspin_is_locked(&d->page_alloc_lock)); d->tot_pages +=3D pages; =20 - /* - * can test d->outstanding_pages race-free because it can only change - * if d->page_alloc_lock and heap_lock are both held, see also - * domain_set_outstanding_pages below - */ - if ( !d->outstanding_pages || pages <=3D 0 ) - goto out; - - spin_lock(&heap_lock); - BUG_ON(outstanding_claims < d->outstanding_pages); - if ( d->outstanding_pages < pages ) - { - /* `pages` exceeds the domain's outstanding count. Zero it out. */ - outstanding_claims -=3D d->outstanding_pages; - d->outstanding_pages =3D 0; - } - else - { - outstanding_claims -=3D pages; - d->outstanding_pages -=3D pages; - } - spin_unlock(&heap_lock); - -out: return d->tot_pages; } =20 @@ -548,9 +524,10 @@ int domain_set_outstanding_pages(struct domain *d, uns= igned long pages) unsigned long claim, avail_pages; =20 /* - * take the domain's page_alloc_lock, else all d->tot_page adjustments - * must always take the global heap_lock rather than only in the much - * rarer case that d->outstanding_pages is non-zero + * Two locks are needed here: + * - d->page_alloc_lock: protects accesses to d->{tot,max,extra}_page= s. + * - heap_lock: protects accesses to d->outstanding_pages, total_avai= l_pages + * and outstanding_claims. */ nrspin_lock(&d->page_alloc_lock); spin_lock(&heap_lock); @@ -995,11 +972,11 @@ static void init_free_page_fields(struct page_info *p= g) static struct page_info *alloc_heap_pages( unsigned int zone_lo, unsigned int zone_hi, unsigned int order, unsigned int memflags, - struct domain *d) + struct domain *d, unsigned int *claimed) { nodeid_t node; unsigned int i, buddy_order, zone, first_dirty; - unsigned long request =3D 1UL << order; + unsigned int request =3D 1UL << order; struct page_info *pg; bool need_tlbflush =3D false; uint32_t tlbflush_timestamp =3D 0; @@ -1012,6 +989,7 @@ static struct page_info *alloc_heap_pages( ASSERT(zone_lo <=3D zone_hi); ASSERT(zone_hi < NR_ZONES); =20 + BUILD_BUG_ON(MAX_ORDER >=3D sizeof(request) * 8); if ( unlikely(order > MAX_ORDER) ) return NULL; =20 @@ -1071,6 +1049,28 @@ static struct page_info *alloc_heap_pages( total_avail_pages -=3D request; ASSERT(total_avail_pages >=3D 0); =20 + if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) ) + { + /* + * Adjust claims in the same locked region where total_avail_pages= is + * adjusted, not doing so would lead to a window where the amount = of + * free memory (avail - claimed) would be incorrect. + * + * Note that by adjusting the claimed amount here it's possible for + * pages to fail to be assigned to the claiming domain while alrea= dy + * having been subtracted from d->outstanding_pages. Such claimed + * amount is then lost, as the pages that fail to be assigned to t= he + * domain are freed without replenishing the claim. + */ + unsigned int outstanding =3D min(d->outstanding_pages, request); + + BUG_ON(outstanding > outstanding_claims); + outstanding_claims -=3D outstanding; + d->outstanding_pages -=3D outstanding; + ASSERT(claimed); + *claimed =3D outstanding; + } + check_low_mem_virq(); =20 if ( d !=3D NULL ) @@ -1518,7 +1518,8 @@ static void free_color_heap_page(struct page_info *pg= , bool need_scrub); =20 /* Free 2^@order set of pages. */ static void free_heap_pages( - struct page_info *pg, unsigned int order, bool need_scrub) + struct domain *d, struct page_info *pg, unsigned int order, bool need_= scrub, + unsigned int claim) { unsigned long mask; mfn_t mfn =3D page_to_mfn(pg); @@ -1553,6 +1554,12 @@ static void free_heap_pages( =20 avail[node][zone] +=3D 1 << order; total_avail_pages +=3D 1 << order; + if ( d && claim ) + { + outstanding_claims +=3D claim; + d->outstanding_pages +=3D claim; + } + if ( need_scrub ) { node_need_scrub[node] +=3D 1 << order; @@ -1842,7 +1849,7 @@ int online_page(mfn_t mfn, uint32_t *status) spin_unlock(&heap_lock); =20 if ( (y & PGC_state) =3D=3D PGC_state_offlined ) - free_heap_pages(pg, 0, false); + free_heap_pages(NULL, pg, 0, false, 0); =20 return ret; } @@ -1918,7 +1925,7 @@ static void _init_heap_pages(const struct page_info *= pg, =20 if ( s ) inc_order =3D min(inc_order, ffsl(s) - 1U); - free_heap_pages(mfn_to_page(_mfn(s)), inc_order, need_scrub); + free_heap_pages(NULL, mfn_to_page(_mfn(s)), inc_order, need_scrub,= 0); s +=3D (1UL << inc_order); } } @@ -2452,7 +2459,7 @@ void *alloc_xenheap_pages(unsigned int order, unsigne= d int memflags) ASSERT_ALLOC_CONTEXT(); =20 pg =3D alloc_heap_pages(MEMZONE_XEN, MEMZONE_XEN, - order, memflags | MEMF_no_scrub, NULL); + order, memflags | MEMF_no_scrub, NULL, NULL); if ( unlikely(pg =3D=3D NULL) ) return NULL; =20 @@ -2467,7 +2474,7 @@ void free_xenheap_pages(void *v, unsigned int order) if ( v =3D=3D NULL ) return; =20 - free_heap_pages(virt_to_page(v), order, false); + free_heap_pages(NULL, virt_to_page(v), order, false, 0); } =20 #else /* !CONFIG_SEPARATE_XENHEAP */ @@ -2523,7 +2530,7 @@ void free_xenheap_pages(void *v, unsigned int order) for ( i =3D 0; i < (1u << order); i++ ) pg[i].count_info &=3D ~PGC_xen_heap; =20 - free_heap_pages(pg, order, true); + free_heap_pages(NULL, pg, order, true, 0); } =20 #endif /* CONFIG_SEPARATE_XENHEAP */ @@ -2656,7 +2663,7 @@ struct page_info *alloc_domheap_pages( { struct page_info *pg =3D NULL; unsigned int bits =3D memflags >> _MEMF_bits, zone_hi =3D NR_ZONES - 1; - unsigned int dma_zone; + unsigned int dma_zone, claimed =3D 0; =20 ASSERT_ALLOC_CONTEXT(); =20 @@ -2679,12 +2686,13 @@ struct page_info *alloc_domheap_pages( else if ( !dma_bitsize ) memflags &=3D ~MEMF_no_dma; else if ( (dma_zone =3D bits_to_zone(dma_bitsize)) < zone_hi ) - pg =3D alloc_heap_pages(dma_zone + 1, zone_hi, order, memflags, d); + pg =3D alloc_heap_pages(dma_zone + 1, zone_hi, order, memflags, d, + &claimed); =20 if ( (pg =3D=3D NULL) && ((memflags & MEMF_no_dma) || ((pg =3D alloc_heap_pages(MEMZONE_XEN + 1, zone_hi, order, - memflags, d)) =3D=3D NULL)) ) + memflags, d, &claimed)) =3D=3D NULL)) ) return NULL; =20 if ( d && !(memflags & MEMF_no_owner) ) @@ -2701,7 +2709,7 @@ struct page_info *alloc_domheap_pages( } if ( assign_page(pg, order, d, memflags) ) { - free_heap_pages(pg, order, memflags & MEMF_no_scrub); + free_heap_pages(d, pg, order, memflags & MEMF_no_scrub, claime= d); return NULL; } } @@ -2786,7 +2794,7 @@ void free_domheap_pages(struct page_info *pg, unsigne= d int order) scrub =3D 1; } =20 - free_heap_pages(pg, order, scrub); + free_heap_pages(NULL, pg, order, scrub, 0); } =20 if ( drop_dom_ref ) diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 1f77e0869b5d..d922c908c29f 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -413,7 +413,8 @@ struct domain unsigned int tot_pages; =20 unsigned int xenheap_pages; /* pages allocated from Xen heap */ - unsigned int outstanding_pages; /* pages claimed but not possessed= */ + /* Pages claimed but not possessed, protected by global heap_lock. */ + unsigned int outstanding_pages; unsigned int max_pages; /* maximum value for domain_tot_pa= ges() */ unsigned int extra_pages; /* pages not included in domain_to= t_pages() */ =20 --=20 2.51.0 From nobody Thu Jan 8 12:32:48 2026 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; 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=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1766605283; cv=pass; d=zohomail.com; s=zohoarc; b=Fd82VYEcqm7K3ibOY85Lj6lA9M1R9de2VqQ57TGeefydhVIPqUaK4/21WgGeaZySyjX7bNtD46Xlg+I7k059eX1JShob1CSxxwQ6mDr+SEA63RPklUj7G+ulphYWttIiaIxuDnbMQZTNhIS2iVIz3oBfbJOJMnrP8ZRuZ945v9k= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1766605283; 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=ibB7GBK4esDTfWKH202Z+KOXHrBuNaaGhAz82G4CK3I=; b=X65hQ22WOIEZ4AybZCvmmA1ZqqHnWd39Qh96Z0b0gTPspAhtoPfXXcFDB8cPXm4GclI7v8fbAkZE9ujpMpX8bWwnUCLAmeTRj+FnFoOw3ST7f8r3WGMs2/fy+RtEn7yRFqLgZL8w+ljwQWOTgbOJ2I4TKUmWIF0lnlO2zO+smZM= 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=citrix.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1766605283888442.16475729561876; Wed, 24 Dec 2025 11:41:23 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.1193147.1512136 (Exim 4.92) (envelope-from ) id 1vYUj7-00084O-VX; Wed, 24 Dec 2025 19:40:53 +0000 Received: by outflank-mailman (output) from mailman id 1193147.1512136; Wed, 24 Dec 2025 19:40:53 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1vYUj7-00084H-Sg; Wed, 24 Dec 2025 19:40:53 +0000 Received: by outflank-mailman (input) for mailman id 1193147; Wed, 24 Dec 2025 19:40:53 +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 1vYUj7-0007pC-66 for xen-devel@lists.xenproject.org; Wed, 24 Dec 2025 19:40:53 +0000 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azlp170100001.outbound.protection.outlook.com [2a01:111:f403:c110::1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 73eadf0a-e100-11f0-9cce-f158ae23cfc8; Wed, 24 Dec 2025 20:40:51 +0100 (CET) Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14) by IA1PR03MB8045.namprd03.prod.outlook.com (2603:10b6:208:595::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Wed, 24 Dec 2025 19:40:50 +0000 Received: from CH7PR03MB7860.namprd03.prod.outlook.com ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9456.008; Wed, 24 Dec 2025 19:40:49 +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: 73eadf0a-e100-11f0-9cce-f158ae23cfc8 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FNYSBPm5XghbdV784WDNnxii09yXwxm4RkNLg0anI/GC0D6nHWLePAvJMxlwGqledod6qNM2LhVdnb+E2Mb2pgIISrQRQiMWTed4E2UiHqnEwuPOp9Ivz/xeiswAiPkrXvEye254DcdHMGbhpnAl5CH8XWYGb25OmvHXO8ofoWRpFrF9H/9MtcDnGYzQb895DS598y/A9KkLcvzdbcgmOhp1xgBuqARdwThOGXJtVQ9Sq35JDocOzeFrE+5/yNwAUNQaTrZghdXHtvr4K1wWgix/cHoc0SWC8yWWIZ7PjS18EKI5nUg1DXiWpUpk9YyJBMRaIsD1zffYevNKmzA+wA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=ibB7GBK4esDTfWKH202Z+KOXHrBuNaaGhAz82G4CK3I=; b=WT4Ec+09QQLEZ8+MvDNWT0DAU3awFSGLSn2osx5JElnTYh8Wr2DwVazNtVjzLENQMdWh4vq6+KhWRkb6HStbSyf2WJXOKw7pCJVu3NUvxhIJGVMMCMsXDxH2QiRm4mXf/O/1iwLGzJiRSHmvURSDpgpgD961oY1Vhlo2DgHpqDehASp4awOl1vqOkXJ0OHOrNhPB8GfrXuwtW46MBPXk20He7lzMYNMN7iJfxBJy+sOurhQak7vNP2NtI7vB9liAYaUCCcwudlNeIXRoENBAMK9+hNVKaas7VjcoBpITfKVNSbIKia/pPGYm9VYfwDXEVg+WnFojd21yNAIOAb9jFQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ibB7GBK4esDTfWKH202Z+KOXHrBuNaaGhAz82G4CK3I=; b=smo1jFD6gl7LJuxiNQpAi/JjBTH4XMallSQBPqNhfinQW9HLhOYcmHBDlCHGy/XTN5salp+duWlwft1675Au2kbKIfkiwoB9Wl+/1KSkKCcOvnQrDn33f3PsGNT36Qq4vIykpbZBJCw3jqHg5yKl7SRr5swA9CHywiYsVba6yqw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com; From: Roger Pau Monne To: xen-devel@lists.xenproject.org Cc: Roger Pau Monne , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , Stefano Stabellini Subject: [PATCH v2 2/2] xen/mm: reject XENMEM_claim_pages when using LLC coloring Date: Wed, 24 Dec 2025 20:40:35 +0100 Message-ID: <20251224194035.60173-3-roger.pau@citrix.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251224194035.60173-1-roger.pau@citrix.com> References: <20251224194035.60173-1-roger.pau@citrix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PAZP264CA0074.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1fa::9) To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA1PR03MB8045:EE_ X-MS-Office365-Filtering-Correlation-Id: aa1e600b-fdaf-403f-ed99-08de4324575e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SWRhSVJNQlBOTmo4V3lZWEtINWVEbERXc1V5VUJ6NjN6TTd3bzBEMHNObk1K?= =?utf-8?B?SU5nMDBvMU9lSUplOTVUa09mb21kd2kvSFplaVMzU2pGZzdqWVBrSnU2eWF6?= =?utf-8?B?UklwTnRTanZNNTgvclAzM3lrOVBmR2dsU3lMUXh3aEFSS0ptWkk2NERnQVIz?= =?utf-8?B?YTQrc01lZ3NNeGNTYm9lUnQ3UTc3L20zNmoySmNHbVpLM2pFUS8xNVlyanM1?= =?utf-8?B?VlVOallXRGU3dHlucGpCN3E5clRBNG1JOTRBMzBYM0JSWnc5WEJIczB6elNW?= =?utf-8?B?QmZFWHZ2dEpHVjRMRlgxUXdTalpmWHkxTVNTMk9LemtzOVdZQ3JXMW5aSXFR?= =?utf-8?B?Q0piczI5cjFSMVRoaXZwSmZMU0w1dkovZGJQQTE4L0QzL2E1OE9SdUd3Zjd6?= =?utf-8?B?RlpEV2R2NTdiYS9LNnFmejBPWW42TFljdDNzcFk3cG10V2xqMUROVm12Mm5a?= =?utf-8?B?aDY3ODVvSUtIaStscmd2aEZhVDRDU29GTGsra3JoR044aEdXa1BhOHRhUG5V?= =?utf-8?B?bGl2VEZCdGtydC9Cd1hDcW1NSWpNdVJDUjVWSTZDVDhBTGhPcFNOM2lXaDRD?= =?utf-8?B?Wmk3VlN4SXFaMHEwbkdLVXMyMDFuaHZ4a3JsYmtBR05HNi9kZTkwbjcvS0xu?= =?utf-8?B?c24rNHc5RjYxdmdKV2E5NzdjV2dHaFZOQ0ZNMyt1UzNob2VxU3plckVQL2Mr?= =?utf-8?B?TlY0YzF0NnNrQk1lK05Sd0NaeDMwSGZHUEZyU0k4VEtKalJRai91K2Jxdnh6?= =?utf-8?B?S0FiNzZBZzBjbGxDSU14OWtKelJzQ1BiN3NWZ2V2ZExjTS9tK2lpc3Z1UXBI?= =?utf-8?B?VGhWNGI3eGpteC9rVzZhcUd4NnJ4Ym1JNWoyZCsrQ0N4ZXU3NXV3VHFhT0ZB?= =?utf-8?B?ZnM1MlQzdEJERnhML29xa0hvdlhkTkhUSTMvSE13dEFFcnBMb3pib1RvSUNE?= =?utf-8?B?TlcxK1FIN1JjM0xJMnFSbUEvaXBjODdOSWVnMldOUTYyZ1l2MFBMOFRESGVp?= =?utf-8?B?UFFSVTFRV2Ria1NpdFh1WThjMUFvY2VPVnVoZXdLczJCTGc3UEI2QjVpaTRz?= =?utf-8?B?QmQrTm5OWVBhYnN4cGhFL2gxWExkOE8vN2dCcGpyRC9yVWxvY2pUZDdvck85?= =?utf-8?B?Y293dFBNcE1GdUNLTGk2eG9VQ0o0a3FHUGJZa1hRMVlzOFh1R2tpNzVHSlVE?= =?utf-8?B?OVQzTDAvSFN2L29NUkFZaURmVW50THFSNlN1ei9SVUllamxPR21iU25keVVm?= =?utf-8?B?elMxNUlaZDZITWNPVWxhT3Y5bXVtaVltTXZaZjMydWNGNzFJa05hYnNrenBm?= =?utf-8?B?ekp4ZzFqdjBoZWpyQ2c4eEY5VERUcGZLbjBUZllXMlE3VWRIUWYvSTQ2M1Rn?= =?utf-8?B?UzFoS3pobC9WTUl6UjhFbDdmZVpNUmdpeU1YUmNxMmxXbFZoNlQ1emJlRlNY?= =?utf-8?B?NFJqUVhtWnJQVzlWVHBLdGJCbnRHaldGbzVoMG4xZE04QldsQjRiUk13aDRn?= =?utf-8?B?U0VyVnlieDhuZ3ZDR3RiTXRhMG9SUlhaV0o0VEwxYmRPQ0hTd2ZyM1hydWwx?= =?utf-8?B?cmliOGYxZVBDUTJBTHVYMk1QZ2JSb0hyL2Y1M2dzOUFSWCttQ0t0ZmtjMHBx?= =?utf-8?B?ZExiZnpBd1N4UGhjRXZIZ21ldE5LOTJSUzBhVFAzMUpxMVpCNDRoMGJwbzJS?= =?utf-8?B?blp6Qmt6VHZJVnd5SU9IeHFXbzBveENjRDdpZGRydzlaYi9TNVNpQU8vRTRQ?= =?utf-8?B?UWw2K3Rtc0dJSHhLTUIzSkhMVi9iYUxyd0FTWnRXeEtaZUFjTDhrUDRGSThL?= =?utf-8?B?bCtYaDNpenMvSEVoRS9SY1NqVEFDRVB4bmwzd205S1MwWncwZk4zQmdpdlQr?= =?utf-8?B?VGpxRUh4Uk1vU08wM01PNG1kSVBBYnZaOS9WRFp6RXNlS0t0ai9jTGs0dEJP?= =?utf-8?Q?1BIcQKz16C8WxtVZreAncO/seJnxU5vW?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b0l6TDRiUXlQUU5KcytSYTRvbkkvVmpXbGFCSk02MTIxWlZ1djEvY3dzYmRy?= =?utf-8?B?cmw4SkNqclR0SWtJaHJYVHRZSWlZOGgxRzVMT3pPWFBhZy9VakJoYkExWTlL?= =?utf-8?B?UjZLQkhlMTJ0ZWxZd3RtRnhXeDJNMVBneTJvYVBmT1ZzYWZmRVBNdFlaMXFK?= =?utf-8?B?dFVRYzFEd2lpVEpNQm5MUTczTTJmb2dvb0I1ZDI3YUMyazlvZGs0VWREVVlS?= =?utf-8?B?aVVRWi9yZDVORlZ6ODJsTmo0ZmhTNFkrV1hFeHpneko5NjRpTXppT1ZtNkJo?= =?utf-8?B?NFNpZDh4aE5NYTJKNzhGNEpBUjErQ1BmZEJCeHRrRUpUS2Vqd2p1UlBKRllY?= =?utf-8?B?bXVLSkFlY3N4anVUZHhhK3JmT24vdTNkalREMmpMeGZnR1BQS0lDN3lZKzho?= =?utf-8?B?MFpSdFZkWUQ4QkYwY3YwdTZkOWJJN3pZU3BLRmxvRzMrd215bjEwQXlFNjJV?= =?utf-8?B?NnRiL0E5UjlBelR0OEs5QW1zRzdQcFZ2ZjhVeGFWTUViOW5SLzVlNVRsd1Z4?= =?utf-8?B?Y2djc2R3UmRYWDUyMklLeEVqaiszWlVnNTY0TkpqZXcxNFZ1Vmc3K3FIci9z?= =?utf-8?B?cDBmaVpOaEhBUytZd2FHN0pQZmliTVVnZjdUdUNIZk9EZi9ydU9ob253WkNP?= =?utf-8?B?d2t3NnJYbGxLNDRmQkdkaVpnMEdjanRhNVlRNEY0RDVQSXNGT3VDUkdwcmVT?= =?utf-8?B?TWZIU1d3SEJnMU9URXNsOENRdnZmekgybTg2eEhycmdPR3V4bWptYnFZZEZ4?= =?utf-8?B?VjZHS2hiOGlMSzhzM0dGb0piMWQvcjZEK3QvTVBWSXRVYi9aY0RPTGtLSEFn?= =?utf-8?B?STJLQnhwMndiRnZKaDhOK3Fuek0yV0trc21Fa1haSW12L3lGaVNRN21jc1c1?= =?utf-8?B?QVF3Si9ZYnhiZERONnowK3UrTlN0TDU4NnVlbkx6SmRWTGw5czJZQ04wMXFs?= =?utf-8?B?a25TRUExc1RJT2VlT2hiZHdJcXFTc1Vsb0Z4cnJYL1BQVWRGZ3p1c0tzNE5v?= =?utf-8?B?QlNnamt1SWdCc0phczNSckU1WlZkelRhYjdpbVljcVhIaW42ZW1mWnIvMnJl?= =?utf-8?B?VUdFcG0xZ1oxN2dHdU9Nbk5XanNQdzFuSXBQcGNwRk1EcTc1aHVTeC9YTTZ2?= =?utf-8?B?QUF5NmVkcXJnRDNNVlByblBwRDZ6b2Zoenk5Rm9XS3BYcmduWEZPb25iVmpa?= =?utf-8?B?a1ZRNzZneVRrTzVKRFAwcTE4SG1zUEdTeEdEZDl0bkVZempjNmdZVnVFeEg2?= =?utf-8?B?T0prOGRWdDR2bHNMNUVLRm1GMGpoQjBrNGlMdEk2bzNlSEdJdFN2UW9MZGFC?= =?utf-8?B?RU9hS3gyRUhBcHY2VGJleXc5SzEzbzlhZ0xBMXcwbFZaNmNDODMzR0doQUQr?= =?utf-8?B?NkJRWnhOVERnYzhUdFFqZWtDaW5OSmh6cU0wVTJQWGhWSW51UTNDN3dqNU55?= =?utf-8?B?RmRqRVRPd3NBcXE3UlkyR0NKK0N6bDB0T2RUZUdrNXlUZGhVK01sREhjaEV3?= =?utf-8?B?ZnlUei9BelpIb1BXdWNaYlhqRmFxQkVFTVY5cGpYQUVPWDg1RzU2MnZsUkdr?= =?utf-8?B?WGtpMHFZNzhKcGRTY1dSYnpYVjdNVUg2TjVUMkJhK0dJSytMTDZrUFFsK2t6?= =?utf-8?B?OU9kL08zYWRPQXZ5MU5FNE82VmRYc0hDSGM0cHVRSjhHQUZVZHFSSU03Qmto?= =?utf-8?B?ajFRd2tPd1VUdHFlZ3hyUEVJYlRFLzQ5WUt6SndwYXZzb09SMDZTSk1DSEln?= =?utf-8?B?SVZyRzZCZUY4emF3NzRjZ2o5RTlWK1RRaTMzT0ovdW5VZmtwT0MrY3pBWS9t?= =?utf-8?B?RDNGMHJ3Q0JrZVBUcVdiSGJTSER1NzZmNFArTE5uWktYbDlHOGp6NUtsMWU4?= =?utf-8?B?dSt6cGhvTklibEZyTE14SUJ1ZU5LUlI3QnRCQWFCUGNSTWg4YnY2V3Y2blRp?= =?utf-8?B?ZGx1RVEwbUxxVXR0SGJZVnptYjNndE91S0c5YkZvN3lpU0ZYakdCZ3VUdUx2?= =?utf-8?B?anJYbVptY2tGdU5WdlBqb3l4QXc0L2U1QWdZTXltN2oyZmJYMk1ZYzJna0xZ?= =?utf-8?B?azFDSzJZb3ZUQ0NRRCs2dEtEdjM1aFA3K1doTHlFcVR1TjU1d09kT3FQZ2FS?= =?utf-8?B?WC84VkZrSklrUHZpcWgvOU0zTGZ0MjZuZFBXb3dmeHFTNUtKUGE2VDlSMEFZ?= =?utf-8?B?L00yS1R4c0VVWllLSzBQTTQ1SzRNck9aMDY2cGZiQjJnQi9WZ2VRcHVXR2V3?= =?utf-8?B?STRiemVJanVNc1ZicXN0MCtaV0tZdFRaczFjek5RWDlOaHZaZlhGd3FVaFdt?= =?utf-8?B?SU1NVk1QMkdvMmMwNzc0dytPREwrODBKeW5hU3JjNWhWUTZjQ3dxUT09?= X-OriginatorOrg: citrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa1e600b-fdaf-403f-ed99-08de4324575e X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2025 19:40:49.7646 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5su6wauNT2RJg3wNk948VCiSjISZFhLhIHEmIS9uYKkA+HW/WS4TSFJf5ceZosPGCaFaSkPQEEqBsEI4PaZnGw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8045 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1766605284988158500 The coloring allocator ignores claims, reject the usage of the hypercall if LLC coloring is enabled. Note that the usage of alloc_color_heap_page() is selected at boot time, and it's a system wide decision. Once enabled all domains will use alloc_color_heap_page() for allocations, which ignores any outstanding claims. The hypercall can be enabled if/when LLC coloring is adjusted to support claims. Fixes: 95debe51a936 ("xen: add cache coloring allocator for domains") Signed-off-by: Roger Pau Monn=C3=A9 Reviewed-by: Andrew Cooper --- xen/common/memory.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xen/common/memory.c b/xen/common/memory.c index ae805ccbe4d1..3d978227276a 100644 --- a/xen/common/memory.c +++ b/xen/common/memory.c @@ -1660,6 +1660,9 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE= _PARAM(void) arg) break; =20 case XENMEM_claim_pages: + if ( llc_coloring_enabled ) + return -EOPNOTSUPP; + if ( unlikely(start_extent) ) return -EINVAL; =20 --=20 2.51.0