From nobody Tue Apr 7 14:36:37 2026 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013034.outbound.protection.outlook.com [40.93.201.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FF0B374162; Thu, 12 Mar 2026 20:37:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.34 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347850; cv=fail; b=iX4cUP2QDfKzwSzxHnIt1KWe/DNHruMeSca70LygwrX+OgH66HXdmx/8G3DN9AkcEzuyRRgXxsSuumT2nqmGvYHs6VSi3pXSNFZuq4bKDDaoEKC2EIyQIAXr9QF0hh6x5I6X14lgeAICzVF4utcomLKpIUwFI/9trn6wykjmTOk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347850; c=relaxed/simple; bh=LZwC2yhfGjSzrOyVVOvbiRkMZIHZukXmBKXTHYY1Y9Y=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QvFd256rEkaqgzaFrnc98Ir5WDAzmjFUrPgtwUL4zVKRCrehaG4/n+C9LOOrzUyK6RCOCZKEoTxwj6G13hfiUF36cC//hs4c4xRFcWwAcgZggSvFEajfjvZd0z6teW98tcF76Z8VB7J9V7s8laThC+RhbovobdqE/poNpYHjuEw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=XbWcMfYX; arc=fail smtp.client-ip=40.93.201.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="XbWcMfYX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w1Ub+wwhaZMpS+6Z5FgwPzuy0YBxMMpE4i9jRcmiBcJgKhOzkyuiuyHdwLLtIsCZysm9GGR2RN05Zy8ABTyAxVI4MDldLCiPPtkAUObcZl0juuuYj6RapPIiYMaf74VyduaKMpfXsD4WUKxoRlPwTMtL/2kY/MIdLDtdHh4gOnBTCBgPpQ/bkrvmzPa1EgYSekNqORnTbWEVZKZEYWPyg6Ny5yI5eifkm9ie9fCn8Hj6MkqxPyttMru5HiSPQh1g0jJeHAAvT6e8D41lu13+Fp3PuQHpgEjbPyIVaISKZG194e8xt5qqV4+wRtbu4p/IJSFW53pCkI7IwYZVVyR05g== 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=5+VQ5jkS9m6C4J1QBhef2ptcLSFrnPV4NcVj86hTn+o=; b=IzTHksSIlWb02rDttHP9IqIr8MUwpDtBu1dZHfoYPD4+aAmT1MlD7Kpfjisc8qJw7QdsgUvYIM3JWUI0SrJ6fe+Kk8x2GYp/QuWsGqrlePujGeTJcMuX8pUc7C6oeGJ4xDC3th8QWn1IQjEgvzF4iliAUB/L26G4rm7KzVWBuIKsGJp8mO2Y5cx7RhcTZX8zwaf5t27InqnVgB2JMmnjgGLOynFg3uM/zp5XS7YrC2k8lvD9XU7vhnbGkavSCJx09JcuOi/6nep9wnYC60a8ftPZURkPHmEgTXyuvLVWPAxj9rHe4BdUosEF6lTcT3i9fJ/OaszbsHwIDOpbhpI8Dg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5+VQ5jkS9m6C4J1QBhef2ptcLSFrnPV4NcVj86hTn+o=; b=XbWcMfYXyevS89gw/JUu1Rj4cCjIZyD/edCl1G/Uzz4+wCxfYC1fDJ0yAVkMfR70yALh7uD30psYLxet42nK4JoMx3XBcSsYDCSWnOWF4P5HDuqAYDixiAZk1v7IuIsWXq86h37Vq+NCsuGp4wyqh3znjYLKIycyIN7uOYwUfAo= Received: from SJ0PR03CA0151.namprd03.prod.outlook.com (2603:10b6:a03:338::6) by CY8PR12MB8412.namprd12.prod.outlook.com (2603:10b6:930:6f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.3; Thu, 12 Mar 2026 20:37:24 +0000 Received: from SJ5PEPF000001D6.namprd05.prod.outlook.com (2603:10b6:a03:338:cafe::c) by SJ0PR03CA0151.outlook.office365.com (2603:10b6:a03:338::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.27 via Frontend Transport; Thu, 12 Mar 2026 20:37:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D6.mail.protection.outlook.com (10.167.242.58) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:37:23 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:37:21 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 01/16] fs/resctrl: Add kernel mode (kmode) data structures and arch hook Date: Thu, 12 Mar 2026 15:36:46 -0500 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D6:EE_|CY8PR12MB8412:EE_ X-MS-Office365-Filtering-Correlation-Id: 7a3253d4-04e1-4ddd-5f72-08de80772aba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700016|7416014|13003099007|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: GzvHRhNNV+bcx/zPc/EqdV1CHZ6YVywjpGJ5ZewYk702luxRM2lgbPvpcMbX35VrvOJNBq4p5qyMmpVBFpKqKzgQRznoGasJJ5GpTN7/QfGWW99TIw+QyPdHU9fRK4QoC6Af4pE0cgr1J2DHzAH4HY7JDvfSFh3tiCKWDUI7B5kcF6qeo3iWhXRNBnqmq+U/1dKC+ZkkstNxF3l65awmoccLaRPSdlmBoCAuRmhnQESsVAvenGFIEwXjYAkGUv0zaB4OksbuhtOVdVkR8XDrVr1oNgcEBhBnFKFZkz7rowHDnBcTtM0GcivUTH5IkFtb4wiEghwFVzEjWht+lYVqFxqZRCWsiHNel/rrmIWG1ZpS6tsKaMQF69IXy63wHiJSACIGDawGABQNCu1fVs2cr3ND1lUxDUVJNSNNOiPodyO78iNK9kfdbJ3uOHDsaEe043d3GiVLIAGb9B8xhtmLfQ1oUDE5FbpTYFxQbq1jkfvMMHleUowdu0XeqNlhpRLIpaDVnzo9S1qH2GH9Cm876xcVWut2t9cijqzcsA7nyXybEtxmVrmcq+t1foilauPqyTGlUIv8Wz62mHY+rDtt51KH6b6hLyNzQ9XgVPLsXWIhcsvIcYtO951SetAwtU8XMHz6cs9dh7kdCocxyaVbY31y7B4FMB4776nIlE6GlVJOlAhW9FwKgSslWlxuUoNbOuzUkdEI+Rdl7MXtOy4eFKalGVIMhLYR0b1d91UjiBhdGOaZXmwy+ph23ivicCvyp2M3PpOnaiSH768kpZa9Ig== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(7416014)(13003099007)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: R0lBaIQQIUgAzEH7EXNK7LF3XIXVmMNlZ09nvy55NWwxB1CmvVJY/EIVHOFustUreKMUa0kyys4/VWHbaFT6UGPBshRL2qJLeL1trLUbWpPLneOo44OZWX2cqmfEsjIG6Zz5T4yIUGQSrsE+x6dp8N5zb1wznsiwbT2IO3JPGUZRGO4zcS68h5ZDJ7+SXPfPm3DojH1pVm/YBvSbusEOlrsPB3meMUXqC6df5iRrSHCkw7MESvehKwFqBbzfILmmN7r4W5lMkslqzBjRUS0xLx03gJovtAJ/dBPxRxCVU8UU87LHFDF6hdypf8risX3CTujr538Y4Qh07yk2/G7RSCOb9+a2TwyiJj+uT5xTx4IlDLzPev6Mu3fbqXf/kjGiDkksBmS2+NbrN6D49LU4fwcsIyaaYnRZg5Vjc9dJlwPr+FNAI3vCpXtw0mJGNurM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:37:23.8167 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7a3253d4-04e1-4ddd-5f72-08de80772aba X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D6.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8412 Content-Type: text/plain; charset="utf-8" Add resctrl_kmode, resctrl_kmode_cfg, kernel mode bit defines, and resctrl_arch_get_kmode_cfg() for resctrl kernel mode (e.g. PLZA) support. INHERIT_CTRL_AND_MON: kernel and user space use the same CLOSID/RMID. GLOBAL_ASSIGN_CTRL_INHERIT_MON: When active, CLOSID/control group can be assigned for all kernel work while all kernel work uses same RMID as user space. GLOBAL_ASSIGN_CTRL_ASSIGN_MON: When active the same resource group (CLOSID and RMID) can be assigned to all the kernel work. This could be any group, including the default group. Signed-off-by: Babu Moger --- v2: New patch to handle PLZA interfaces with /sys/fs/resctrl/info/ director= y. https://lore.kernel.org/lkml/2ab556af-095b-422b-9396-f845c6fd0342@intel= .com/ --- include/linux/resctrl.h | 10 ++++++++++ include/linux/resctrl_types.h | 30 ++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h index 006e57fd7ca5..2c36d1ac392f 100644 --- a/include/linux/resctrl.h +++ b/include/linux/resctrl.h @@ -699,6 +699,16 @@ int resctrl_arch_io_alloc_enable(struct rdt_resource *= r, bool enable); */ bool resctrl_arch_get_io_alloc_enabled(struct rdt_resource *r); =20 +/** + * resctrl_arch_get_kmode_cfg() - Get resctrl kernel mode configuration + * @kcfg: Filled with current kernel mode config (kmode, kmode_cur, k_rdtg= rp). + * + * Used by the arch (e.g. x86) to report which kernel mode is active and, + * when a global assign mode is in use, which rdtgroup is assigned to + * kernel work. + */ +void resctrl_arch_get_kmode_cfg(struct resctrl_kmode_cfg *kcfg); + extern unsigned int resctrl_rmid_realloc_threshold; extern unsigned int resctrl_rmid_realloc_limit; =20 diff --git a/include/linux/resctrl_types.h b/include/linux/resctrl_types.h index a5f56faa18d2..6b78b08eab29 100644 --- a/include/linux/resctrl_types.h +++ b/include/linux/resctrl_types.h @@ -65,7 +65,37 @@ enum resctrl_event_id { QOS_NUM_EVENTS, }; =20 +/** + * struct resctrl_kmode - Resctrl kernel mode descriptor + * @name: Human-readable name of the kernel mode. + * @val: Bitmask value for the kernel mode (e.g. INHERIT_CTRL_AND_MON). + */ +struct resctrl_kmode { + char name[32]; + u32 val; +}; + +/** + * struct resctrl_kmode_cfg - Resctrl kernel mode configuration + * @kmode: Requested kernel mode. + * @kmode_cur: Currently active kernel mode. + * @k_rdtgrp: Resource control structure in use, or NULL otherwise. + */ +struct resctrl_kmode_cfg { + u32 kmode; + u32 kmode_cur; + struct rdtgroup *k_rdtgrp; +}; + #define QOS_NUM_L3_MBM_EVENTS (QOS_L3_MBM_LOCAL_EVENT_ID - QOS_L3_MBM_TOTA= L_EVENT_ID + 1) #define MBM_STATE_IDX(evt) ((evt) - QOS_L3_MBM_TOTAL_EVENT_ID) =20 +/* Resctrl kernel mode bits (e.g. for PLZA). */ +#define INHERIT_CTRL_AND_MON BIT(0) /* Kernel uses same CLOSID/RMID as us= er. */ +/* One CLOSID for all kernel work; RMID inherited from user. */ +#define GLOBAL_ASSIGN_CTRL_INHERIT_MON BIT(1) +/* One resource group (CLOSID+RMID) for all kernel work. */ +#define GLOBAL_ASSIGN_CTRL_ASSIGN_MON BIT(2) +#define RESCTRL_KERNEL_MODES_NUM 3 + #endif /* __LINUX_RESCTRL_TYPES_H */ --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012068.outbound.protection.outlook.com [52.101.53.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC94F37B013; Thu, 12 Mar 2026 20:37:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347862; cv=fail; b=rh9fJ/yZMuhNZCXyW3BTd/f9Li7sF1uS50gISYrp7NZC7GxYa+nes4dJsfhJCP8xq1TjIADkJCT07wXeIZpSrvkTgs+VvqXFXejCwqNYWFOz8QdETgQKyAc5vpgvOeF3TpTKSK31rF4D+jctJf8fWp5QDr6geoC1Ep6f4nJDRpE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347862; c=relaxed/simple; bh=lQlHA+tYh7aB5m63qTcRxiidIQ47742oAA4LEVqTU7I=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ud63tJDed6/xKoZB8QEB7eZDGH9NZKuxQfLpqUJkrXWeBWAtn4WV+HZSq451zf1dMqirQm+SSXPe2hJ6i0iB/KvAu5fyKYhc+eMk+DFgkAp65+7FSSY4OUaHPYkHmuUKzqCghEZcKmnLymz+kJgYGdFYwpqvc7W9U2Qqlu9GxxY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=l7jYldmr; arc=fail smtp.client-ip=52.101.53.68 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="l7jYldmr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xG90va/cuFWGd3/uPKYz1Dw6+CX369vWQCy5e33vu4339IIoW4WfxVEwNL4rS5nK+1RSHoE9pupezofTnZ0AST5ITMlSr0DRxgSwCqIq3iWC8IH1kmSKckLF93tFiCgL59J+jHlDh1KFpku+4PagVH726+0tVoGLnIHRUCN3xyHcjajJhn5k9u1fyE1f6X+fQT03Xt8NuLnzByBhdGIJYKgK0FvLRwWZ25TkLOG7qnvPNPjrZicjOKp7TS9XOqOfwYysrMTf5fvI1+Cok8zb7S28LkWpHlQuJxE6sd8uYNjbijQGwXQ+EaTJAmba6PW+RYjgvTqdVH6xMQ6PquXGCg== 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=q4Zuz4ABXU7O82CH0BPJ1azoN0PWrBLZeoKDLzfGPWo=; b=EOudl9ybAAFmbPwr/LVJpUaiAIzuRH0LnBA7s2ZTURPLzAKmG9vH2FLfUWhKsjsdW5HH6Xd63qds9e3SKSn3FUNUilEY4FAhNgJhxeDRGF42fiIOGdkrF8cmrZm9M7U6OZKEdi0kgcDdNhRhU/8vEILEOAtEUuvfB83MGCp1cHpoCmQP4cDpZ+V2SxctNuSZad0Vs/59THLV8C99dZr49hW6W4WcHOYVwo+XlAGk1LpqMhe2LlAgfABIA1FSrYr15MmwfsX9fQvAdbhN01mlgRJmMOx0h0+eI7s58YzMlosYO+I09XQqu1Fr8Y6MksKnSd2w6VT5k6ar2M358X5o3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=q4Zuz4ABXU7O82CH0BPJ1azoN0PWrBLZeoKDLzfGPWo=; b=l7jYldmrxI9KpH45fRtqtWLbV80w4ROXOYes2KPdXWZuq5BJRw+6bwenaxRif86eoYnogbS25TybRuW8qS0eB1cGBJ/rJwaOLkOQguWH19AEZumsgubbkgITTPRQhgtq3KKS0LIXKFOAlG6a/vxMpfkwzY4Byx0Ui0hcq5ksWCI= Received: from BY3PR05CA0020.namprd05.prod.outlook.com (2603:10b6:a03:254::25) by SA5PPFE91247D15.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8e8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.6; Thu, 12 Mar 2026 20:37:32 +0000 Received: from SJ5PEPF000001D1.namprd05.prod.outlook.com (2603:10b6:a03:254:cafe::be) by BY3PR05CA0020.outlook.office365.com (2603:10b6:a03:254::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.16 via Frontend Transport; Thu, 12 Mar 2026 20:37:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D1.mail.protection.outlook.com (10.167.242.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:37:31 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:37:29 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 02/16] fs, x86/resctrl: Add architecture routines for kernel mode initialization Date: Thu, 12 Mar 2026 15:36:47 -0500 Message-ID: <72315f83ddf35b0de53fb911f46623782d95f507.1773347820.git.babu.moger@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D1:EE_|SA5PPFE91247D15:EE_ X-MS-Office365-Filtering-Correlation-Id: 8462bf6e-63f6-450c-7d5b-08de80772f88 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|7416014|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: xrC5lDuK0PV5vXFYRMtyNBz9k1MPi+irTTqoa82NUZXhEB0gg/PRpjCPWn7l8l8nF3wSP9C3ncyzbO/3mq0bLRMHVfjkJrBYMPDX4f8MMYblsP1NK4yUP6bPqR4hAxGJ6+fjtrSNVN96iQfvt4/M52vBUyJC3Pn0NhnZFuOmCPyAQocAnSrWZw7S3Bjrf3dQRXmW2s7RENa5KFqIG9CmPy55Fuu6/lLYI/Ad+OpBaw47p/8e6o/KkmrSv/VtOVQWYV6CzeZ5jlqOlmvKRi3l6EUkB+q0sWLZyAvuoF3X+pqSQtAkLWNJfMQjmmttkiwcudcKmebLjzREhIoBMJgDiztEM6oH0ZwE+f+L5aCqD1T+HfEOtsSyv250TCFN65oiS0lAbEsroppZtm9+9YBLAkI9q01qNhWyGmlOb5frHw98fSjPffMCZm/5YaN+xGf6xGSTsUoO2jgOnBhy+42KCQkiMuqIhQBzZdF9c8k2lXy4jBFSOFgXb3rODPlFsd2ErYCjfzAoDpi0RvDEMMs6qEUEFWDdXjc7k1JIBmappzolSkS5vPnV9J/bGT4MOhe03BOVAXBuvQLkeugHqWXh+jfLDotwp1+YEsBP7Olsj1IRCfPV6RfNvOxTnwfxPov9AyvqdEVA5z3bMes2F9tIGD83+QmnJs+qpNRHheK8hIkoOvwwgzCP1oAf/mPsS8TsQmtXivY/2JLYwBdPr3UjyhWNA6Nhz0vKIj7VIaL+d7g= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(7416014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BZGcBKJumsMMGjdd4Ko38Tfe+KNJbRNgEix3ld98q2z4EzxYX+woCyCCUStxQPaEXXixyYzX7B8YBMM73ilwQYIvjHS0uTWkFXHSyKwDzuXJMh9yvgINjw7pQxaUaK8oeEOpZ9NTH2L0o9Iu0KK1fzXSiGHj6yLki5/2To/ykeeFcLchNhWaEUvgaKob0rMxd+391ubc2pYGoCqd/Jig985CnRSklKGNzXaEK30ct5VaDthaVcUyauCyS3yFMoLKVLI+GqUM/Ft4EYbCvawINECkV7RJHztznJaB0vxkAImLcidKcBgQnD5MUvMIllNcPY5jwwKmzn/FIH4Oz1qfa/7nh70WCm4u6punE/6gzx2DIHc18UKxKs7Gqk5980hU+1BivNgwjX0HyGw8JtYT4j0bTsOXzbrU0ZlhnM6Z4bsyEV9/k7GTTeWFfFKlac4D X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:37:31.8793 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8462bf6e-63f6-450c-7d5b-08de80772f88 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D1.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFE91247D15 Content-Type: text/plain; charset="utf-8" Implement the resctrl kernel mode (kmode) arch initialization. - Add resctrl_arch_get_kmode_cfg() to fill the default kernel mode (INHERIT_CTRL_AND_MON). This can be extended later (e.g. for PLZA) to set additional modes. - Add global resctrl_kcfg and resctrl_kmode_init() to initialize default values. Signed-off-by: Babu Moger --- v2: New patch to handle PLZA interfaces with /sys/fs/resctrl/info/ director= y. https://lore.kernel.org/lkml/2ab556af-095b-422b-9396-f845c6fd0342@intel= .com/ --- arch/x86/kernel/cpu/resctrl/core.c | 7 +++++++ fs/resctrl/rdtgroup.c | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resct= rl/core.c index 7667cf7c4e94..4c3ab2d93909 100644 --- a/arch/x86/kernel/cpu/resctrl/core.c +++ b/arch/x86/kernel/cpu/resctrl/core.c @@ -892,6 +892,13 @@ bool resctrl_arch_is_evt_configurable(enum resctrl_eve= nt_id evt) } } =20 +void resctrl_arch_get_kmode_cfg(struct resctrl_kmode_cfg *kcfg) +{ + kcfg->kmode =3D INHERIT_CTRL_AND_MON; + kcfg->kmode_cur =3D INHERIT_CTRL_AND_MON; + kcfg->k_rdtgrp =3D NULL; +} + static __init bool get_mem_config(void) { struct rdt_hw_resource *hw_res =3D &rdt_resources_all[RDT_RESOURCE_MBA]; diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index 5da305bd36c9..9d6d74af4874 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -76,6 +76,9 @@ static void rdtgroup_destroy_root(void); =20 struct dentry *debugfs_resctrl; =20 +/* Current resctrl kernel mode config (kmode, kmode_cur, k_rdtgrp). */ +struct resctrl_kmode_cfg resctrl_kcfg; + /* * Memory bandwidth monitoring event to use for the default CTRL_MON group * and each new CTRL_MON group created by the user. Only relevant when @@ -2204,6 +2207,11 @@ static void io_alloc_init(void) } } =20 +static void resctrl_kmode_init(void) +{ + resctrl_arch_get_kmode_cfg(&resctrl_kcfg); +} + void resctrl_file_fflags_init(const char *config, unsigned long fflags) { struct rftype *rft; @@ -4554,6 +4562,8 @@ int resctrl_init(void) =20 io_alloc_init(); =20 + resctrl_kmode_init(); + ret =3D resctrl_l3_mon_resource_init(); if (ret) return ret; --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012061.outbound.protection.outlook.com [40.93.195.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD0453803EF; Thu, 12 Mar 2026 20:37:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347872; cv=fail; b=eW9YjhvI3SlC2lKzjbW82soThvuOyuBbWkNpvQZ6IeDwkXNZOFIxDleJiG2LqenNZww18duJs64TuFiAiu1CKnNO11Eaa+byGhny0HzZIN+uVplHOb5o7mALN/pW6mhZVSfL7t5rzag5/m/2+0jpcC9TeBhDHY4a+6UdugTe450= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347872; c=relaxed/simple; bh=lnTY3kkmEaCkyOAHiFNhdh00uLrz8OqtfJ2jQ5/BcUY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZOHVZpBtSI8x4k2NYzT/U3Jbe9CaHBSAOV8kCnM6HBIjKXWN6sxFHObJLDIvwmeHHRZJdcgwW6BuK5m9uuMfuHl6WJRt69bZ8wRW7z1JTmyt7Nla8CobP+vCqCnmzFsiiMGfsf+znMBZYso8HUmSb8nskX253rKNp5gcEk3Imss= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=I5UaLQna; arc=fail smtp.client-ip=40.93.195.61 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="I5UaLQna" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=arWZ1yYbgP8nPmwwdz3jeUTZBKO57kF5K0S/zq0z3PuB+aKWXNpWiFEG0862R3g6+qPbHpg0XhxkXfrhNQiXkUpglVIACs2fFCKMWPaKgX9ZaN9PP5Bba+vC61d5g8osiAFv4XqbEE151EKeEy+kBgjByeZV4pCq6JVO+EdANBaFLUdZWfpIU53/WgdJ6JDCzAFaEptebp5fpul7WOixZ4VjEdar8zqXZhVYLpyL/HXNgc6p13fi/dGtoBRxNInaOi975OKpSnw6olP84bRMO9HfRQ6z2nl+DQMZbZyYHn3M+wi5vXndCXEhlcipPmz5GVctPpzGRhhV/GIlvm8RqQ== 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=pXWoKmaPcXlN0xBcfcw2U+P48Je1gIL9YCUmGE+ziqQ=; b=nucrll3ZhAdJFEIIexxsN1fVWA24TtTxI/sl+gj8As0aov0jJTADigoHp7r7IIWYtW01NSStTBWlLu9MMEEbCxxVloBdEHHhUol3QxjwJUKUEg+DqoRabMWVMSxrPlrvVGea86Cqgvp6GrjUVCTdKuYcAk3zGf/EKon35RBaYZ+5Xf9IVEl1qo0A5aafyODx9LwDrzSiqwmaW3Hw3JCsqiuK10adflp97EZoU39b9J0WFbU7kH0YoeMPscY+YQGyla3G2BcTAr91dnKar9cWPKz/NJQRcWHf7YanClVopwAzy+auAGAERguSbxvIwGEq7g/dtKKGmOoUmSp4kW8sTg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pXWoKmaPcXlN0xBcfcw2U+P48Je1gIL9YCUmGE+ziqQ=; b=I5UaLQna5eQu8huEjxh6pDQfqrGGGLqL9rny/KQyDvTGR8Dk7uWN/uxoNASLKhhM/ykfHcEBcUrOTxfCMU8Dm2TY6PaFEJlRa4vk+weryQ6CRkOoR6syHHn7xL7nQ6bMA7jIDwe7usxPZbCEfxL3CT2cHeSzAtqwLlfF/urAVv8= Received: from SJ0PR13CA0126.namprd13.prod.outlook.com (2603:10b6:a03:2c6::11) by IA0PR12MB8254.namprd12.prod.outlook.com (2603:10b6:208:408::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar 2026 20:37:45 +0000 Received: from SJ5PEPF000001D7.namprd05.prod.outlook.com (2603:10b6:a03:2c6:cafe::b9) by SJ0PR13CA0126.outlook.office365.com (2603:10b6:a03:2c6::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Thu, 12 Mar 2026 20:37:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D7.mail.protection.outlook.com (10.167.242.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:37:45 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:37:42 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 03/16] fs/resctrl: Add info/kernel_mode file to show kernel mode options Date: Thu, 12 Mar 2026 15:36:48 -0500 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D7:EE_|IA0PR12MB8254:EE_ X-MS-Office365-Filtering-Correlation-Id: 74334464-fb8c-45a4-7379-08de8077375d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700016|7416014|376014|1800799024|18002099003|56012099003|22082099003|13003099007; X-Microsoft-Antispam-Message-Info: cVDl6mCRswX6h9a/2GgFHW0u+4qtM5+kdS3feb7UfGebFO/9dJtS7p5ab0ISTK+h8eAp8OpS7iSXY12PCnEDBUZese+kx+DnH2Pn+fkY9MFF8gKyTvJrq/WEtinALVgMwqiwmRK2o3FRy8yOQ5Mkw6CKqaw8CNxJ7IbYhjKCCoXsIFEzer6znJwWxTjuPAhTuI/YlfokIaajZH7NDyISHLo9Z42aYa7APa/yInd5N9tDNWsneHK5tr9Ru2nPw9KCmjY5nBqQ0U9Lv/S/CMAsWaz/4Q1nN/lRQd4Hu/NnsU5R+8pBhp1JfeQX2AEjtL2dX/y4tNvxW8rVFgsIv9M8J4lsSHrZffFRVlgFY1VgsLZYT9JwGMZuNd68/TMte4WoqrXkzitBNJ1eG9xxAIE5ghzDeT0ur/0q4qecU5iIOEA9SyvzAM1GGDd5t6GnjapT3NxdkhxpaQJPG+smBdv8jedbBp7U/kQSqciUkZbDU/il1OzfmT3h2A3x/du4lOjlSaff3jpaNoqLa3B/Q1TCuXozI6JSbhyLIz3+Re5I0gcwTTjU7TK7VhQ9z3LUOKbYqaDN2Hfg1MydS+b3p6jehOFLc7REEcvj9K7QSM734ZB+q1arCAaSr/z9DF85b0GWNxW6ljU+/6InDigm1vKbOh2UUBimqLPwOqBIh7KJVTzP00iJvDFH5dmvhMv/lDO+0zsgNvddjy2jha2oF3oC17rTUGGqs7avD+xRccuJLy8qYkQlcQsHo63tl571o310MkOGG1rqs0PvQFrABg7RMA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(7416014)(376014)(1800799024)(18002099003)(56012099003)(22082099003)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jP+Qa8pibyIC3nIvU0UAdoTUypRyXzNvmIFx7Q0hy/xgpiLdiswMkW4RrHTZYGfXj1myOCvgr5KEgoN5W0bYaVHblOqoHm8myMY7IE36GtQ46USdmKpskViUQhIIdl36oWDxuGstfmbCNYuAU6sgJJOPZwyzvKAWxnLFlgs+E+5hCluR3r8YFUw/kFZ/4kGjbVYJHtM6Zog+7Ee0HlJDI9G0DQUSlyzooGIoTgWNCK01LYK3eCxQJWIFx7J/toOBb+srpwTlFay6k552i9wYjZKs5rbP8297Rzio7dDd7/X+xFUqP0UTM5HpszaOBBgHrRacRUb9eAjvJH6QedAZJOr24Oz09y0tZIoNTuQl9GuabS+ABLVhG/EqzBT8c+u58Pmro2s8DjrdYK8USUoaX1CdfVbbo/t/hSTC1403t8J/FO/+gqZioboJ7P7ZW5aF X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:37:45.0185 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 74334464-fb8c-45a4-7379-08de8077375d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D7.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8254 Content-Type: text/plain; charset="utf-8" Add resctrl_kernel_mode_show() and the "kernel_mode" info file to display supported kernel modes and the current one (e.g. for PLZA). Signed-off-by: Babu Moger --- v2: New patch to handle PLZA interfaces with /sys/fs/resctrl/info/ director= y. https://lore.kernel.org/lkml/2ab556af-095b-422b-9396-f845c6fd0342@intel= .com/ --- fs/resctrl/rdtgroup.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index 9d6d74af4874..081da61bfe84 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -984,6 +984,41 @@ static int rdt_last_cmd_status_show(struct kernfs_open= _file *of, return 0; } =20 +/* + * Supported resctrl kernel modes for info/kernel_mode. Names match + * user-visible strings. + */ +static struct resctrl_kmode kmodes[RESCTRL_KERNEL_MODES_NUM] =3D { + {"inherit_ctrl_and_mon", INHERIT_CTRL_AND_MON}, + {"global_assign_ctrl_inherit_mon", GLOBAL_ASSIGN_CTRL_INHERIT_MON}, + {"global_assign_ctrl_assign_mon", GLOBAL_ASSIGN_CTRL_ASSIGN_MON}, +}; + +/** + * resctrl_kernel_mode_show() - Show supported and current resctrl kernel = modes + * @of: kernfs file handle. + * @s: seq_file to write to. + * @v: unused. + * + * Writes one line per supported mode. The currently active mode is shown = as + * [name]; other supported modes are shown as name. + */ +static int resctrl_kernel_mode_show(struct kernfs_open_file *of, + struct seq_file *s, void *v) +{ + int i; + + mutex_lock(&rdtgroup_mutex); + for (i =3D 0; i < RESCTRL_KERNEL_MODES_NUM; i++) { + if (resctrl_kcfg.kmode_cur & kmodes[i].val) + seq_printf(s, "[%s]\n", kmodes[i].name); + else if (resctrl_kcfg.kmode & kmodes[i].val) + seq_printf(s, "%s\n", kmodes[i].name); + } + mutex_unlock(&rdtgroup_mutex); + return 0; +} + void *rdt_kn_parent_priv(struct kernfs_node *kn) { /* @@ -1885,6 +1920,13 @@ static struct rftype res_common_files[] =3D { .seq_show =3D rdt_last_cmd_status_show, .fflags =3D RFTYPE_TOP_INFO, }, + { + .name =3D "kernel_mode", + .mode =3D 0444, + .kf_ops =3D &rdtgroup_kf_single_ops, + .seq_show =3D resctrl_kernel_mode_show, + .fflags =3D RFTYPE_TOP_INFO, + }, { .name =3D "mbm_assign_on_mkdir", .mode =3D 0644, --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010024.outbound.protection.outlook.com [52.101.56.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 072F428C009; Thu, 12 Mar 2026 20:38:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347883; cv=fail; b=FFT3hb7iRzFbFBQAo4wCfaLEH6E0i5inQrg5DxlAlQlqQXo8WxxmaTZaDP7SEJVnj/7BxZpQ2pR9gFdhZ9wGy+pKOUS63uVcneRCAbVT2W5dqTZj9r3pTlfn9RMN7X2awIlWfrWkmFNswxf+CnfBVBHmsgV4EAFJqdtQX27STX8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347883; c=relaxed/simple; bh=80l7OmSYZiP1v8jH6fJ4zGz9Rtnh5YKNo9/Ad/8hxog=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lL9qe9m2HVYJcnNErK/RNL0y1IrHO7emDIXNjsja6eXBpIXWHcQWrkeB7afEom4EUGAjL/eTViwNVtLOzuQ3rgvvLaeDfFOVOkbRUc1d4mDv8nopJuUIhcCwkm3UVlY0wzVRQLfoHCx48e4v4gT1adNGze8AUzZ7NUxVS4DDhq4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=4Os6Z+4V; arc=fail smtp.client-ip=52.101.56.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="4Os6Z+4V" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D8NmYrt7bdb8LDvH3IGcN/kEHhBjf3O/+vV53ohXEqBTgaMp72XFPeHK5r3xJIOV5+2wHdXcvUXdfPSBoU1B1B+DIcD48TEDZLeQuqYGV3a3l/WGDOvpWwpQ4Taf7LWgFQx13Qd3VUcW81B2lBGF3EUGZgOxT28skjyOC5i1r//P5EKk4IS1QOIRiAFAbE1DSCrgXVVZV49RN1EVMCoae4oT54heBLT5HsdPLmG8CyA+zxRPYOO8dLkPfehr3213+FKrVtaDEdVpggFqvb6BeHjvVbyuis2wQgjOT61Xp+iPbuRTktEr/o8/9AA8vwwqe98TS1a3a/FWY/LXtAvLlg== 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=De2fZTivtAXGHuU4t6XRp2aZvUjl93Z0to+QVh22+yE=; b=NGPfR5xjOXbzRVqFdt948+O3RbsVmhSMBAJu/7EfDjJsNK0BLR/bA9ixT6OXiYiumXlICO9TE6ZuIDLceZAQB9dC9kFSbcQz/qTR4DKfpR2PCHyd5dBVR3GD2PnmuoduZRSGXZOs+2JI1gbpCvOf5GhgzsteZEy4ksTQK4gSj+t4qCGxGenRMm2OOUft7HgPUuxJncCHzTsNDJhxFEke+NUr+muJMCiZGynL5lo0Of9B35H94LOzDTt2SpUG9c/i3Eii9ldGoR8ruRYMWesEdvBeBFAoOQzpkCRNLdTz+xFmbuPcvXN5o6DYNNoB20hbinEUYA6TSRV2XKn7d+Wl7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=De2fZTivtAXGHuU4t6XRp2aZvUjl93Z0to+QVh22+yE=; b=4Os6Z+4VINEcB8kQfijoZIkhpMYjPciZ585mO7p2zTtH9dNyKSQVt/GJ1csKtRBRO+aX+oYjkFwTiKgKvVsenykHfiENptwsWEypFdV5xOhayD25mhtHQ0xW+Svr5aqcS3UFmEJIXDm4nrXoHdbWAjB30xznaNPoajzg4vsMnhg= Received: from BYAPR06CA0031.namprd06.prod.outlook.com (2603:10b6:a03:d4::44) by DS0PR12MB7748.namprd12.prod.outlook.com (2603:10b6:8:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.6; Thu, 12 Mar 2026 20:37:53 +0000 Received: from SJ5PEPF000001D5.namprd05.prod.outlook.com (2603:10b6:a03:d4:cafe::8) by BYAPR06CA0031.outlook.office365.com (2603:10b6:a03:d4::44) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.29 via Frontend Transport; Thu, 12 Mar 2026 20:37:48 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D5.mail.protection.outlook.com (10.167.242.57) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:37:53 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:37:51 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 04/16] x86/resctrl: Support Privilege-Level Zero Association (PLZA) Date: Thu, 12 Mar 2026 15:36:49 -0500 Message-ID: <36b849d6548e8ec16db1013e551e4d199795f048.1773347820.git.babu.moger@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D5:EE_|DS0PR12MB7748:EE_ X-MS-Office365-Filtering-Correlation-Id: 67d467b3-c3b1-432d-6513-08de80773c33 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|1800799024|36860700016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: qf8w092WzACH1LIVYysJrh9nsQw0ECBok0eDOCVgNk38IZRtqPVNvjpNmwQ0LlITwbE52yVU0BZ5v+aVn5BGu55Cxk/1VbQY4gylP3k7N9MC3H4QLocnaTsSQNjFI8+XyUVYOc5OTSET7RW4SdOobckeOsErsrruToTKneLfJLpjC8mz8JGTTuxKu6cowF/fpxCrWCQUM+nYY5vIunHBZ0zYzE635G8vwhP2JBO+0S1pdm19WJ3WcWyof14sWRXRzOK42SYEJZeSCseTI8/+7AgNufIybbuXwelEwqCEKeBygVl4qnVg4mzVBz4U2OQTFr9NPIaNNej1eVkE/VChEeteXW6QVEhW89cG/yckpWLoh/CIls1CEPQiSkcYlRTE5rPFj1xA7MgN8ki8mWobpgEmNFOCet3kvW6DFGM9UQVGPFigbT95loXWxKHiB8cUdodSLXpfnnCJ+/1/KOpQ8odKDuaSGevtBpdqIWquoVAxlhGGS1TPoOBZUVhfsIWKZt6HV2Qj9Rmygw0wZg5N3VO4XEQRJ6d9lb7dVsFgyqNvgAmbxIoDGb2sBBgK7hmiu+a4G4cJ+HkIND/0/D45Tvb1d0iVZQgvAV8u3hzPk/HyroFK5bFcRFZ2SH4gI5ImfC/SGSWAEnJ92Up9/UdOJdb5K0DccgwytSb6p4i7HL8bV8gLw0jWCtoxkWE1GXlQzysaBgpgeqyXFnWlJG8W+vkDGlwMU3kAAziYppH9BgUmT9PxJ+HArWMNbLINPBw92th99+K3y69RbZ/oDOsZeQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(1800799024)(36860700016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: f/8gLUdWXw+Cx+R13VP5asRVBF4f4xhRH5Ea6iCXjzxa4EJozo8fGwSpHQNim8jlc07xPHIJfeG8noSsEStEmYAaY+n3yr7VyuvTQfa7W+W5E4Ips+BwQaoHO2wHRUZvByumrHDBz7KlDciIX/ZyPvkFA7QVsCuzqdo8RasnyBe2w0Wcjs7OrAJMsEFqSKhWyhljm+wuE2wNeP/SG0Z/P/fmzEhuDK0wUK9GPjCdJYeDS/Ee07hSZkdCeOU0WgQY9aYFrM3gGeEcK2rPqmx2o/hQnQoDfXyfSDQE3QbP6Bffy/8AKPsjPOQ+ad/FfdOjaYMwyN4JXmvrGuI1NncqlRI5XLZBoBSxmMx/RjViK9pR9lvwYHgiEuk2ve2PTsk9yy9WV0BMY4qN1MXH9KBu/AAsGuYHzamH4NcY20T6eJzDsts1o38LR8YfCvQyqBuW X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:37:53.1299 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 67d467b3-c3b1-432d-6513-08de80773c33 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D5.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7748 Content-Type: text/plain; charset="utf-8" Customers have identified an issue while using the QoS resource Control feature. If a memory bandwidth associated with a CLOSID is aggressively throttled, and it moves into Kernel mode, the Kernel operations are also aggressively throttled. This can stall forward progress and eventually degrade overall system performance. AMD hardware supports a feature Privilege-Level Zero Association (PLZA) to change the association of the thread as soon as it begins executing. Privilege-Level Zero Association (PLZA) allows the user to specify a CLOSID and/or RMID associated with execution in Privilege-Level Zero. When enabled on a HW thread, when the thread enters Privilege-Level Zero, transactions associated with that thread will be associated with the PLZA CLOSID and/or RMID. Otherwise, the HW thread will be associated with the CLOSID and RMID identified by PQR_ASSOC. Add PLZA support to resctrl and introduce a kernel parameter that allows enabling or disabling the feature at boot time. Signed-off-by: Babu Moger --- v2: - Rebased on top of the latest tip. --- Documentation/admin-guide/kernel-parameters.txt | 2 +- arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/kernel/cpu/resctrl/core.c | 2 ++ arch/x86/kernel/cpu/scattered.c | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentatio= n/admin-guide/kernel-parameters.txt index cb850e5290c2..b1ea28505835 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -6439,7 +6439,7 @@ Kernel parameters rdt=3D [HW,X86,RDT] Turn on/off individual RDT features. List is: cmt, mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, l2cdp, - mba, smba, bmec, abmc, sdciae, energy[:guid], + mba, smba, bmec, abmc, sdciae, plza, energy[:guid], perf[:guid]. E.g. to turn on cmt and turn off mba use: rdt=3Dcmt,!mba diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpuf= eatures.h index dbe104df339b..b7932ffc185b 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -515,6 +515,7 @@ * and purposes if CLEAR_CPU_BUF_VM is set). */ #define X86_FEATURE_X2AVIC_EXT (21*32+20) /* AMD SVM x2AVIC support for 4= k vCPUs */ +#define X86_FEATURE_PLZA (21*32+21) /* Privilege-Level Zero Association */ =20 /* * BUG word(s) diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resct= rl/core.c index 4c3ab2d93909..8fb9029fe547 100644 --- a/arch/x86/kernel/cpu/resctrl/core.c +++ b/arch/x86/kernel/cpu/resctrl/core.c @@ -799,6 +799,7 @@ enum { RDT_FLAG_BMEC, RDT_FLAG_ABMC, RDT_FLAG_SDCIAE, + RDT_FLAG_PLZA, }; =20 #define RDT_OPT(idx, n, f) \ @@ -826,6 +827,7 @@ static struct rdt_options rdt_options[] __ro_after_ini= t =3D { RDT_OPT(RDT_FLAG_BMEC, "bmec", X86_FEATURE_BMEC), RDT_OPT(RDT_FLAG_ABMC, "abmc", X86_FEATURE_ABMC), RDT_OPT(RDT_FLAG_SDCIAE, "sdciae", X86_FEATURE_SDCIAE), + RDT_OPT(RDT_FLAG_PLZA, "plza", X86_FEATURE_PLZA), }; #define NUM_RDT_OPTIONS ARRAY_SIZE(rdt_options) =20 diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattere= d.c index 42c7eac0c387..acc137d327b5 100644 --- a/arch/x86/kernel/cpu/scattered.c +++ b/arch/x86/kernel/cpu/scattered.c @@ -59,6 +59,7 @@ static const struct cpuid_bit cpuid_bits[] =3D { { X86_FEATURE_BMEC, CPUID_EBX, 3, 0x80000020, 0 }, { X86_FEATURE_ABMC, CPUID_EBX, 5, 0x80000020, 0 }, { X86_FEATURE_SDCIAE, CPUID_EBX, 6, 0x80000020, 0 }, + { X86_FEATURE_PLZA, CPUID_EBX, 9, 0x80000020, 0 }, { X86_FEATURE_TSA_SQ_NO, CPUID_ECX, 1, 0x80000021, 0 }, { X86_FEATURE_TSA_L1_NO, CPUID_ECX, 2, 0x80000021, 0 }, { X86_FEATURE_AMD_WORKLOAD_CLASS, CPUID_EAX, 22, 0x80000021, 0 }, --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012048.outbound.protection.outlook.com [40.107.209.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A1FF37DEAE; Thu, 12 Mar 2026 20:38:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347907; cv=fail; b=KEFfI2UktPFt94VzyY0FW8uJR4ohCK9BOx9mZZW4XscAtM+Vn3zH6oNvKbCZ1BZ/XtPKVxTa94WtROubS+6jltl4K2hvcQdk+qcJRHfHGqrRRgrjU77I1Rb12E5hg4t0Mrnji/i+/0b72V6lBTdSv42WvftLy7ia40nsZ/I0ZOs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347907; c=relaxed/simple; bh=huxGwEzCXrqvdwyjZ7N/0rMkfpsvo0w9S2IKp2l6T7U=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=F/MGZgyHrJPdRNUlG0t4ray8inlqfepTg7kLKy04roAID2k/ke1DC9zPQJ7xzf0y6wow49ifh7Hxmc+tGjW/1wZ89OcMDbmEEvMUqxfAgqoXApNRwC+YnJPwqEyniETLf1WZJLoMnWZ/JdVLY8IN3+B03tR8QSzHWRH7qd768C0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=PYxxjvjm; arc=fail smtp.client-ip=40.107.209.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="PYxxjvjm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IQ+elGn1+t+hEGPViDrcxcIICNkoe/mWm52pZoYo0JQznRQQAvo6mJhgywqYBpmBevFx8jKtRmaEB2XpCstDw98wQVgxC4hYmgUOdV5c1ppCCRcfCCxy5er/eJ2+0X6VEd2GPfpz3DLq+xnYmfkoOL1H8FDSNSDpjTXifQE00CddUAyR+uGoMPDMXoTeGs9/ZQHXHP3BC+xMacGoSv+i1EcaBs3Vziz/UK3NzD26ncxYXaWKpZYe/UXk9AkXdf5jESSm2mSNUgVGtjpbiV+YzEslYvmFfhMDS3cRlquanbjxn8xtzUrEx80qGOu0Ck/pa87kK7e93vIt07RJYgrHGA== 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=YHNADFizIFxMD9lyOtdmwUk0hHrDSaJSjXwFtWv/8jU=; b=QM75UNsyD42kAeiHspoj7QGIrnzOmeh4RU00w1g2DOIroHe/C99aZFtRcAGAQ8kEdjNm5ZYL1bx8dTTWq6C0+jt/wd+P3AvdjjjUAfmoMosvJRNBm0BKgnY33xfco3VDPmyDl0jD38ZXnsIZxVv2S1t3VTLkLYliw62s+TCVjqhti0FOKrb/PmXsm1VQ9XjtyKGhhYdjjFE5jFVT1e0+k5P/Vtl4VN97mf+jv7pvYE4smxtmXjcONxJDSHaipfNmAbMXGJHl55K+28JUPlH2CTeH3I0b6aJAKKy1M1Jm0WqMaS/FJnRPZOqlKAaEM3ZyhN/TV81A3TcYUSHOrpHgEg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YHNADFizIFxMD9lyOtdmwUk0hHrDSaJSjXwFtWv/8jU=; b=PYxxjvjmo6/22Yf6CzNhEMON1bXeaoxMWbiv7Xt/G3BH/lyf5lPTNIIJzz1t+Q+nayUUKNCuG9Ez0VmeFJMuA/ezYfeUg+kWUyJbz5jVrs+PE9Uth3JHRXib6AByhslTZaFpa6UA3fA3juF+dki3ozg5OaypOmEzxJE7OseVhg8= Received: from BYAPR05CA0080.namprd05.prod.outlook.com (2603:10b6:a03:e0::21) by CH3PR12MB7763.namprd12.prod.outlook.com (2603:10b6:610:145::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.12; Thu, 12 Mar 2026 20:38:13 +0000 Received: from SJ5PEPF000001D3.namprd05.prod.outlook.com (2603:10b6:a03:e0:cafe::93) by BYAPR05CA0080.outlook.office365.com (2603:10b6:a03:e0::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.24 via Frontend Transport; Thu, 12 Mar 2026 20:38:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D3.mail.protection.outlook.com (10.167.242.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:38:12 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:37:59 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 05/16] x86/resctrl: Initialize supported kernel modes when CPUID reports PLZA Date: Thu, 12 Mar 2026 15:36:50 -0500 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D3:EE_|CH3PR12MB7763:EE_ X-MS-Office365-Filtering-Correlation-Id: ec2cd503-847c-4405-4c92-08de807747ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|7416014|82310400026|1800799024|13003099007|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: 0D6REfoxihKbtzzfEwoUKrYcqL9MgS1sPlG/R73fsZfWa8JJu9YH5zZcgRQ6trBQJ3zLG9OkpyypH36IKEQjv8vDIBysFZkL062aS9QZrKjAQDuxuMdBh0OVIgqKcvDpmB7qxklhXlQha8EVonTeRhfaNLkWHLejS44nAZDR4caNKBgeUldWMaz26dcGLd8Oj6hIOSAlAeoL/j+S7BZrd0lZKxey4+sGeUXZcQcIUPoFrcZifVAcNr+QJhNxW8/hwF9kwD3PWIXvA+8s45Hg8TB94hzqkCjC5AsBhYwlLnRO9a7/Bt0wzxAgZS/FK3KGNVFeGquPWBwBNZcqMU4UevayoueOAZYO7CpGyF3Czy++schmBRQU2T/mARGt8b/cBjKONN3iNRVv2Lx3xYdXzBXsdNbf808EdLTqJRsOIdgm550340MsUSGsi+kXbOJHlppKu7VRtbOB4s4p2OnFGGy8Z0qoV6koA8muy56mbe7xJ6lAPN+Vej3RLNzxmc5l9iEHs0Hn9wG4Oz548Cn5whT1SsuG+KiYPiUAZ4wiq0iDEX6IRtzshnDCEeKZVgbznesN5kMjlbrVfW17oki29bsAZW8efrNpDXnKb5vojTzYIVA/rrjH60LnX73xl9FDZLUWjOCNujGDOP8q5QWzUcpQIBXvqhw7h8GL2xiU/EozCoG1nQpl54wMSBNzCq9vDkoVtcSV7D+hvl+k6qr/jhBm//m48soPp+HXsIzUczpJbEBI5HyAGhRp8Enr5knBW8+u1aSJ3yYjAcZADAAhjg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(82310400026)(1800799024)(13003099007)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nYrBZMXC/rU8QyjMQzeJ+5geYQ+SrIwKtCmzcbmzmJAae2pFKq9cS3HyXtVIO6mj9u5SWIlQAwrGnrZRx91u/tf7AN8gmxFpnKmZyOkrEqH0jB0etrbm4NBQqFgDt3r0oys94gEjz7TCl7PTXNondg6jfL9PRktiD6nPFL8EM8/Eb2W6fdoCuh3i5kor7gswgE4XfWDh/lFWHBAi5KMGQ9xmzCia35S3HWIl3NMI/5jH8B8p/DRYnPfOR7sW5j1JScJ/f0T02OItdy1GLk8cSXMgaQAEy9WkzuYxiKs77uC+pxNl7wNwhdkqFUP+WI/8bkOGGU9Zgigk6Rr9R3x9Od9wChJmp1Ks2KXrH2zZAHbVqahX8XkkBfKD/iBJPM3sB7moIur6Fo8a/Rt9yK991b/ddDkX7B9F9FmHSyB6FHoC0SQF25WIj3iOPg9l9cGG X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:38:12.9222 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ec2cd503-847c-4405-4c92-08de807747ff X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D3.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7763 Content-Type: text/plain; charset="utf-8" If X86_FEATURE_PLZA is set, add GLOBAL_ASSIGN_CTRL_INHERIT_MON and GLOBAL_ASSIGN_CTRL_ASSIGN_MON to the supported kmode bits in resctrl_arch_get_kmode_cfg(). Signed-off-by: Babu Moger --- v2: New patch to handle PLZA interfaces with /sys/fs/resctrl/info/ director= y. https://lore.kernel.org/lkml/2ab556af-095b-422b-9396-f845c6fd0342@intel= .com/ --- arch/x86/kernel/cpu/resctrl/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resct= rl/core.c index 8fb9029fe547..739190ac96d3 100644 --- a/arch/x86/kernel/cpu/resctrl/core.c +++ b/arch/x86/kernel/cpu/resctrl/core.c @@ -898,6 +898,9 @@ void resctrl_arch_get_kmode_cfg(struct resctrl_kmode_cf= g *kcfg) { kcfg->kmode =3D INHERIT_CTRL_AND_MON; kcfg->kmode_cur =3D INHERIT_CTRL_AND_MON; + if (rdt_cpu_has(X86_FEATURE_PLZA)) + kcfg->kmode |=3D GLOBAL_ASSIGN_CTRL_INHERIT_MON | + GLOBAL_ASSIGN_CTRL_ASSIGN_MON; kcfg->k_rdtgrp =3D NULL; } =20 --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012004.outbound.protection.outlook.com [52.101.43.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E78237DEAE; Thu, 12 Mar 2026 20:39:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347977; cv=fail; b=jNRrLYDEAA1RYE/wIN0Wb9VD8mr8pqAw+yFg/mHWWmN4Y+1u9WRySrxPffZ1gtcXSMZyrEMVA2Zb3uoynZPRoxA74kbl89t+4g6wrYg47n/LaelUMIN77lIlkM/SLq10baPO7LxKyaz1G3xllrFx5iRqTSsnlcpMOx54coShaeY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347977; c=relaxed/simple; bh=jKM9FkSjrzWrkPpsisfV6uCds8FDHlHEymWNMM7gKfA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=TiNJzBc3i8CAE/vAHiAiYxNN1BYVGuEgw+jcs7PKGPtXJ/nzUFedoZ2WAcClYEhqmZgEJQDSgIZiQToSIvkt27jPzrQeROMjwpyvd+2LRZ7qdcANinBByx5p0/d5ipPkz5BEuIAc3byGJjJ6ykg6KNYMJMsbfowEdj43kB/aveQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=lKV1Ezto; arc=fail smtp.client-ip=52.101.43.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="lKV1Ezto" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kto1FauL6P2eqR4sXbWAxnu5iZmRYB0yuEpM1wP7TlgfQ4JCaOMdskF6iMIk8JeMJWSlTOQhQjXluRwPxRMx/2G9GkcOPNpBYuLuzvKdlc+p0P5BJiy2r9bu1vzZqRrWcI4sX4hsPrqJ1cqdSWchmBRkysDdTAmT7ygDqBghspUk2P4efDhDTRu7CPoUitk/z0WOjouBku8WpFgrUZFgNjmDzq0ABD1PLhd3xVENs/e0UtIWWfeNenmAouqAbKqmloNxL/2ZrkJsu12pQgB1jhCdM7CpjgoIEPfWKvGLxvJeguY5K2Rp3PzZORbfKYhYqc1g3XeNbRRUJ+HeM8H2Ow== 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=SngrGLAk6sd3U39pb3UBVS2a/XrG6R326BNVpMw78Ts=; b=C9TdxPHzotdQTT5Dqqzdty4rTyGJr8at+AdnQMsfbldYXDhaEgVptV7w1MpHLnkGZcXmVBtVXAkqEBSOVL8wtqs3C/5BmGNe6EW+Rup7+N30rfB1vG7ot0Fs/dNkJnimwWBq1Kgo5LIYSwoPdN9h5wwlQvvvhLDNqPcJR2w6JlbvHxPNmdkGI3oWriyLJtfQEo0tzU7ioRn7YfVPsLihNDj6ciZ0oS0NzDG5pMKjuZX6FpW9kgiEVwdTrQk3KpIePzkaXiuAOLP/u/PSGGbASowowP0+NoIFtrn/93qYOrtWfy2bdB4BWIaprx2VaZivpl3pSbAdG+5F7FXLxVt9pQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SngrGLAk6sd3U39pb3UBVS2a/XrG6R326BNVpMw78Ts=; b=lKV1EztouP7tojmpi+D3fOy6duLMZkHL40d/0ddqXogpYVnaQtX4p5Cq1T6c2YJZgklHiELM25cq4bi4VPwXwRLszFVv1kTPuiMDlpqf0NkAR8L9R7md5qAA9WisdAoyk3VOFfnuaQ1IZ/7YU/uTS3+inMU/GuPSNAdHlJ9+UCo= Received: from BYAPR06CA0039.namprd06.prod.outlook.com (2603:10b6:a03:14b::16) by MW4PR12MB5626.namprd12.prod.outlook.com (2603:10b6:303:169::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar 2026 20:38:16 +0000 Received: from SJ5PEPF000001D0.namprd05.prod.outlook.com (2603:10b6:a03:14b:cafe::1b) by BYAPR06CA0039.outlook.office365.com (2603:10b6:a03:14b::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Thu, 12 Mar 2026 20:38:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D0.mail.protection.outlook.com (10.167.242.52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:38:16 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:38:07 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 06/16] resctrl: Introduce kmode static key enable/disable helpers Date: Thu, 12 Mar 2026 15:36:51 -0500 Message-ID: <03eda07e09a7716a78610962952c1ac63b12a7ff.1773347820.git.babu.moger@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D0:EE_|MW4PR12MB5626:EE_ X-MS-Office365-Filtering-Correlation-Id: d3dd1207-b1dc-46d3-06aa-08de80774a26 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|1800799024|36860700016|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: Nf9KRTJ4OpgkGCMPdj00b1lDvaBlczON96MenEvki6rS14fg7zC32JU3peyQ+G7UEESnO7bRA4aP2KWGmf3IEgTmUN4ex+TEIIY30im9QDAbhHLt0xIk5AESc4n0oCKkW8U20XcM+PM1SCNd6aL//Da2Ug9DgSzLhQ9XYba9OCHLLgkGcRNegEzWTJu886SL5JEWRvXNyuFsp7AtalTYz+k2AIKyR1Oguwt4SPX8cG8UFfH0RxVEREdfS17GwFxY47jz+7tONPKUG/SRnQg2TiF613PHql8uWCNN4neP3X3LvS+Yy8G+DvzUXIUG5JX4IN0TV+VrDq1Lfgj/Kqpuruk5aWcpcpfBTd0qwe6JFlEM7HGhuzWLRoetwOt0b3Qa6mJbyM8aNjCB/dBAhnmVOZxUW91IIWdq4ZiesnERhqOsCE2lHBq/GV86Y7UfdebyszU4v3Hbc4pzfu/Sa2bFD5y7cKtxNzNETazYHVaVEh96Ld4li6Stas5ZHXdN8UUW+5CDZ6DFrU4Id7+P71GclrK2TkH72cmqZt9uvRePSWYCjLXKO2qBqnrF9Y2/wk9fJqnsLtcy8T7NS1ipp9pnb//4xpMXvIlkbuM49Vgn7F0WQVFXgF7p7bljg3KmOkBHG4tXectSh4T0FhlOBuGqwXXW1C547HTt2al/R1Jtd66w9HlDVlU8e0GpPRDI7vLnU+tizDIvEhjrk58mF3VnwcHew2coS7nenFDKbSsy2+3M93ABhbcReNMQPAtIk0qZX25/U8L2l2y9+rolR3+zmA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(1800799024)(36860700016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8VhDgUgJbkqrBas50j4DvJRKjSCjdslMS4WeQYfnUqu3ODjS9DQfW+f8PXAhZowuRDnBJul69ldQJyYIMukcaKVHvjE2MVB66c5e3M4Vak4gfk37/wbBLoGBez1Ll8b+mC8hYuz9XiwMCYUWmuyFbFvB9CHajYeGgQ7fgzOomhEUjImXXOm0CP4j8h6S9X2OvWHd8gHhCvAilefyU7h0TMFnkEUxZpNkjl+/Fs1vVneXeoDMzCYNy+9TIKxjohC5LUIE8e++YFC3buLFk5shqu9UpU7aN+0F3qz2hP7rpxM5Nfa9MM22EWVC6NcdrCrewtnsCPckHXhoT7Ed3+j9vdPxp0iRiE4llzWwgvvyNyGo0UlYVEPm9u2abZM1twMZ1Xz72rBcRw0LM8GE/iF0F6AAca6kybgujE5DEtVrWfpJ9xYeqVHGkd1HNHk9ieD/ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:38:16.5295 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d3dd1207-b1dc-46d3-06aa-08de80774a26 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB5626 Content-Type: text/plain; charset="utf-8" The resctrl subsystem uses static keys to efficiently toggle allocation and monitoring features at runtime (e.g., rdt_alloc_enable_key, rdt_mon_enable_key). Privilege-Level Zero Association (PLZA) is a new, optional capability that should only impact fast paths when enabled. Introduce a new static key, rdt_kmode_enable_key, and wire it up with arch helpers that mirror the existing alloc/mon pattern. This provides a lightweight, unified mechanism to guard PLZA-specific paths and to keep the global resctrl usage count accurate. Signed-off-by: Babu Moger --- v2: Changed the name from PLZA to kmode to better reflect the purpose of th= e static key. --- arch/x86/include/asm/resctrl.h | 13 +++++++++++++ arch/x86/kernel/cpu/resctrl/rdtgroup.c | 2 ++ fs/resctrl/rdtgroup.c | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h index 575f8408a9e7..4b4291006e78 100644 --- a/arch/x86/include/asm/resctrl.h +++ b/arch/x86/include/asm/resctrl.h @@ -48,6 +48,7 @@ extern bool rdt_mon_capable; DECLARE_STATIC_KEY_FALSE(rdt_enable_key); DECLARE_STATIC_KEY_FALSE(rdt_alloc_enable_key); DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key); +DECLARE_STATIC_KEY_FALSE(rdt_kmode_enable_key); =20 static inline bool resctrl_arch_alloc_capable(void) { @@ -83,6 +84,18 @@ static inline void resctrl_arch_disable_mon(void) static_branch_dec_cpuslocked(&rdt_enable_key); } =20 +static inline void resctrl_arch_enable_kmode(void) +{ + static_branch_enable_cpuslocked(&rdt_kmode_enable_key); + static_branch_inc_cpuslocked(&rdt_enable_key); +} + +static inline void resctrl_arch_disable_kmode(void) +{ + static_branch_disable_cpuslocked(&rdt_kmode_enable_key); + static_branch_dec_cpuslocked(&rdt_enable_key); +} + /* * __resctrl_sched_in() - Writes the task's CLOSid/RMID to IA32_PQR_MSR * diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/r= esctrl/rdtgroup.c index 885026468440..05299117d871 100644 --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c @@ -38,6 +38,8 @@ DEFINE_STATIC_KEY_FALSE(rdt_mon_enable_key); =20 DEFINE_STATIC_KEY_FALSE(rdt_alloc_enable_key); =20 +DEFINE_STATIC_KEY_FALSE(rdt_kmode_enable_key); + /* * This is safe against resctrl_arch_sched_in() called from __switch_to() * because __switch_to() is executed with interrupts disabled. A local call diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index 081da61bfe84..bb775afc78f5 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -2911,6 +2911,9 @@ static int rdt_get_tree(struct fs_context *fc) resctrl_arch_enable_alloc(); if (resctrl_arch_mon_capable()) resctrl_arch_enable_mon(); + if (resctrl_kcfg.kmode & (GLOBAL_ASSIGN_CTRL_INHERIT_MON | + GLOBAL_ASSIGN_CTRL_ASSIGN_MON)) + resctrl_arch_enable_kmode(); =20 if (resctrl_arch_alloc_capable() || resctrl_arch_mon_capable()) resctrl_mounted =3D true; @@ -3233,6 +3236,9 @@ static void rdt_kill_sb(struct super_block *sb) resctrl_arch_disable_alloc(); if (resctrl_arch_mon_capable()) resctrl_arch_disable_mon(); + if (resctrl_kcfg.kmode & (GLOBAL_ASSIGN_CTRL_INHERIT_MON | + GLOBAL_ASSIGN_CTRL_ASSIGN_MON)) + resctrl_arch_disable_kmode(); resctrl_mounted =3D false; kernfs_kill_sb(sb); mutex_unlock(&rdtgroup_mutex); --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011057.outbound.protection.outlook.com [52.101.62.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 64DC9346FB3; Thu, 12 Mar 2026 20:38:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347915; cv=fail; b=OM1DAHyne9YVHwD9GBvZRa9dTnJwWMmIwQUe+iuQkZy2XkxMVudJBMzcYQYsVRdBXQrXXLMU2VpI1r5kuk51QDKT6EQ+a3iW/ijK0vN02Tj9Ho0eRoXdOuWSPWZyen038E1vTJD8n0Ws1EzStnr+fg366MoLly2/NdM5ayS2LAE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347915; c=relaxed/simple; bh=suVqO3JluZG5wAdLYqot3yCldlOMJAnU3st64TbEOi4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ewnW8TFfHI0RumH1kAIhl/arCISr+YRcXBXw/hZqnJjZ+5bwVugNIOwCGdribfUeTJSNZRFvIqrSrIXfQvZl+3/fQcvv+XQCl9v0QpbF3UooQjjVijbA1I57YZiP3lfBKUIMVYAAC6lgt4796XNwSWgbTKDN5ZsShBcHH3qzjzU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=rGPtF+qe; arc=fail smtp.client-ip=52.101.62.57 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="rGPtF+qe" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y+2Gh5vuk52qeyqv2IgxcexVO5IWfLB5sve7VAoeCoR859725hvA7zADC/x4gd8RiGXKHM+4Xk+XZ5L0LI0E2VuzwVkSIHUMqPL8P2N4NchAcupNyHs9ANsL9sD6qxVOaWkmKnr+EstP4FewMC47x8m2EKi+y7BqAlUcGDu5EbNjDCjbAF+tv/nthiIiJIicm67H4f05Fo8XXxFj3bX59xyIh31GRi/zflVOIwaRmWLK+6EOINk0BgMVNaPp+bkhaOSYzJ/mOjHPECABEOEn+Km1sEt186XM2zt0z6a4GqKvBc4A8r88tCDwPEP75cyhIAHMJ5fGxcLXWwJTETaodA== 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=TB9oQICxIcUkeXvBHmmDI3MKY4TAwlsE+z/G2OqGoYU=; b=Xq3J8qc2lybhXHS2wV+y/7hV8uGCrqEUdIp8Cz1AhdAf0Ks7PGNKG9UU181tLYSdT07eHbTHIXiBnjlFWNgQIzaMLpBzPfIOmPfageML57f7UDCwrv8v4ZUS1OgdI7BgP9qtkyL2PsSlDubmqIPqCaDdpboZgw0WjbxpAlnVSS8JS7vxWBJJS1vPUtmYD5vPnmwKZNoWUrErh/DaXEFpqGL9G0bgvCyCBeSLCWIGZqyW1pVxfKdTinN84m5+c4BzJKtRu5jGKrFJkqxzaDU2ESNUcEYRXFqeK5Jdq+g5Uk0upJD5/G0yeDUAfGbXvCtv1MRxdA04yeqoyDXuFYDKvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TB9oQICxIcUkeXvBHmmDI3MKY4TAwlsE+z/G2OqGoYU=; b=rGPtF+qeGM/2m7YxsUZ0NllZunB8KcXQydNHj6pZBjB577nWhudn4TjxgblAgP8WU7eMm4DEjsZVf13ZWnOZpmEnoxfBGC0VkjNklDfDtD/INhMhnTmKo38bQLjH9g9PpyraPPAcPPstkmGZHEMf4oBz/SY3izfTFHefQSF8f9M= Received: from BYAPR05CA0107.namprd05.prod.outlook.com (2603:10b6:a03:e0::48) by CH3PR12MB8877.namprd12.prod.outlook.com (2603:10b6:610:170::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar 2026 20:38:24 +0000 Received: from SJ5PEPF000001D3.namprd05.prod.outlook.com (2603:10b6:a03:e0:cafe::ea) by BYAPR05CA0107.outlook.office365.com (2603:10b6:a03:e0::48) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.23 via Frontend Transport; Thu, 12 Mar 2026 20:38:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D3.mail.protection.outlook.com (10.167.242.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:38:24 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:38:15 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 07/16] x86/resctrl: Add data structures and definitions for PLZA configuration Date: Thu, 12 Mar 2026 15:36:52 -0500 Message-ID: <74ec176dc5595378739d07caaf95f55d859d30a9.1773347820.git.babu.moger@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D3:EE_|CH3PR12MB8877:EE_ X-MS-Office365-Filtering-Correlation-Id: 40ccff87-8210-43f3-058e-08de80774eb4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|7416014|376014|82310400026|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: RwA9FBkH9/XQ1bI8eLjHXXSMinMFlULSJA8nVZTQxSQ8BCUBGxoCJBnabTZYAIH07DET9u2hSfr79pdqpkZXd96/nrGQk+JzEYmh95UjnEsiRgJ/imtSKUfN26EYUcmJEBP1oTn09OS0QOJbCMww97/0QlUGoRukiitxvpqYkWfSJsK9guUkU5vFsgQg2uUgRWnLuRDCECJ0A5TWuJF6ug8OXhTNZMpY38ZW0dwKvB/WzaHVYIgys67vhINLKSxkSmDamuzTkmgSJcDwv2ty5qoUM0CnK5cl+/4RhrL0Q2Idbrl4rygfsgaTWj8+9YF2yQmISvnS4iUWXyPQ/7y4dvY7VcHJJNrQDrmy2RzGADS/iaibZ39Ez+EcbgO/gfnjOVgwUHRcEEsUWANU01VWZ1detT3XGAE3Gumo6UH58sjcg/ipghtiK153LwzFyAJYzOxjLhiFOF45mnpSyZ+q/VpnKFg39oyJqry6Rte/poPtSDVBLoTMZO6VsofrNy6k3AE9WbgqScRQjzD+c3lvV3uzIXOr+S4WC3HrMvkFef3xbzs8d6dIpaDCxvaY41dB48hEm37NrwbW3NDDl8CggHmUqwSHtcejE1Hay51Q58b98sxiTxsErXZp78xDMVAkjGLWsccC2VlO4oU9lJ064PR4E+87MQmAyXith1Dr/jVWANZFNOFgSL7IDzTC6K4pbJdx5n84g5OVQ+5828HyFDcWeaQlBsN78JUIrF9s5LLy6putjbWFgLdExacD9a/p+8drx0RwqZGF0ZDHJ3vPfg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(7416014)(376014)(82310400026)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UAkktgPSpRKefK/zO0svwdyRtoEjxiLKFc9ld4pbxGl6crkmkf+uK1X3utJvZSOgtkA/4LxYHyDGYeGQ4vHpFRukm0ES6OERsJbM+Y0tD23BXgMdpYYKlhoOpGb2sLTjW0d8ZD54+pPa99D5IXWhR9derIOUPCrWQqmy6nlziLmfynATDNNlIqQWv+TSYvoG3TZVF0TIMVfZPHPLmtKP7gFS1wf4ObJsrYRisDGrsXwNlbJUmB/RuhjLRxmf4y4VFUhNQ5DLPFgaw3ELmm44EU7EKHwExHO6Ru0c3FAwSYLc0oaK9amf7cL0Uqd/2TzjEUV7I2SlBic563/kJLAifkaEjwtTq2mG6m+IJV80VXu5qESTf1FOpFfX7/eRO0mgucKEM3PjxdsDFoAI97DHxLhqGxUhP7TyWGuGyLS/K5HikygPfgSGtD1xyJXF7mAE X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:38:24.1710 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 40ccff87-8210-43f3-058e-08de80774eb4 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D3.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8877 Content-Type: text/plain; charset="utf-8" Privilege Level Zero Association (PLZA) is configured with a Per Logical Processor MSR: MSR_IA32_PQR_PLZA_ASSOC (0xc00003fc). Add the necessary data structures and definitions to support PLZA configuration. Signed-off-by: Babu Moger --- v2: No changes. Just rebasing on top of the latest tip branch. --- arch/x86/include/asm/msr-index.h | 7 +++++++ arch/x86/kernel/cpu/resctrl/internal.h | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-in= dex.h index be3e3cc963b2..c96fb7db3ca9 100644 --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h @@ -1282,10 +1282,17 @@ /* - AMD: */ #define MSR_IA32_MBA_BW_BASE 0xc0000200 #define MSR_IA32_SMBA_BW_BASE 0xc0000280 +#define MSR_IA32_PQR_PLZA_ASSOC 0xc00003fc #define MSR_IA32_L3_QOS_ABMC_CFG 0xc00003fd #define MSR_IA32_L3_QOS_EXT_CFG 0xc00003ff #define MSR_IA32_EVT_CFG_BASE 0xc0000400 =20 +/* Lower 32 bits of MSR_IA32_PQR_PLZA_ASSOC */ +#define RMID_EN BIT(31) +/* Upper 32 bits of MSR_IA32_PQR_PLZA_ASSOC */ +#define CLOSID_EN BIT(15) +#define PLZA_EN BIT(31) + /* AMD-V MSRs */ #define MSR_VM_CR 0xc0010114 #define MSR_VM_IGNNE 0xc0010115 diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/r= esctrl/internal.h index e3cfa0c10e92..403849a22e91 100644 --- a/arch/x86/kernel/cpu/resctrl/internal.h +++ b/arch/x86/kernel/cpu/resctrl/internal.h @@ -222,6 +222,32 @@ union l3_qos_abmc_cfg { unsigned long full; }; =20 +/* + * PLZA can be configured on a CPU by writing to MSR_IA32_PQR_PLZA_ASSOC. + * + * @rmid : The RMID to be configured for PLZA. + * @reserved1 : Reserved. + * @rmid_en : Associate RMID or not. + * @closid : The CLOSID to be configured for PLZA. + * @reserved2 : Reserved. + * @closid_en : Associate CLOSID or not. + * @reserved3 : Reserved. + * @plza_en : Configure PLZA or not. + */ +union qos_pqr_plza_assoc { + struct { + unsigned long rmid :12, + reserved1 :19, + rmid_en : 1, + closid : 4, + reserved2 :11, + closid_en : 1, + reserved3 :15, + plza_en : 1; + } split; + unsigned long full; +}; + void rdt_ctrl_update(void *arg); =20 int rdt_get_l3_mon_config(struct rdt_resource *r); --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012037.outbound.protection.outlook.com [52.101.48.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5453A389109; Thu, 12 Mar 2026 20:38:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347918; cv=fail; b=B2qW09hhEem98eCYtgXVYNubIiMxImIMrTQNuEjZ6rwy0PlsL1vWqhV9wco8nOovZDBZZ7u6/1hM1AJvQDx9y0NVck426XL25pURedW2rg/d7y/qjWBjn9NpvFJ9eXclxwXGaGCSTA/Frs/8sJV3/Af8Ou9b0wtbP8f3bOphkXM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347918; c=relaxed/simple; bh=B2aGWhXTql8tZArIiiUUsoZPITyBHCIWN/W5hGULhZc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cqdHU8VBobPP0uHwZdL4mMTzPbkr5rZYZcA9PZCKg9QcnI4C8nCUnbzA5HD6vmKqUehJVlb305k1CJnD2Cm19R0I/pxSBE5kahigE2FvxdUtQp1gIET6a3se0RMaKzfz3UpBCmk9J5GO9+Wos5P4A6NvE46Bd+82BfE4DFueKWo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=CZAhgF+M; arc=fail smtp.client-ip=52.101.48.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="CZAhgF+M" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aOO73lthjqeOajSjhcsXF+3H++usQ7gFjDJEwF+We9ALqaZ4PqG1rjDe8S8u1pZej9ULvxkxFMFWPMpeQ0ws0PG6hzJ9NKMJORXMvO5j14edwQaEepAjEUw/HA6BhS7KBnWSxr/i7tnKFpP2vhtYHHnJu2F0a0wc2S8BFIkVrzKN3o3hsWllkZYQAQJgaCXPY3eTeUlhjnmU4AKwbWFGh8CO4e8DQs9fYuwvRx0k8/ggNjVLODUNyRtlvzxLVlHleWSP3KFJFRcZm2+9n+1u7Ox4St9zZySua9X7JX3SMk15c+HhJZPz2fI/b5Hb56iAqldFvVKbX6/lZoGtsQ9UBg== 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=u8NQdcMsRzcVftojZ3P2JqwFtt72iVnVkt2YXOzrefs=; b=EtyJBkSgEyDznXSfxbIhl01ZdvWbeQMm+icOd8MapIlX2oOPLuVFASioazxfWexdnqGTSUkbkNenmb2DbiLw34d4zcdgoqTBoAMK0PHx6DIfJm9RyuR6uBFGEzW60BXybcUTxv+RU6JHTXxMAA0rxO8w6MrMyH4FOsD2q+NmEHei0jzq1KW2TFVoAyPBKunjaae4U931ZwENGYZWNC+ohLOxIFDPfwfIDPMQRvlXgjHI/K5E8IN5YfC/m1ZNWRT42dCZbFKYr/YEY2tFzow0Vz3ysNRsP65IWSPMQdwF3hFXYTYfZxwDz0vWGauE/TLH4WwxW5y6thYOL+2VCeZ4sA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u8NQdcMsRzcVftojZ3P2JqwFtt72iVnVkt2YXOzrefs=; b=CZAhgF+MLQi50eUqR6wo+Egko8SUi4MpMnlvLBmPqM/o6H4cmDYxaNRdMvJ3P+OX9B18EAt4WaYMIEHESSFem69xqhpqV7SQ19lun5ywJmBzeZgIw20Vahenjg+Z3A7Qhf3RYxPrCV6Y65jZ+VzTqut4JF/UbDZ566Z8tLHFDxA= Received: from SJ0PR03CA0168.namprd03.prod.outlook.com (2603:10b6:a03:338::23) by DS7PR12MB5791.namprd12.prod.outlook.com (2603:10b6:8:76::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.6; Thu, 12 Mar 2026 20:38:30 +0000 Received: from SJ5PEPF000001D6.namprd05.prod.outlook.com (2603:10b6:a03:338:cafe::4d) by SJ0PR03CA0168.outlook.office365.com (2603:10b6:a03:338::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Thu, 12 Mar 2026 20:38:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D6.mail.protection.outlook.com (10.167.242.58) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:38:29 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:38:23 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 08/16] x86/resctrl: Add per-CPU and per-task kernel mode state Date: Thu, 12 Mar 2026 15:36:53 -0500 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D6:EE_|DS7PR12MB5791:EE_ X-MS-Office365-Filtering-Correlation-Id: 4e6df55d-bebd-489c-227c-08de8077522c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700016|7416014|376014|1800799024|56012099003|22082099003|18002099003|13003099007; X-Microsoft-Antispam-Message-Info: huc0//eB/j5biwdYKMv2N2VV5gcrVTLOFGaApdU50inQwCi9zFl3vLv0+oHTJf+hjuNyeDp5Cw/xlw8aL10jQnjY9c6/tlxF7p3zPF/cPV0IyeQhgfV/QHikTRgQTw27d2V8XLppp63eAfYiS7XUhLYskzO19M3ISenS/plQbvAy0ya2VeRgOeRZ1MSJa/AIi/BincPg9V6sF6iVuPjj8OIpVM0tGow3ZVXHXEldONec1njrMemoeVn9RjpYyPmw2JhLm6ZP0mLTm8QIML7pInhqEDdf/01711mrj+PPMW3jwCyW+6mecSagqT17Ij7nOPMWkMyW4DwKco9RZQ4qpXIpcju28rW4OJS5Ja3rLJJrOXKXDbqvVwKdOr9RMvBiODu2ixjgiLVWHwLx7AtUIwqsEauNS4JghqF6YB2ViaAhX7iAggejY6E3To37bsjjzdqOx77uX7614qN9dpHOU/GacHUCe/NNheFvofB8DpXzsnu9M9qpEQaSOQ15oiXpyOVappzjPECQSuXoPXFrkZW0MnnDV1AvmjDohGve0wIaUPogY0uoYhEz/b0qJzdhFCP0ccYXJsqj+owxPdY2q82QYuQ22v6gbhy78vwMLjQ7d4p1XapjwDwC+PRg8KdTITB0KSTcExOEXr7W1konk/Qd9Q3PISHjBumk0cBzJULQtT6CyxCULW8z+hN0Ws7oIZxVsznVe0LA82Zgaemjg3+rBeD8CSKR32kO+uzmER13mMC7CJno1QhI9Z9DLgu0o8vINMMZEy8fI7DQFAZXgg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(7416014)(376014)(1800799024)(56012099003)(22082099003)(18002099003)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: XaU3uqObDQJI2ScUkSxm0BGQvbd1ODqRLOorbzjeTotBlp0oSfb+kwG5/jgxA3Cv2SpSHv0ypCTh7uGl6y4G4RS+tPRscJ7iyUMcL7G9vaVqw/gb2i+u/h9ttVOJbkEfU/wy/MOkHGVddb+AiQnwTI2kcYRT9nKf1KQlFsUheJFUunnRGkAVuN89KmCXD8IK55UB9VE9aHL8RmxSEfwCLHPa4z9KYGz9RGGb4w+edGiAH4Sx3klPqw2nkhbeUO86cKz7/irQna0dHWRUHKLpDoVN2H51iEl8O4rIm+C7lCqVz9zxzQivbpDTDDabUFrPZ6sCBpeOC7K7diaBwwDES3eBFLunp5P8l2aYpC8i4xfsuJ+fKHiabza9nMpa/2VGQbw1iTwGZTt2C+rF6bHXtjUulxH/u2nSX3TQNn2lZp5X3/IN7GN1KlOg4zPruVwV X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:38:29.9911 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4e6df55d-bebd-489c-227c-08de8077522c X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D6.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5791 Content-Type: text/plain; charset="utf-8" Add per-CPU state and per-task state for resctrl kernel mode. Signed-off-by: Babu Moger --- v2: Minor name change from plza to kmode. Tony suggested using global variables to store the kernel mode CLOSID and RMID. However, the kernel mode CLOSID and RMID are coming from rdtgroup structure with the new interface. Accessing them requires holding the associated lock, which would make the context switch path unnecessarily expensive. https://lore.kernel.org/lkml/aXuxVSbk1GR2ttzF@agluck-desk3/ --- arch/x86/include/asm/resctrl.h | 14 +++++++++++++- include/linux/sched.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h index 4b4291006e78..e0a992abaeb4 100644 --- a/arch/x86/include/asm/resctrl.h +++ b/arch/x86/include/asm/resctrl.h @@ -21,9 +21,13 @@ /** * struct resctrl_pqr_state - State cache for the PQR MSR * @cur_rmid: The cached Resource Monitoring ID - * @cur_closid: The cached Class Of Service ID + * @cur_closid: The cached Class Of Service ID * @default_rmid: The user assigned Resource Monitoring ID * @default_closid: The user assigned cached Class Of Service ID + * @cur_kmode: Currently active kernel mode (PLZA) bits for this CPU + * @default_kmode: Default kernel mode bits for this CPU (e.g. from resctr= l mount) + * @kmode_rmid: RMID used when executing in kernel mode (PLZA) + * @kmode_closid: CLOSID used when executing in kernel mode (PLZA) * * The upper 32 bits of MSR_IA32_PQR_ASSOC contain closid and the * lower 10 bits rmid. The update to MSR_IA32_PQR_ASSOC always @@ -32,12 +36,20 @@ * * The cache also helps to avoid pointless updates if the value does * not change. + * + * Kernel mode (e.g. PLZA) state: cur_kmode/default_kmode hold the active + * and default mode bits; kmode_rmid and kmode_closid are the association + * used when the thread is in privilege level zero. */ struct resctrl_pqr_state { u32 cur_rmid; u32 cur_closid; u32 default_rmid; u32 default_closid; + u32 cur_kmode; + u32 default_kmode; + u32 kmode_rmid; + u32 kmode_closid; }; =20 DECLARE_PER_CPU(struct resctrl_pqr_state, pqr_state); diff --git a/include/linux/sched.h b/include/linux/sched.h index a7b4a980eb2f..2ec0530399be 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1328,6 +1328,8 @@ struct task_struct { #ifdef CONFIG_X86_CPU_RESCTRL u32 closid; u32 rmid; + /* Resctrl kernel mode (e.g. PLZA) bits for this task */ + u32 kmode; #endif #ifdef CONFIG_FUTEX struct robust_list_head __user *robust_list; --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011016.outbound.protection.outlook.com [52.101.62.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 324AE3803D2; Thu, 12 Mar 2026 20:38:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.16 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347921; cv=fail; b=mgwTYf/6ZlU6gZIKZFTa8CeylRSB6eYy2q9pNhI1PGCcDc/xOFuLc9r5vf10bVN59o640jQ0v1f0KJS9vGKMleS9FJJnPDQVq1ytyb+BsZY/lZeiLYhdhHg0eoSW17wHiStSIOMr4V+tNXcDJqiM4kqmaiTEcLLzproqUhf/L5k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347921; c=relaxed/simple; bh=4kplOKgmxaYsgGGGI5EUTdsmBiMIqLHDEb3/7Quf3tQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VLyl+sB9UX1UUmyEdzeCWRNqEuAz2dui59u+B8JXp4B+uF4BVppTin8mcKB201kCs8DKzmzJ9vqLVZ7ALlq+7go6eqH+ng8gLG572KpFESedBEEBj/E+Z1cDETlDQhz5q4SYOaZ7jmhuCSziXlPo6b2VxoRaRwX0NKamOlTaCbc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=pR5bjx6n; arc=fail smtp.client-ip=52.101.62.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="pR5bjx6n" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L1U+VEWCXiJ42Wzsl46Or+rI/0pq3ZyqsSvuQvnhQXa2wXO0QDuhYDzZnyhuDB9kwO3o9BVsrpyrTIgAJFzYgLTkYuakvucpK8nJeCGqXm3S0c7TmpfcNW+rJZQf8OCSEe0azLJbZUBFazhRz9+cFTgriFEjR6yQO5Ue0zM+s8+rvrf9jtSAAGTfErzmDdbH74LltiRqUILp/n8XSZyU5FPfrGkkpyGao4445rkmWuZmbk1ddZQQIAxg3AhQgn3cLXcICcxUYb1ZbcgTAMQmsbdLvnif4qAjthSI1hPUShV2YOdI50PDhEzirt/VUHW/sLKr+SN+vnUwHine+6ZGLA== 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=wfxTA5Mw4ICFXbzioVxjIp7XYDZ3+Key5EMPVq0HCi4=; b=J24u+KT0OfD85XDFdnNGeZVEN7CE2g7uu36iiPyYOXn5E6ihCrg4p1TOmdsNOPP6bJ+H3uOtF8amE9UFrIsbQNivk9TCgYpccXNPtpmwywNoW5xh3f/TLOB1Cu4Cj9KAdXKiaUeKlAST99P82ApYLp1dvG/Bc3Qr/D5BRgQYMONQ662YjhZ+cdJ8Iv1VfnnOxzluDB91aW4N+SKoqm7WSgg6jZsw9cHl12DVloirxFM6laYvOPI+xu51reQIx5GUWPWztI1/yYra29pjrDZ55d1ZulFlaK1yIctyTpk+10LG5+IEwlP6mdI87YFdTsrxjS+8wUBjzh4Powr6TgXpYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wfxTA5Mw4ICFXbzioVxjIp7XYDZ3+Key5EMPVq0HCi4=; b=pR5bjx6nMKOLNugnVC5POHpEI9jQcbf5xyvcPisK5jgxiRRJoL3zOFji3cL0wAo335pMFxKttgZJ6c7z7/vrrclmpwPSEtao9hYqMmJCVX1/ol0pcBk6qHZrZDRtRGN9mYyJ9bY3TCuL6Yc77x7YZ7Xprxe3fHZqDLMWgOhJ5Yw= Received: from BY3PR05CA0052.namprd05.prod.outlook.com (2603:10b6:a03:39b::27) by LV9PR12MB9757.namprd12.prod.outlook.com (2603:10b6:408:2ed::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.6; Thu, 12 Mar 2026 20:38:36 +0000 Received: from SJ5PEPF000001D2.namprd05.prod.outlook.com (2603:10b6:a03:39b:cafe::ce) by BY3PR05CA0052.outlook.office365.com (2603:10b6:a03:39b::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.8 via Frontend Transport; Thu, 12 Mar 2026 20:38:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D2.mail.protection.outlook.com (10.167.242.54) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:38:35 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:38:31 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 09/16] x86,fs/resctrl: Add the functionality to configure PLZA Date: Thu, 12 Mar 2026 15:36:54 -0500 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D2:EE_|LV9PR12MB9757:EE_ X-MS-Office365-Filtering-Correlation-Id: 5360489c-e6a5-4eda-3675-08de8077558e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|36860700016|1800799024|82310400026|18082099003|18092099006|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: SxohJsipPP9jPXGdaO105Cywi/iBgkBmYxzu4XliFWLuvYPYT0qzwZF44c4PJKTTlNZfHvg7WnufSaalv32EiKh3Jyq2bNq3S6mBBV+9KIlI8M9QF7gRLwIZQ9w3ZpuOw5VCh3QeCwgWqlR9wUtRO+Hzvx7DKLY80KIgX5F/fyMqIO1ol/xfea0q+kd6V488IguNwD9MCbuCJFLDK++FsbBc6jVmzhuO2GDQIk1XGRmyozDp6HqukMRHb1j3YvuIZLwVj72mKtTLBhL6DBBbvY2xzm4+BqEjBgmvvUI3Q/qAnZ37u/wp8Muf3nZ5T2rgJ7zsE9ZK8Qmh49ICalYBI/2I2vqaHcGK1Mx3ibP9gsGNN5bW3nwPrwre7NjnombFbNLCzL/O4xIoC16Zz2DEh0tFqUTKIYGN3aBFOu3FDSMuPxyP21qpokHAMFGuDlLPdtrTy8LZTPqHmhVWHM7l/D4a+mNKp00w5+b2RVw9xGu9lg33UcFBuVeQfLHQ4IuOADtVx3ZyXs5Sa3jRkD50xEW51lH7flmVMQDvk9AKYxBaZ6P8uoWE7oT3/OOI4wT4N4gIX9wDxtS/4YTfiFUAVuaj8kb21sSorWE7H/NRnVe5IEgJGCKtiGRl9900K6VH86FvnI8W9k2qHmxKgoLw6YCzNg7wtoeFZG4g5ZL3f3LLfs1mLRvJHlzgZOZMkTqzabDQvWcFxAIiraUjxq2au43SKVKC2UHg6b+h/pGDYgAzDC8tT+04SZJhNjkDcnFDiQoXf5E2EpnxvDhSN+0vLw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(36860700016)(1800799024)(82310400026)(18082099003)(18092099006)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: w+RumxhUMOO5Y2k3dKy0Jl7o0ApBIH0FUHZwIrJOUuS04N5w7YXWGs1nln+e/kP/L3cYZGt24LdAhKgUI4egeZLdxd+jVnQroFpb53YrsHrH3uzLcKU1IaefkNzhV2hamli5qZ4F2/z9l2tC7lGCHUm6P827Bh9S9PuE3hG/zX/LX3DXPeemX5XDlUZQf64uktzvzsn45h+MhXQkf1uLty1A0LwN1/vyENmqWPijkQzmGJfajpPWG6bsP8GGNOdGsbqNfs49ywhH8o665ocgjvA98k4W/H9j72VGmeOexDAhBqrRI2zlUZpGUL5lRUC7FMngVFjbYOm3zMcw5BaqXe5BRB1AtWTK6DjWK0NJljzIOtnNv75o42kIV+qGwEIeXEEz6vrxx+OO1ENs8udvsy88wfZbH6xvWzwBfv3cpSgit2L75q5Lzswkm6ffufOE X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:38:35.6950 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5360489c-e6a5-4eda-3675-08de8077558e X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D2.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR12MB9757 Content-Type: text/plain; charset="utf-8" Privilege Level Zero Association (PLZA) is configured by writing to MSR_IA32_PQR_PLZA_ASSOC. PLZA is disabled by default on all logical processors in the QOS Domain. System software must follow the following sequence. 1. Set the closid, closid_en, rmid and rmid_en fields of MSR_IA32_PQR_PLZA_ASSOC to the desired configuration on all logical processors in the QOS Domain. 2. Set MSR_IA32_PQR_PLZA_ASSOC[PLZA_EN]=3D1 for all logical processors in the QOS domain where PLZA should be enabled. MSR_IA32_PQR_PLZA_ASSOC[PLZA_EN] may have a different value on every logical processor in the QOS domain. The system software should perform this as a read-modify-write to avoid changing the value of closid_en, closid, rmid_en, and rmid fields of MSR_IA32_PQR_PLZA_ASSOC. Signed-off-by: Babu Moger --- v2: - Updated the commit message to include the sequence of steps to enable= PLZA. Added mode code comments for clarity. Added kmode to functin names to be generic. --- arch/x86/include/asm/resctrl.h | 19 ++++++ arch/x86/kernel/cpu/resctrl/ctrlmondata.c | 77 +++++++++++++++++++++++ include/linux/resctrl.h | 30 +++++++++ 3 files changed, 126 insertions(+) diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h index e0a992abaeb4..167be18983c1 100644 --- a/arch/x86/include/asm/resctrl.h +++ b/arch/x86/include/asm/resctrl.h @@ -186,6 +186,25 @@ static inline bool resctrl_arch_match_rmid(struct task= _struct *tsk, u32 ignored, return READ_ONCE(tsk->rmid) =3D=3D rmid; } =20 +/** + * resctrl_arch_set_cpu_kmode() - Set per-CPU kernel mode state for PLZA p= rogramming + * @cpu: Logical CPU to update. + * @closid: CLOSID to use for kernel work on this CPU when kmode is enable= d. + * @rmid: RMID to use for kernel work on this CPU when kmode is enabled. + * @enable: 1 to enable PLZA on this CPU; 0 to leave disabled. Stored in d= efault_kmode. + * + * Stores the given CLOSID, RMID, and enable value in per-CPU state (kmode= _closid, + * kmode_rmid, default_kmode). The actual MSR_IA32_PQR_PLZA_ASSOC write is= done + * separately (e.g. via on_each_cpu_mask) so that closid/rmid are set on a= ll CPUs + * in the domain before PLZA_EN is set, per the PLZA programming sequence. + */ +static inline void resctrl_arch_set_cpu_kmode(int cpu, u32 closid, u32 rmi= d, u32 enable) +{ + WRITE_ONCE(per_cpu(pqr_state.default_kmode, cpu), enable); + WRITE_ONCE(per_cpu(pqr_state.kmode_closid, cpu), closid); + WRITE_ONCE(per_cpu(pqr_state.kmode_rmid, cpu), rmid); +} + static inline void resctrl_arch_sched_in(struct task_struct *tsk) { if (static_branch_likely(&rdt_enable_key)) diff --git a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c b/arch/x86/kernel/cp= u/resctrl/ctrlmondata.c index b20e705606b8..b5dfe30aca26 100644 --- a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c +++ b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c @@ -131,3 +131,80 @@ int resctrl_arch_io_alloc_enable(struct rdt_resource *= r, bool enable) =20 return 0; } + +/* + * IPI callback: write MSR_IA32_PQR_PLZA_ASSOC on this CPU (AMD PLZA). + */ +static void resctrl_kmode_set_one_amd(void *arg) +{ + union qos_pqr_plza_assoc *plza =3D arg; + + wrmsrl(MSR_IA32_PQR_PLZA_ASSOC, plza->full); +} + +/** + * resctrl_arch_configure_kmode() - x86/AMD: program PLZA per control doma= in + * + * For each control domain, first sets per-CPU state (closid, rmid, enable= =3D0) + * on all CPUs in the domain, then writes MSR_IA32_PQR_PLZA_ASSOC on each = CPU + * so that closid/closid_en (and optionally rmid/rmid_en) are programmed + * before PLZA_EN is set, per the PLZA programming sequence. + */ +void resctrl_arch_configure_kmode(struct rdt_resource *r, struct resctrl_k= mode_cfg *kcfg, + u32 closid, u32 rmid) +{ + union qos_pqr_plza_assoc plza =3D { 0 }; + struct rdt_ctrl_domain *d; + int cpu; + + if (kcfg->kmode_cur & INHERIT_CTRL_AND_MON) + return; + + if (kcfg->kmode_cur & GLOBAL_ASSIGN_CTRL_ASSIGN_MON) { + plza.split.rmid =3D rmid; + plza.split.rmid_en =3D 1; + } + plza.split.closid =3D closid; + plza.split.closid_en =3D 1; + + list_for_each_entry(d, &r->ctrl_domains, hdr.list) { + for_each_cpu(cpu, &d->hdr.cpu_mask) + resctrl_arch_set_cpu_kmode(cpu, closid, rmid, 0); + on_each_cpu_mask(&d->hdr.cpu_mask, resctrl_kmode_set_one_amd, &plza, 1); + } +} + +/** + * resctrl_arch_set_kmode() - x86/AMD: set PLZA enable/disable on a set of= CPUs + * @cpu_mask: CPUs to update (e.g. a control domain's cpu_mask). + * @kcfg: Current kernel mode configuration. + * @closid: CLOSID to use for kernel work when a global assign mode is act= ive. + * @rmid: RMID to use for kernel work when GLOBAL_ASSIGN_CTRL_ASSIGN_MON i= s active. + * @enable: True to set MSR_IA32_PQR_PLZA_ASSOC.PLZA_EN; false to clear it. + * + * Writes MSR_IA32_PQR_PLZA_ASSOC on each CPU in @cpu_mask (via IPI) and u= pdates + * per-CPU state. No-op when kmode_cur is INHERIT_CTRL_AND_MON. Call after + * resctrl_arch_configure_kmode() so that closid/rmid are programmed before + * PLZA_EN is set. + */ +void resctrl_arch_set_kmode(cpumask_var_t cpu_mask, struct resctrl_kmode_c= fg *kcfg, + u32 closid, u32 rmid, bool enable) +{ + int cpu; + union qos_pqr_plza_assoc plza =3D { 0 }; + + if (kcfg->kmode_cur & INHERIT_CTRL_AND_MON) + return; + + if (kcfg->kmode_cur & GLOBAL_ASSIGN_CTRL_ASSIGN_MON) { + plza.split.rmid =3D rmid; + plza.split.rmid_en =3D 1; + } + plza.split.closid =3D closid; + plza.split.closid_en =3D 1; + plza.split.plza_en =3D enable; + + on_each_cpu_mask(cpu_mask, resctrl_kmode_set_one_amd, &plza, 1); + for_each_cpu(cpu, cpu_mask) + resctrl_arch_set_cpu_kmode(cpu, closid, rmid, enable); +} diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h index 2c36d1ac392f..3f3e8c1e549b 100644 --- a/include/linux/resctrl.h +++ b/include/linux/resctrl.h @@ -709,6 +709,36 @@ bool resctrl_arch_get_io_alloc_enabled(struct rdt_reso= urce *r); */ void resctrl_arch_get_kmode_cfg(struct resctrl_kmode_cfg *kcfg); =20 +/** + * resctrl_arch_configure_kmode() - Program kernel mode (e.g. PLZA) for al= l domains + * @r: The resctrl resource (scope for control domains). + * @kcfg: Current kernel mode configuration. + * @closid: CLOSID to use for kernel work when a global assign mode is= active. + * @rmid: RMID to use for kernel work when GLOBAL_ASSIGN_CTRL_ASSIGN= _MON is active. + * + * Programs each control domain so that kernel work uses the given CLOSID/= RMID + * per the active kernel mode (e.g. MSR_IA32_PQR_PLZA_ASSOC on x86). No-op= when + * kmode_cur is INHERIT_CTRL_AND_MON. May be called from any CPU. + */ +void resctrl_arch_configure_kmode(struct rdt_resource *r, struct resctrl_k= mode_cfg *kcfg, + u32 closid, u32 rmid); + +/** + * resctrl_arch_set_kmode() - Set kernel mode (e.g. PLZA) on a set of CPUs + * @cpu_mask: CPUs to update (e.g. a control domain's cpu_mask). + * @kcfg: Current kernel mode configuration. + * @closid: CLOSID to use for kernel work when a global assign mode is act= ive. + * @rmid: RMID to use for kernel work when GLOBAL_ASSIGN_CTRL_ASSIGN_MON i= s active. + * @enable: True to set MSR_IA32_PQR_PLZA_ASSOC.PLZA_EN on the CPUs; false= to clear it. + * + * Writes MSR_IA32_PQR_PLZA_ASSOC on each CPU in @cpu_mask and updates per= -CPU + * state. No-op when kmode_cur is INHERIT_CTRL_AND_MON. Call after + * resctrl_arch_configure_kmode() so that closid/rmid are programmed before + * PLZA_EN is set. May be called from any CPU. + */ +void resctrl_arch_set_kmode(cpumask_var_t cpu_mask, struct resctrl_kmode_c= fg *kcfg, + u32 closid, u32 rmid, bool enable); + extern unsigned int resctrl_rmid_realloc_threshold; extern unsigned int resctrl_rmid_realloc_limit; =20 --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012031.outbound.protection.outlook.com [52.101.43.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B3C5374162; Thu, 12 Mar 2026 20:38:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347932; cv=fail; b=rcrkWyzMV63u3j1ermPeVYqCeuWJKmTkV2EmVoHYqLv1NoaRFlyfNShWZdms4UeLZh1iVw2lJfflFgqlnIpX71IKoIO6PA9uS4zYmJqza47H16xuPzJBVtbLQLA19bQJj/bIz3BCop9O54d6gOYrovG/6rIRawBeevDj6NgkW74= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347932; c=relaxed/simple; bh=ewfdkeoSE0LU+mwNyCGKnpANXRbey78B3Ev1b6ioXCY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IG3FnXi+XVzya9tuQGdTSW/y/7h9ifvZf3QDN/wQ7OEUwypw3K3r7UesqLwPJ39DL4fyGgzcvGoQWTQBFSgmjxuhiollio7L7b+XIRHxUXNKW6mBHTU2xXU3j4Qpi+lFJsJWAnyJRv5ojfn7zs7vYzvx3Fpo9apKLaSE3HkYBps= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=2EqGGVUI; arc=fail smtp.client-ip=52.101.43.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="2EqGGVUI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xA5Hya82+gCdAuSLSzzB5RUnVIi5BQypBZXw//5NydTtYWSLBdvrJWR1lqWJNLCJ1V0PdcpxD5pOZkAx/jXP8IyPQPSsLAoxntkGcXLebW/j94UkV6nen20GvYiiuZk+xRFAndUm3z6r9vM+LwdbAT62fzSM+EZOKAtRrerqm9jMKU4ki2/T64gs03W2wjslDBdZdBkDApYupyPoRaAggyKdZMCYTRu7KsaH0PKZfwso3a6Sw9DN23yb/4n2MjVZU9RanEwOmig8E5lyrjyRol/YQ7/+2lZn+IIrOLxW8o9OE6mS5LSLoeaRACdYytx8rSJDrhQz3Ikzwhua920Ivg== 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=xoMeChVdLUw1WYm4EQW0EiCsfzMggrTqbWQZY8aBLmc=; b=wxxfKeJx+qfLD53REb0DJOlqE1bcoaSjkF3HXcHyGgU2eKojZHoAH2dQnTGCyYwaQ6bbvcennpVvzp8P6xV9M9JfMq5fh/Et1S/GM6pQUS+3/x8Q4cJsDfVgHYEPHhkOvEkoKDx6M/gxVWeLxBg6goW+8u3ofykk5n82zTpoyPhTFzX91qWOJJ/7Kwb2F+ejB5yupgcpKdcfIdhlPibPKn4j5MolAitlmeJx8v/tpg+5mFW6xmdUHCAreM0HcJQjQ3YcjLHx+v4IcZEKGfrbDzOIDHgk/465HZrq9koIXqoQK8kzLBlb37KGPj66eT7xWYPNzX7NlXSwgolAcXGmzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xoMeChVdLUw1WYm4EQW0EiCsfzMggrTqbWQZY8aBLmc=; b=2EqGGVUIwJkDMAqWgFs5ZTpEhbZdy6ios+p9re/1GmyJtzrXQ5AMkyUYhKlEVu8KWbASg4z+YMpSx2z+BSs7af18fAgyUmzwfFdSLLGHeNgKQzD1DDaBdzgiuVKDbpBE5U4UQpnMD262Amf8U/eTOvEqla4FUZAsT1776KHSY+E= Received: from BYAPR06CA0040.namprd06.prod.outlook.com (2603:10b6:a03:14b::17) by DS0PR12MB6461.namprd12.prod.outlook.com (2603:10b6:8:c7::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Thu, 12 Mar 2026 20:38:44 +0000 Received: from SJ5PEPF000001D0.namprd05.prod.outlook.com (2603:10b6:a03:14b:cafe::7f) by BYAPR06CA0040.outlook.office365.com (2603:10b6:a03:14b::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.26 via Frontend Transport; Thu, 12 Mar 2026 20:38:41 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D0.mail.protection.outlook.com (10.167.242.52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:38:43 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:38:39 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 10/16] x86/resctrl: Add PLZA state tracking and context switch handling Date: Thu, 12 Mar 2026 15:36:55 -0500 Message-ID: <654954974f71dd267c706968f8477e6d7065e789.1773347820.git.babu.moger@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D0:EE_|DS0PR12MB6461:EE_ X-MS-Office365-Filtering-Correlation-Id: f9cb3bc1-da5e-4e8c-a7b9-08de80775a5e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700016|1800799024|82310400026|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: MsjWidwv8X2K2tfJIu9WJMv2Y9gIJGIKWlU1Uo55lYc4p2/bJK3S9KTirCz7jtyRdppLbavSN4xkD5XZXTviALtqotvIWfOaxJGPX2SH5Wivi/myu2SHNbxW94eX4NfDmlHDmflqcSN6SFCrntou6QRwxjbHQGe0KUeua59dIRhgI+x9pgQJSm5CaukVPXFL3j1pDIDhjgRSrwYH8oQFqfAUpfs3yaQTsqblF9qoJR+jqbaMsvZwMJrvZcpuSNCn54BZ46X/o1fs7ZDWHVYK5saFVmcpqxeBa3APvujBXRmT7OYnKLu+hRvMmNRisLQ3i/xNyNvv6BI1UhElpRpUuL+KZ6ZhZqRhyw79FwHp8h0bQTEx3vCvEVeCAYw2jZlm5lG/zZNyya+KW2XNOOk9c8FGqvVvaHE7upbeu9Na/IiemTn15Po+S3cxSdVMu10anWlF/Ey9Gjal7ZTeXlkDMT110e/I7+KfuRDuILpUWkwctC2VyMjqL3zLzvB6lFwf+Z2cuZ30Cz+rVPQ456rRQRQ4zbwe/W+UbS4t0kGp+IR+7Wc6o/ohzk51AyCgkaY6zZGQl6Er4YDOkkHEGXcjMCm4xwsPeciFbFXjHEjM2kSusQC5GoLWLSfGJUqDxJhzabHxP1snrY8IgYbZEwC2874lTG8tqqDJEEam7NDIUj3Ks5QM4PX7KbJL2L34qexg+VV4WaCadQgsFuHjXi+0Sa4h0rx18MVGokDLc5yClwnw8pdfe4m93tNSsBXpUMI2tEqAgxUgwaAxKRO4Z43UiA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700016)(1800799024)(82310400026)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vhInSXajZW+sSEUvKJJqXcNpmlxEGomOBrs4gWJHdyn+Y9q1B4QHZbqoPwvVqwypLF85b6xrSfopWTnPuptnf/1ZPgmaKvXwGoLXRugTbcmB0UTeswEQZiiUr1+3L57eDEFmRtlapJlWz9JVsivRCzgdH3CBD92RUHKRCdAEtBm+y4ZTEo1c5L/Q5MgT0VgL7ACRCGRTyUOZi+EQTRN/DDxwATqb9002UIONng1CJHD4yqyvHps/Q6x4NiSXUtKQWYpeQJQMpjSBSfONzb448n2HpbouUT/pKXGJWA3IO+Bpb83h0zvwuDLLFSBwnI+D5tNEiCwMgQmBl0TjW5PTj1g8ehrWU5osWNhJtvNgFe4J5+6qcI+TQrNpKlN9BdTmd+AWDSAa6DwMVs+YRonlGTEdQbZVYPp+eADe65v6cddKfDdtlrkM2WUcYHlxrs6b X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:38:43.7449 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f9cb3bc1-da5e-4e8c-a7b9-08de80775a5e X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6461 Content-Type: text/plain; charset="utf-8" When kernel mode (e.g., PLZA) is enabled, the resctrl sched-in path must program MSR_IA32_PQR_PLZA_ASSOC in addition to IA32_PQR_ASSOC. Add resctrl_kmode_mon_en() to indicate whether kernel mode monitoring needs to be enabled (GLOBAL_ASSIGN_CTRL_ASSIGN_MON). Task's kmode takes precedence when kmode is enabled for that task; otherwise, fall back to the per-CPU default_kmode. Write MSR_IA32_PQR_PLZA_ASSOC only when kmode is changed. Protect the PLZA path with rdt_kmode_enable_key to avoid overhead when kmode is disabled. Signed-off-by: Babu Moger --- v2: Updated code comments. Added new function resctrl_kmode_mon_en() to check if kernel mode monitoring needs to be enabled. --- arch/x86/include/asm/resctrl.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h index 167be18983c1..ccfd95b98bac 100644 --- a/arch/x86/include/asm/resctrl.h +++ b/arch/x86/include/asm/resctrl.h @@ -57,6 +57,9 @@ DECLARE_PER_CPU(struct resctrl_pqr_state, pqr_state); extern bool rdt_alloc_capable; extern bool rdt_mon_capable; =20 +/* Global kernel mode config; used by resctrl_kmode_mon_en(). */ +extern struct resctrl_kmode_cfg resctrl_kcfg; + DECLARE_STATIC_KEY_FALSE(rdt_enable_key); DECLARE_STATIC_KEY_FALSE(rdt_alloc_enable_key); DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key); @@ -108,6 +111,17 @@ static inline void resctrl_arch_disable_kmode(void) static_branch_dec_cpuslocked(&rdt_enable_key); } =20 +/** + * resctrl_kmode_mon_en() - True when kernel mode requires RMID in PLZA MSR + * + * When GLOBAL_ASSIGN_CTRL_ASSIGN_MON is active, MSR_IA32_PQR_PLZA_ASSOC m= ust + * program both CLOSID and RMID for kernel work; otherwise only CLOSID is = used. + */ +static bool resctrl_kmode_mon_en(void) +{ + return resctrl_kcfg.kmode_cur & GLOBAL_ASSIGN_CTRL_ASSIGN_MON; +} + /* * __resctrl_sched_in() - Writes the task's CLOSid/RMID to IA32_PQR_MSR * @@ -127,6 +141,7 @@ static inline void __resctrl_sched_in(struct task_struc= t *tsk) struct resctrl_pqr_state *state =3D this_cpu_ptr(&pqr_state); u32 closid =3D READ_ONCE(state->default_closid); u32 rmid =3D READ_ONCE(state->default_rmid); + u32 kmode =3D READ_ONCE(state->default_kmode); u32 tmp; =20 /* @@ -150,6 +165,24 @@ static inline void __resctrl_sched_in(struct task_stru= ct *tsk) state->cur_rmid =3D rmid; wrmsr(MSR_IA32_PQR_ASSOC, rmid, closid); } + + /* + * When kernel mode (e.g. PLZA) is enabled, program MSR_IA32_PQR_PLZA_ASS= OC. + * Task's kmode overrides per-CPU default_kmode. Only write the MSR when + * kmode has changed to avoid unnecessary writes on the scheduler hot pat= h. + */ + if (static_branch_likely(&rdt_kmode_enable_key)) { + tmp =3D READ_ONCE(tsk->kmode); + if (tmp) + kmode =3D tmp; + + if (kmode !=3D state->cur_kmode) { + state->cur_kmode =3D kmode; + wrmsr(MSR_IA32_PQR_PLZA_ASSOC, + resctrl_kmode_mon_en() ? (RMID_EN | state->kmode_rmid) : 0, + (kmode ? PLZA_EN : 0) | (CLOSID_EN | state->kmode_closid)); + } + } } =20 static inline unsigned int resctrl_arch_round_mon_val(unsigned int val) --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010001.outbound.protection.outlook.com [52.101.46.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1E6E374162; Thu, 12 Mar 2026 20:38:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.1 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347939; cv=fail; b=B6F2kGphg5l/9gUdrHahJQ91TwEWK5zxlFbnEl0QP7XRKaJrV8ZvRbEIhqRDvdYSMYL3RE4vY739BNBQR5SsuSMcgHdl4XEhoXkcdhOQzFd+7Nm5oAe7x8GxgLRZqJybnNoUX20xcygaAWGp9teVKLm3AOnNYsljroMDFdOiPi4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347939; c=relaxed/simple; bh=byfkoMfdThkgLlMqD5yWyyERF9V1W/rjnPRL7RVqL4c=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WLEfwms0gQ7PR4cgmL5B2kb4ZYUAvdKnA16sSug62g5iOZHMAYNz8YTIs8nT7ikQ2qCXdETLGpXMql2ijChLrh62qI4rTXK5KC5BQHRxj3sWD7/5vg5SyfiOQ0/qm4QIXl0IhZasIuUXraFbvFwkYP9JOiyW7IN4ZDvamoQuxqI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=G2LitSch; arc=fail smtp.client-ip=52.101.46.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="G2LitSch" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=S7DOGitCemonroXlu6yZG6TUxwYNjU/Zgz7OeCZ8oeYqdwHZXuihXWtgUX2H9cOYudzmChtSM4Gka9hJPP36kZm3cO1ebqhMlvwBARGgvNfMx5Ig8E7xf/xOfZiKD0o9NLQgJmioH9nFNjzmjPcn6K/3UbnlDV2r7z0n3UiKnQlm9s+KFZbrkq7LdLarOrOq2wv6wILYuONOWtdrurgXiNwaqcE83SFS69SROTrAazTJ0hcL0mrzFLH1019QVknTVYKUrc6WtBtvO0joLyAxaL5JMSkR6X8lelnVWXz4PTlt4LtpRLMQiEJIaQxrDXMOzEs6bXm+SNwq/UkyEwsmgA== 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=4x3iomhI1/T6l6KqKO84DrAMGB0518CCwUXBD8DfCQI=; b=fjfLB/JDWIxs6tpQkN7q/lyNkZxiOTLbzbSkOrWALFsieFBj1+5vN7239QAm6HJzVfp+vEIUVHH2SWi+lPI0t2AMwys6Uy/9u1N2os2aj3zFZ3VmG2MQgnv/NOq347ZzSomZcIctGmi4uJFlFleA2MogUBZlBPp66VdPuImx/Ua2ftc1NQQsaQpdsp4v5FAlefWDT3y2YQdIs2Q4bQ+A/tOjEsdPi8EbhoaalI6I/5NFLD4aOsCJq9kC7puRzKczkuQAybZCKusvb4WqdMcwA9R2iCuT4ftu7rbtOhWeSVdhzlamoJXw8pFrjrm6FSv1EBcCg3j47lGkn2VBKCCNug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4x3iomhI1/T6l6KqKO84DrAMGB0518CCwUXBD8DfCQI=; b=G2LitSchL6GioWv4NR8T6A/u5hdTgyjLG8izHOazSDcjEycOg6K8MC3QzwuOjv/seEV8gnLU++vyNtzyyXgUnWLNAsM3cpOtcDqB4yi/brXCaLKb/NB5yzmoQWXwedoayMxlMb0gu6jfxsjGEszR3EWqm1LVbMdm93hxjbuv82w= Received: from BY3PR05CA0038.namprd05.prod.outlook.com (2603:10b6:a03:39b::13) by MN2PR12MB4255.namprd12.prod.outlook.com (2603:10b6:208:198::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar 2026 20:38:50 +0000 Received: from SJ5PEPF000001D2.namprd05.prod.outlook.com (2603:10b6:a03:39b:cafe::8e) by BY3PR05CA0038.outlook.office365.com (2603:10b6:a03:39b::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Thu, 12 Mar 2026 20:38:50 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D2.mail.protection.outlook.com (10.167.242.54) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:38:50 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:38:47 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 11/16] fs/resctrl: Add write handler for info/kernel_mode Date: Thu, 12 Mar 2026 15:36:56 -0500 Message-ID: <6cc46ecf2a9ba759cd4de12bed3e9b898468d976.1773347820.git.babu.moger@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D2:EE_|MN2PR12MB4255:EE_ X-MS-Office365-Filtering-Correlation-Id: dbb7985d-13a4-441b-85b1-08de80775e27 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|376014|7416014|82310400026|18082099003|22082099003|56012099003|18092099006|18002099003|13003099007; X-Microsoft-Antispam-Message-Info: Wbm867VqgpcJbAYMxfj9jsmrhE7uRz2zW9QEuOGZKpsTHPGjn57SFB/MXCnIYnFnHhzH3IT1xFoVGA2/qCT4aUV6Lurs8YpsJIeGxHK7pIgXf0t4ljkIwSw5emIwNeJ8WVnoUZ5DbjGPboxr0DowqrVtVGowJ/XxCAL/aJ2JgfZi3hjJUf2U/pCIF+XPYdlExZUR98DeJSuVXMEK/DTASblf+Y5MSqeUiJP0+i/pDjeZkBnJGBZU5slPe5tAqlcFsBDj1rlAgOuRoj9sXlbJ6YHTo38CkUajLtABxQrwQA0Rk7CBQ5FXLNEug7dRaIMXFyz2UANxAAGTR2S2i9jZFwkHGrASZiutyEgEXJ4FUs41owH/Y2+wPTMV8+YtLYpneAUBU6lDUdkxSuhZU9mmZnmk7DGGUWC3hzKztPts1+kbIduhceqGV1wtdealLx9G940nd2z9pd6r0AoGK/OiZRk1o2XqF5L9ed7FQ5tjBtPrVW1eEo07TMz6m4rFVTE72lTKZ0bF+Nows04AT+fizXRijN3CsIc5tDEbsOnlYrOSnGV8VamFT69CicIHl6TGy/CfDf4Hz1rNpenIU2S7cRZBhtH/ExMb4TeQOn83lNb4d+sR+UuoejlIjbxksC+WZiS7ohD7EDUkzOt6y5BcciGyK6Yn2675HpZXzULObmEkrJkfuhXANLd3s/rk8qr/lxKG7RSo5U//BD9NqjGH2lJfGR0aBxuy6qCJy4mIQdv3dBW/r+qfRfGnsnovIaJNHzFGAjOTf6bm0FO0n7Levg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(376014)(7416014)(82310400026)(18082099003)(22082099003)(56012099003)(18092099006)(18002099003)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: J8nr6Kprt41qLDovbgEvKQBaRab01RzKCISuovKqFh27FG8wmmTSbK650g+fdFBgePTqfQeTMWH9U0xwiQV/H4t80mrqG043xovj2iV4D8h22GHYfh6mF2AmbUN5joz6pgJs/XZVmE5op/r3+MS7rBjPTJq//EyUx/W8AiHJaw6laKOMYo+c9rxStqRL1cxJM1khDLT/IzqmFjUyUMmKI2JuhDRtMZ2Z9qLBNtgepCfgbHrJ7kw5OsrjUV5EtFejfeHIH3SQqtBXX48xrs91I4OXnyTnZ4/fPIw83HehG+OWNewtmYfLxGdMpVH1ltcq13eIyNV9vL9vztABv8IjT1530jT9egGEomoqmtG4+1akk6lRbbLoYe/nPbrQTZKDe9Er9v0QET9vjLpgcspHK0GRexi66s9aXQXaOTwuKifFKqYa64CMYByLfSxML724 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:38:50.0948 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dbb7985d-13a4-441b-85b1-08de80775e27 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D2.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4255 Content-Type: text/plain; charset="utf-8" Add resctrl_kernel_mode_write() so users can set the current kernel mode by writing a mode name to info/kernel_mode. Unsupported or invalid names are rejected; errors are reported in info/last_cmd_status. Add rdtgroup_config_kmode() to assign or clear a group for kernel mode (e.g. PLZA), and extend struct rdtgroup with a kmode flag. Update Documentation/filesystems/resctrl.rst to describe the kernel_mode file. Signed-off-by: Babu Moger --- v2: New patch to handle PLZA interfaces with /sys/fs/resctrl/info/ director= y. https://lore.kernel.org/lkml/2ab556af-095b-422b-9396-f845c6fd0342@intel= .com/ --- Documentation/filesystems/resctrl.rst | 34 +++++++++ fs/resctrl/internal.h | 2 + fs/resctrl/rdtgroup.c | 101 +++++++++++++++++++++++++- 3 files changed, 136 insertions(+), 1 deletion(-) diff --git a/Documentation/filesystems/resctrl.rst b/Documentation/filesyst= ems/resctrl.rst index ba609f8d4de5..2107dd4b3649 100644 --- a/Documentation/filesystems/resctrl.rst +++ b/Documentation/filesystems/resctrl.rst @@ -514,6 +514,40 @@ conveyed in the error returns from file operations. E.= g. # cat info/last_cmd_status mask f7 has non-consecutive 1-bits =20 +"kernel_mode": + In the top level of the "info" directory, "kernel_mode" controls how + resource allocation and monitoring work in kernel mode. This is used on + some platforms to assign a dedicated CLOSID and/or RMID to kernel threads. + + Reading the file lists supported kernel modes, one per line. The + currently active mode is shown in square brackets; other modes supported + by the platform are shown without brackets. Example:: + + # cat info/kernel_mode + [inherit_ctrl_and_mon] + global_assign_ctrl_inherit_mon + global_assign_ctrl_assign_mon + + Writing a mode name (followed by a newline) sets the current kernel mode. + The name must match one of the supported mode names exactly. Modes not + supported by the platform (e.g. not advertised when reading the file) + cannot be set. Errors are reported in "info/last_cmd_status". Example:: + + # echo "global_assign_ctrl_assign_mon" > info/kernel_mode + # cat info/kernel_mode + inherit_ctrl_and_mon + global_assign_ctrl_inherit_mon + [global_assign_ctrl_assign_mon] + + Modes: + + - "inherit_ctrl_and_mon": Kernel uses the same CLOSID and RMID as the + current user-space task (default). + - "global_assign_ctrl_inherit_mon": One CLOSID is assigned for all + kernel work; RMID is still inherited from user space. + - "global_assign_ctrl_assign_mon": One resource group (CLOSID and RMID) + is assigned for all kernel work. + Resource alloc and monitor groups =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D =20 diff --git a/fs/resctrl/internal.h b/fs/resctrl/internal.h index 1a9b29119f88..b5999d8079d6 100644 --- a/fs/resctrl/internal.h +++ b/fs/resctrl/internal.h @@ -216,6 +216,7 @@ struct mongroup { * @mon: mongroup related data * @mode: mode of resource group * @mba_mbps_event: input monitoring event id when mba_sc is enabled + * @kmode: true if this group is assigned for kernel mode (e.g. PLZA) * @plr: pseudo-locked region */ struct rdtgroup { @@ -229,6 +230,7 @@ struct rdtgroup { struct mongroup mon; enum rdtgrp_mode mode; enum resctrl_event_id mba_mbps_event; + bool kmode; struct pseudo_lock_region *plr; }; =20 diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index bb775afc78f5..6cd928fabaa2 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -1019,6 +1019,104 @@ static int resctrl_kernel_mode_show(struct kernfs_o= pen_file *of, return 0; } =20 +/** + * rdtgroup_config_kmode() - Enable or disable kernel mode (e.g. PLZA) for= a group + * @rdtgrp: The rdtgroup to assign or unassign for kernel work. + * @enable: True to assign this group for kernel mode; false to clear. + * + * Programs arch state via resctrl_arch_configure_kmode() and + * resctrl_arch_set_kmode(), and updates resctrl_kcfg.k_rdtgrp. Only one g= roup + * may have kmode at a time. Pseudo-locked groups cannot be used for kerne= l mode. + * + * Return: 0 on success, or -EINVAL if the group is pseudo-locked. + */ +static int rdtgroup_config_kmode(struct rdtgroup *rdtgrp, bool enable) +{ + struct rdt_resource *r =3D resctrl_arch_get_resource(RDT_RESOURCE_L3); + u32 closid; + + if (rdtgrp->mode =3D=3D RDT_MODE_PSEUDO_LOCKED) { + rdt_last_cmd_puts("Resource group is pseudo-locked\n"); + return -EINVAL; + } + + if (rdtgrp->type =3D=3D RDTMON_GROUP) + closid =3D rdtgrp->mon.parent->closid; + else + closid =3D rdtgrp->closid; + + resctrl_arch_configure_kmode(r, &resctrl_kcfg, closid, rdtgrp->mon.rmid); + + resctrl_arch_set_kmode(&rdtgrp->cpu_mask, &resctrl_kcfg, closid, + rdtgrp->mon.rmid, enable); + rdtgrp->kmode =3D enable; + if (enable) + resctrl_kcfg.k_rdtgrp =3D rdtgrp; + else + resctrl_kcfg.k_rdtgrp =3D NULL; + + return 0; +} + +/** + * resctrl_kernel_mode_write() - Set current kernel mode via info/kernel_m= ode + * @of: kernfs file handle. + * @buf: Mode name string (e.g. "inherit_ctrl_and_mon"); must end with new= line. + * @nbytes: Length of buf. + * @off: File offset (unused). + * + * Accepts one of the names in kmodes[]. The mode must be supported by the + * platform (resctrl_kcfg.kmode). On success updates resctrl_kcfg.kmode_cu= r. + * Errors are reported in last_cmd_status. + * + * Return: nbytes on success, or -EINVAL with last_cmd_status set on error. + */ +static ssize_t resctrl_kernel_mode_write(struct kernfs_open_file *of, + char *buf, size_t nbytes, loff_t off) +{ + int ret =3D 0; + u32 kmode; + int i; + + if (nbytes =3D=3D 0 || buf[nbytes - 1] !=3D '\n') + return -EINVAL; + buf[nbytes - 1] =3D '\0'; + + mutex_lock(&rdtgroup_mutex); + rdt_last_cmd_clear(); + + for (i =3D 0; i < RESCTRL_KERNEL_MODES_NUM; i++) { + if (strcmp(buf, kmodes[i].name) !=3D 0) + continue; + /* Mode name matched; reject if not supported by this platform. */ + if (!(resctrl_kcfg.kmode & kmodes[i].val)) { + rdt_last_cmd_puts("Kernel mode not available\n"); + ret =3D -EINVAL; + goto out_unlock; + } + if (resctrl_kcfg.kmode_cur !=3D kmodes[i].val) { + kmode =3D resctrl_kcfg.kmode_cur; + resctrl_kcfg.kmode_cur =3D kmodes[i].val; + if (resctrl_kcfg.k_rdtgrp) { + ret =3D rdtgroup_config_kmode(resctrl_kcfg.k_rdtgrp, true); + if (ret) { + /* Revert to the previous mode. */ + resctrl_kcfg.kmode_cur =3D kmode; + rdt_last_cmd_puts("Kernel mode change failed\n"); + } + } + goto out_unlock; + } + } + + rdt_last_cmd_puts("Unknown or unsupported kernel mode\n"); + ret =3D -EINVAL; + +out_unlock: + mutex_unlock(&rdtgroup_mutex); + return ret ?: nbytes; +} + void *rdt_kn_parent_priv(struct kernfs_node *kn) { /* @@ -1922,9 +2020,10 @@ static struct rftype res_common_files[] =3D { }, { .name =3D "kernel_mode", - .mode =3D 0444, + .mode =3D 0644, .kf_ops =3D &rdtgroup_kf_single_ops, .seq_show =3D resctrl_kernel_mode_show, + .write =3D resctrl_kernel_mode_write, .fflags =3D RFTYPE_TOP_INFO, }, { --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012004.outbound.protection.outlook.com [52.101.43.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3AB473822AF; Thu, 12 Mar 2026 20:39:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347944; cv=fail; b=hqPfPmEQmcpO+Hg8+vZkLPr40ivlFQpVMLBe/kahW4Kb27FCyHao1aW4mco7NzuhsLwujQha4TMFFEBaqmDZ8rpHIE9g6L6mRc5GibRuGk9hcO89EYyeeZCn6aMczwpjl/Z97SWVA+RsHVM6iNbVd24+9oKR/zhVR8DCKgUhABs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347944; c=relaxed/simple; bh=Ux+/ENdW5epDfCwmpwh85Uw0mlitG79ai1aMY+V3Yyo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=FqiCwltrhD+a9gdiEWvqE7Ofi3Mr0Axw5iWbXV3o5Nyk47RFOn7B8yB4cPmpNsds8cfIAVgecIM2Ioec1mpgZA5xCr2WFleRww4Y5gjNTZAJZNtRkMZS4uWC70a4LInJh9csQmwrCHFkTD5rpICjL6Xru5tRy9h1lOw5gYZKBSE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=pfqoucA4; arc=fail smtp.client-ip=52.101.43.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="pfqoucA4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jsr3H/40YD1CuP3uOB/rZlSE8/aOgskXx/HnevgL+Ag/peWNVT/zOhWFFEFTRrLs9kxkWgdqkoHbjJWlfra8GbbFoOVU7aJPFkwVLRyWn0D6saINFhcG+wbIrPq90rjIlKddUr+uEf5MDUdTUlkc0V+tUXD3rAhe/+czEp4tfmhwyTm5kxfeuODH/KVRyOCL56N2AmCzCxkQsGS1wceMYPepkd9sdnW7GDiao7Rbirhx8ZQcDBzaAo53muq1/Flmtbpmgawx8AhEk6b50yhGnLjGZ4+EMP4A2xkRJtyZDXq29Ist8DtOgwXadygvL3P9DHBMC6nEJoGl9EXNMuK4dA== 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=K/o4UtSqy4a9K5/cc3YyiKHRba7rQ4dLJ4OR9vyJxYg=; b=MIfvx/igB8JVFWN0vTle+GDuR4dNq01hQ9V49fDJqWprOmTQ6AyWUYE2K5dTQtG02FY8IHghK3it0CZ2cXq/+c51UqJ8cP/9vN8Ke0aYDzZPeG56MPls9jKIvMhQf2ML6zV8L04GrvoGimBipwNSBxnJ50BA7p4bk+Q4B6o3lVyXHu/O3LlF8rIdTV8w0qEZaoMLCaB87deodFyfaSuNepf/hpnwIBX1vxhKBa/fJELhrp8/GjAEUCKOyZocP9lFvuqSzPDzxzOAu63xObl5WkA/hHEZh2DDAFf6oM0cPiLOFUwk9SMa/Ka6xwlAaw86J0KiSrmaNxeDOTbhRMn9Iw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K/o4UtSqy4a9K5/cc3YyiKHRba7rQ4dLJ4OR9vyJxYg=; b=pfqoucA4qiK2V6YDz4cVLgzHVuBauabgK6QLe6sCTOloK2n2HWxlLS5ZH9OuW/1eTYJTFzYqX3HgIGdIeKv2tEs1vUzhzAJh42ancTY/xV4wCqvrhfJZv24B7LN8/PgcxSrtNO3A3vF7v79BAonZ1qkSwQ2ubQ4tzEMWh36GRB8= Received: from BY3PR05CA0024.namprd05.prod.outlook.com (2603:10b6:a03:254::29) by SA1PR12MB9471.namprd12.prod.outlook.com (2603:10b6:806:458::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.6; Thu, 12 Mar 2026 20:38:58 +0000 Received: from SJ5PEPF000001D1.namprd05.prod.outlook.com (2603:10b6:a03:254:cafe::b0) by BY3PR05CA0024.outlook.office365.com (2603:10b6:a03:254::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.16 via Frontend Transport; Thu, 12 Mar 2026 20:38:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D1.mail.protection.outlook.com (10.167.242.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:38:58 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:38:56 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 12/16] fs/resctrl: Add info/kernel_mode_assignment to show kernel-mode rdtgroup Date: Thu, 12 Mar 2026 15:36:57 -0500 Message-ID: <77003a6c87581b23f293c6f75188ebe140c7c022.1773347820.git.babu.moger@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D1:EE_|SA1PR12MB9471:EE_ X-MS-Office365-Filtering-Correlation-Id: 669c1af4-f2cb-4065-4927-08de80776304 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|82310400026|376014|7416014|22082099003|18002099003|56012099003|13003099007; X-Microsoft-Antispam-Message-Info: cNJ2VrchP/raMpvw5Qg+Hk7RUKBFtcfgjlujc/cMpYMI2N6R5Wfs8bC3+/3U6HYqwkj8tmustDc5RwwTyJbX62GykaurikVABCN1veVEFpwVwk0VzMBXTZaju8xWqz6elYhvGBqSaDon/sgOjCKY1OSqU1fzHr2HBXXxD/UWm4V62NB5O/j6jIdghYt9qcJckupT4C5iOz7SCNzfmZP6YeCsxQJV8/CXtjZpe/PBzLGFbR3jZQAdNpL1zA9EuVOE4OHTlmmg3Gz8076DeiL02bKftPIaaNMOzj3pggN6W3I3eB9R6pDgXKoFjG3eEyfa+5M/w/PUo+uP3Ljg81IdyfjCe8ftSjzEMdgnonq9AzXV4rQEPE6DluFv5f0XTRPDVz34qPcGSubtDjUaiHsqFkuLf1fiIzlp3IU9ziH2Um4A3RdVP3JswNvHQWRGVm9zJrluk3krMmj0ytNoWZghlMKXmcQ5BGugBTKdj0Qx2Bgcc/+6TWoiUodbifTTqxmVoTnruIw+lk1FKr9N4mSGqbF/z8G1xpThAYpoXaBzxR5C3E5bsHIVe7cCf0qt7QwrW9x5rBCv4zJoZC8xgpDziGOHAFbunx5xkjamkokaV9rJhPYOjvPnarqs7NJMc8S5MdfWTqwMF6Co34bCmgxHjFJq5E/BV/MEUOiE9qoPIJ+v8cTaNA5VfQTwMo9QqoQ2+kS0UlK1SfzyGzA8ohKIuhsS5Ur1p9r2F42Fr3J29FiXz05RnZo3Ix12p2Z7FKMBxN3EGAMCBWT/em1IDgOgnw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(7416014)(22082099003)(18002099003)(56012099003)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WN0S1ai3SSTY3CTloIE0N3FPiGQV5FiuxIAHB0SELXndnsPLjTst1HwQrPqPu/bvdhY1LISkAkZUamBgVwXDx8iM/oAYC/dqUS11Kt2TXZ6MD+BQ8bxTqMgAV0+FKyHgU9zG/56O820xY+UG1BsMd6t6IshggiS+vao5DNcK2Elm0+3TTGY3wgrwS1IW6geQ/eXKh6m5KJtefw/f3E4nhfFmwq9QVhOJ94t3Y519CD2hPvsr+MV6Rl92mGcUl9K/i0TwnAfumBcpyZ8zbhhmKaggDof5kIOcnEt77yVS/t1XJuycWvE5LoYq9o+6AnkysV+GGFRSgT/Vm2M8ZtJ4G8xnwA0PdAw4TN5tvIZaf0fHjVjm5v55BfZgD+kqw1lCDdMpRc/OD22mgz39MBib2drm1/u9yEC+G6Beg5YiNr619G9/ic0m/4/BYaQaBzkK X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:38:58.2537 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 669c1af4-f2cb-4065-4927-08de80776304 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D1.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9471 Content-Type: text/plain; charset="utf-8" Add the interface info/kernel_mode_assignment file to show the rdtgroup enabled for kernel mode (e.g. PLZA). The assigned rdtgroup list is printed in following format: "//" Format for specific type of groups: * Default CTRL_MON group: "//" * Non-default CTRL_MON group: "//" * Child MON group of default CTRL_MON group: "//" * Child MON group of non-default CTRL_MON group: "//" Signed-off-by: Babu Moger --- v2: New patch to handle PLZA interfaces with /sys/fs/resctrl/info/ director= y. https://lore.kernel.org/lkml/2ab556af-095b-422b-9396-f845c6fd0342@intel= .com/ --- fs/resctrl/rdtgroup.c | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index 6cd928fabaa2..c2d6d1995dff 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -1117,6 +1117,45 @@ static ssize_t resctrl_kernel_mode_write(struct kern= fs_open_file *of, return ret ?: nbytes; } =20 +/** + * resctrl_kernel_mode_assignment_show() - Show rdtgroup assigned to kerne= l mode + * @of: kernfs file handle. + * @s: seq_file to write to. + * @v: unused. + * + * Prints the rdtgroup (resctrl_kcfg.k_rdtgrp) used for kernel work when a + * kernel mode is active (e.g. PLZA). + * Format: "CTRL_MON/MON/\n" + * "//" for default CTRL_MON, + * "ctrl_name//" for a CTRL_MON group, + * "/mon_name/" for a MON group under default, + * "ctrl_name/mon_name/" otherwise. + * + * Prints "Kmode is not configured" if no rdtgroup is assigned. + */ +static int resctrl_kernel_mode_assignment_show(struct kernfs_open_file *of, + struct seq_file *s, void *v) +{ + mutex_lock(&rdtgroup_mutex); + if (!resctrl_kcfg.k_rdtgrp) { + seq_puts(s, "Kmode is not configured"); + } else if (resctrl_kcfg.k_rdtgrp =3D=3D &rdtgroup_default) { + seq_puts(s, "//"); + } else if (resctrl_kcfg.k_rdtgrp->type =3D=3D RDTCTRL_GROUP) { + seq_printf(s, "%s//", rdt_kn_name(resctrl_kcfg.k_rdtgrp->kn)); + } else if (resctrl_kcfg.k_rdtgrp->type =3D=3D RDTMON_GROUP) { + if (resctrl_kcfg.k_rdtgrp->mon.parent =3D=3D &rdtgroup_default) + seq_printf(s, "/%s/", rdt_kn_name(resctrl_kcfg.k_rdtgrp->kn)); + else + seq_printf(s, "%s/%s/", + rdt_kn_name(resctrl_kcfg.k_rdtgrp->mon.parent->kn), + rdt_kn_name(resctrl_kcfg.k_rdtgrp->kn)); + } + seq_puts(s, "\n"); + mutex_unlock(&rdtgroup_mutex); + return 0; +} + void *rdt_kn_parent_priv(struct kernfs_node *kn) { /* @@ -2026,6 +2065,13 @@ static struct rftype res_common_files[] =3D { .write =3D resctrl_kernel_mode_write, .fflags =3D RFTYPE_TOP_INFO, }, + { + .name =3D "kernel_mode_assignment", + .mode =3D 0444, + .kf_ops =3D &rdtgroup_kf_single_ops, + .seq_show =3D resctrl_kernel_mode_assignment_show, + .fflags =3D RFTYPE_TOP_INFO, + }, { .name =3D "mbm_assign_on_mkdir", .mode =3D 0644, --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013070.outbound.protection.outlook.com [40.107.201.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 717973815C8; Thu, 12 Mar 2026 20:39:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.70 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347955; cv=fail; b=ck6+UtYfLRdawBzUvFhCES8eDbxZksqb2XjzIukTf0nYrCA3DOPpIakMp1GVbSSffH1MrBDf4G2lZ3rwvYsaq3hnJdyjgNSppd8FhUmBHftAa0SzSPQDRWuGr08gLNlCou4K6YpemDDO/eISHHV6EghX6958AxW0uiGYhOCutoo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347955; c=relaxed/simple; bh=3TXPqGLH9Zn/JJSKcY+FcPEf32QkfiUV8qllZw2SqHY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EaoT5snE/yWGoHzfaTkFJcOcPVxBErVDEqKUDOrmGhBpGcAZroEs5DHFCCT7xdGcnFO9i56q5s2TucI1L6etq6+CSc+X7kfgkIi9FepLl86goKL2HgcbUh8NmzANcWrkPJRsrlE6bUj4WEkwztuvjw3krmU+KzsciffCO9zr42w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=rLJT8ryF; arc=fail smtp.client-ip=40.107.201.70 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="rLJT8ryF" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IAwnKx+/Re/6PTYDO1b0hEPC5V1N73JLSBRYFdx1DKQMuOrN+tiOpwbgOqm4dbK+YbwEEFqDBerSxjw6+Xbbm8MX17I3YzVFZTg7VleFRdWxA7dDi+cKwzPtlvQRnXgSxwi+/NsXpOx307jj6HCLAeMxhtRspeSjzSht+77AoJYfaR8SOsDuS3smdNz0DUTmOZzmOswv2N+P2TC81y7DbIS0kZuRmfEmxQjxc1kT0fehI94RSob48fkAjvovSp2CcB0sxmxDOQWKnkEUN1+lTtprOyBAb869+k0NPibcpJLdDvJ2636nEfQwaFXUzF2amW4ut5PkR7jH1IRBc3LTnA== 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=U7K9UVqiyRhAph9qkyuWelvqCrz7HraGUGEf+6LQy7o=; b=me4SMUfjIuZqtqE6symoHX4t3UMwqutSAKOOg6f3yEbCLCXF1yJ7S+39OQu90TR6V7iex/B4hilct5zOuXRXYEjVSfKksAneaG/tvAKXj2TUI+wSpF6lLtwUbqokuSc4PLazwp3hhHZVVh+uN4UQ5sQ2UeNkOBSyk2GnWZJuBcWmG/+lAnFTAqHGxHFN7EwmIzGo6OgGiwoeFXVzF2AAKvlaFSrOTZ8tPORf5/RKRp/qVRI8wqD4kBnyaU0leGqflSe0azb303wqn2hFrErf1pD/fQnBODUBnwZDuZcmh7t42BgU/9D+qAm6hwYV3f2goAgxJ05BPRhdux6m/yk6+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=U7K9UVqiyRhAph9qkyuWelvqCrz7HraGUGEf+6LQy7o=; b=rLJT8ryFex0btsg/qV+ByekGAdADfYtFqVbjmqk22HaM6gPb45MCt2pzOtXX2/QNYQ512m9Hckgr+rAu0tFK5Oaj3ncG1fHSYNRwNzvmWOstI0pTzX0YAphCOSq1S1KbLG/x7pVvJpDxR0uoYKMmLBbodUoQ7kPQtFJraZRLg58= Received: from BY3PR05CA0052.namprd05.prod.outlook.com (2603:10b6:a03:39b::27) by CYXPR12MB9338.namprd12.prod.outlook.com (2603:10b6:930:e5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.13; Thu, 12 Mar 2026 20:39:06 +0000 Received: from SJ5PEPF000001D2.namprd05.prod.outlook.com (2603:10b6:a03:39b:cafe::bd) by BY3PR05CA0052.outlook.office365.com (2603:10b6:a03:39b::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.8 via Frontend Transport; Thu, 12 Mar 2026 20:39:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D2.mail.protection.outlook.com (10.167.242.54) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:39:06 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:39:04 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 13/16] fs/resctrl: Add write interface for kernel_mode_assignment Date: Thu, 12 Mar 2026 15:36:58 -0500 Message-ID: <78de0d6f1f00a44ae99318cf8458fe9b2238c80c.1773347820.git.babu.moger@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D2:EE_|CYXPR12MB9338:EE_ X-MS-Office365-Filtering-Correlation-Id: c45d870f-df3b-4eef-d19c-08de807767ef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700016|1800799024|13003099007|7142099003|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: xMZ6pzcuKAyxI/4SQMKHz0fwsw1sckqGGFlTNEoInfUw+p/0e+xoFtFzT1rJZjgA3JTFqIHn/S0lvFee2gjGxITMBPDt6qaheF9GvAEhwx6u2ZNVAIL+05+vX1h/gRlX9tlcsx/Lkb17Qq38+UweCuK2FWygRQmq2FbWgNVSgBOYhtERQFvMB8DpUszVxEzEpGYZdkRSqbH2YMppqPihA0YH9O4P1LLV96qDbjQcvuL2xHsaAxIKJJsd0FOW0wwbUr1uu4qG/C06jn/G89erycmmA0QAb4MOx5+dG3RGW7F6fhGPx3KBImHK8FUcofBBGX8vxzDAblluppx2+SbDWVJFvqZrhQ0l9pXt73iJneNxH5sskiT+S9gB/B3gGsgsnBQR5JVUjDB3BsY+eprxC+ZiGdU+8uP2FZODz7DepLptXE7XlXZXU2Lm3LuebNhN7lETnD8lkZ5/1mgxyEBtt81epTh7pz8RX8TV1dqVUsbyjcLJ3//6lqVn2HcXKp0UjmXLlRZPJByzMb0+kTyFPFr9G/Ra/HC/1c3fGSiyKRDbsklVUv3ZonuK6qNiU/DBeCRyyFKjdbMud5tTyFuj7eOkcDMuqCCl4PE8uaCz/IyI1xwFN3Qv48oTzB2SuAA1MQiRFrKU7fCUEE9DSJs232s525iUu8xyu233CbsEeVfQmPcO2NscXHlYd+NSUp17u7tqsHPxHgN4fXolbC2KmXlbZZmxBqrTn20FZdzSKktIXHGeo2X1ARabnXudXZExWGzvC8g2dabJGcrcvpFW2Q== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700016)(1800799024)(13003099007)(7142099003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DSAzVF8PfOtwD7AQvU/e9gIrTY7n2e5gL9+R+U5bKP8isWUaR3peQtuXf4YzouVh/lw7xpgNACEI7pKChifcXLdpS7YWvP8so8xURHLpgqUUiYSEj84iu3VoiDg05EZ2yavCbwshWWCjIKLmNkjalEwok2k+dtXLIJgiFKJCbMNgwmAm3exPH2DNCG8d8UTY3wPHcKNdru2ARisIK31XS+TCOM2DKP6cxUEyk/WxYSG4HlGPQbCkppO+5/eY9G95KoZftSOug9toNmDDBEV5jglMaaPwfPAEDUQNsv9pFooj3PENNxdnQeCLIXTvxWe/VVEdfvjZgBQny9LfWJt+wncr3XFnufUsA7C9juNeaXuj0q+Av0/5RYlHMklggGyBxYMJNjDd4uSsTAEn8CVFA7AuwmvyS4EPlK31H/1iO/qp9LuSuy8gcOEZ/HN+Po5v X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:39:06.5325 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c45d870f-df3b-4eef-d19c-08de807767ef X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D2.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9338 Content-Type: text/plain; charset="utf-8" Allow enabling kernel mode assignment (PLZA) for resctrl groups via the kernel_mode_assignment sysfs file. Add a kmode flag to struct rdtgroup to track the state, enforce that only one group has PLZA at a time, and clear kmode when groups are removed or during rmdir_all_sub teardown. Signed-off-by: Babu Moger --- v2: New patch to handle PLZA interfaces with /sys/fs/resctrl/info/ director= y. https://lore.kernel.org/lkml/2ab556af-095b-422b-9396-f845c6fd0342@intel= .com/ --- Documentation/filesystems/resctrl.rst | 35 ++++++ fs/resctrl/rdtgroup.c | 148 +++++++++++++++++++++++++- 2 files changed, 182 insertions(+), 1 deletion(-) diff --git a/Documentation/filesystems/resctrl.rst b/Documentation/filesyst= ems/resctrl.rst index 2107dd4b3649..2b4beedd7207 100644 --- a/Documentation/filesystems/resctrl.rst +++ b/Documentation/filesystems/resctrl.rst @@ -548,6 +548,41 @@ conveyed in the error returns from file operations. E.= g. - "global_assign_ctrl_assign_mon": One resource group (CLOSID and RMID) is assigned for all kernel work. =20 +"kernel_mode_assignment": + In the top level of the "info" directory, "kernel_mode_assignment" shows + and (when a global-assign kernel mode is active) sets which resctrl group + is used for kernel mode. It is only relevant when "kernel_mode" is not + "inherit_ctrl_and_mon". + + Reading the file shows the currently assigned group in the form + "CTRL_MON/MON/" with a newline:: + + # cat info/kernel_mode_assignment + // + + Possible read formats: + + - "//": Default CTRL_MON group is assigned. + - "ctrl_name//": A CTRL_MON group named "ctrl_name" is assigned. + - "/mon_name/": A MON group named "mon_name" under the default CTRL_MON + group is assigned. + - "ctrl_name/mon_name/": A MON group named "mon_name" under the CTRL_MON + group "ctrl_name" is assigned. + - "Kmode is not configured": No group is assigned for kernel mode. + + Writing assigns a group for kernel mode. The write is only allowed when + the current kernel mode is not "inherit_ctrl_and_mon". Input format is + one or more lines, each of the form "CTRL_MON/MON/" (same as the read + format). Examples:: + + # echo "//" > info/kernel_mode_assignment + # echo "mydir//" > info/kernel_mode_assignment + # echo "mydir/mon1/" > info/kernel_mode_assignment + + An empty write (e.g. ``echo >> info/kernel_mode_assignment``) clears the + assignment. Only one group can be assigned at a time. Pseudo-locked + groups cannot be assigned. Errors are reported in "info/last_cmd_status". + Resource alloc and monitor groups =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D =20 diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index c2d6d1995dff..23e610d59111 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -1156,6 +1156,137 @@ static int resctrl_kernel_mode_assignment_show(stru= ct kernfs_open_file *of, return 0; } =20 +/** + * rdtgroup_find_grp_by_name() - Find an rdtgroup by type and parent/child= names + * @rtype: RDTCTRL_GROUP or RDTMON_GROUP. + * @p_grp: Parent CTRL_MON group name, or "" for the default group. + * @c_grp: Child MON group name (only used when rtype is RDTMON_GROUP). + * + * Return: The rdtgroup, or NULL if not found. + */ +static struct rdtgroup *rdtgroup_find_grp_by_name(enum rdt_group_type rtyp= e, + char *p_grp, char *c_grp) +{ + struct rdtgroup *rdtg, *crg; + + if (rtype =3D=3D RDTCTRL_GROUP && *p_grp =3D=3D '\0') { + return &rdtgroup_default; + } else if (rtype =3D=3D RDTCTRL_GROUP) { + list_for_each_entry(rdtg, &rdt_all_groups, rdtgroup_list) + if (rdtg->type =3D=3D RDTCTRL_GROUP && !strcmp(p_grp, rdtg->kn->name)) + return rdtg; + } else if (rtype =3D=3D RDTMON_GROUP) { + list_for_each_entry(rdtg, &rdt_all_groups, rdtgroup_list) { + if (rdtg->type =3D=3D RDTCTRL_GROUP && !strcmp(p_grp, rdtg->kn->name)) { + list_for_each_entry(crg, &rdtg->mon.crdtgrp_list, + mon.crdtgrp_list) { + if (!strcmp(c_grp, crg->kn->name)) + return crg; + } + } + } + } + + return NULL; +} + +/** + * resctrl_kernel_mode_assignment_write() - Set rdtgroup for kernel mode v= ia info file + * @of: kernfs file handle. + * @buf: Input: "CTRL_MON/MON/" per line (e.g. "//" for default, + * "ctrl1//" or "ctrl1/mon1/"); empty string clears the assignment. + * @nbytes: Length of buf. + * @off: File offset (unused). + * + * Only valid when kernel mode is not inherit_ctrl_and_mon. Empty write cl= ears + * the current assignment. Parses lines as "parent/child/"; empty child me= ans + * CTRL_MON group. Errors are reported in last_cmd_status. + * + * Return: nbytes on success, or -EINVAL with last_cmd_status set on error. + */ +static ssize_t resctrl_kernel_mode_assignment_write(struct kernfs_open_fil= e *of, + char *buf, size_t nbytes, loff_t off) +{ + struct rdtgroup *rdtgrp; + char *token, *cmon_grp, *mon_grp; + enum rdt_group_type rtype; + int ret =3D 0; + + if (nbytes =3D=3D 0 || buf[nbytes - 1] !=3D '\n') + return -EINVAL; + buf[nbytes - 1] =3D '\0'; + buf =3D strim(buf); + + mutex_lock(&rdtgroup_mutex); + rdt_last_cmd_clear(); + + if (resctrl_kcfg.kmode_cur & INHERIT_CTRL_AND_MON) { + rdt_last_cmd_puts("Cannot change kmode in inherit_ctrl_and_mon\n"); + ret =3D -EINVAL; + goto out_unlock; + } + + /* + * Group can be deleted from Kmode by empty write: e.g. + * "echo >> /sys/fs/resctrl/info/kernel_mode_assignment" + */ + if (*buf =3D=3D '\0') { + if (resctrl_kcfg.k_rdtgrp) { + ret =3D rdtgroup_config_kmode(resctrl_kcfg.k_rdtgrp, false); + if (ret) + rdt_last_cmd_printf("Kernel mode disable failed on group %s\n", + rdt_kn_name(resctrl_kcfg.k_rdtgrp->kn)); + } + goto out_unlock; + } + + /* Only one group can be assigned for kernel mode at a time. */ + if (resctrl_kcfg.k_rdtgrp) { + rdt_last_cmd_printf("Kernel mode already configured on group %s\n", + rdt_kn_name(resctrl_kcfg.k_rdtgrp->kn)); + ret =3D -EINVAL; + goto out_unlock; + } + + while ((token =3D strsep(&buf, "\n")) !=3D NULL) { + /* + * Each line has the format "//". + * Extract the CTRL_MON group name. + */ + cmon_grp =3D strsep(&token, "/"); + + /* + * Extract the MON_GROUP. + * strsep returns empty string for contiguous delimiters. + * Empty mon_grp here means it is a RDTCTRL_GROUP. + */ + mon_grp =3D strsep(&token, "/"); + + if (*mon_grp =3D=3D '\0') + rtype =3D RDTCTRL_GROUP; + else + rtype =3D RDTMON_GROUP; + + rdtgrp =3D rdtgroup_find_grp_by_name(rtype, cmon_grp, mon_grp); + + if (!rdtgrp) { + rdt_last_cmd_puts("Not a valid resctrl group\n"); + ret =3D -EINVAL; + goto out_unlock; + } + + if (!rdtgrp->kmode) { + ret =3D rdtgroup_config_kmode(rdtgrp, true); + if (ret) + break; + } + } + +out_unlock: + mutex_unlock(&rdtgroup_mutex); + return ret ?: nbytes; +} + void *rdt_kn_parent_priv(struct kernfs_node *kn) { /* @@ -2067,9 +2198,10 @@ static struct rftype res_common_files[] =3D { }, { .name =3D "kernel_mode_assignment", - .mode =3D 0444, + .mode =3D 0644, .kf_ops =3D &rdtgroup_kf_single_ops, .seq_show =3D resctrl_kernel_mode_assignment_show, + .write =3D resctrl_kernel_mode_assignment_write, .fflags =3D RFTYPE_TOP_INFO, }, { @@ -3248,6 +3380,10 @@ static void rmdir_all_sub(void) rdt_move_group_tasks(NULL, &rdtgroup_default, NULL); =20 list_for_each_entry_safe(rdtgrp, tmp, &rdt_all_groups, rdtgroup_list) { + /* Disable Kmode if configured */ + if (rdtgrp->kmode) + rdtgroup_config_kmode(rdtgrp, false); + /* Free any child rmids */ free_all_child_rdtgrp(rdtgrp); =20 @@ -3358,6 +3494,8 @@ static void resctrl_fs_teardown(void) mon_put_kn_priv(); rdt_pseudo_lock_release(); rdtgroup_default.mode =3D RDT_MODE_SHAREABLE; + resctrl_kcfg.k_rdtgrp =3D NULL; + resctrl_kcfg.kmode_cur =3D INHERIT_CTRL_AND_MON; closid_exit(); schemata_list_destroy(); rdtgroup_destroy_root(); @@ -4156,6 +4294,10 @@ static int rdtgroup_rmdir_mon(struct rdtgroup *rdtgr= p, cpumask_var_t tmpmask) u32 closid, rmid; int cpu; =20 + /* Disable Kmode if configured */ + if (rdtgrp->kmode) + rdtgroup_config_kmode(rdtgrp, false); + /* Give any tasks back to the parent group */ rdt_move_group_tasks(rdtgrp, prdtgrp, tmpmask); =20 @@ -4206,6 +4348,10 @@ static int rdtgroup_rmdir_ctrl(struct rdtgroup *rdtg= rp, cpumask_var_t tmpmask) u32 closid, rmid; int cpu; =20 + /* Disable Kmode if configured */ + if (rdtgrp->kmode) + rdtgroup_config_kmode(rdtgrp, false); + /* Give any tasks back to the default group */ rdt_move_group_tasks(rdtgrp, &rdtgroup_default, tmpmask); =20 --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013040.outbound.protection.outlook.com [40.93.196.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8551537DE88; Thu, 12 Mar 2026 20:39:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347965; cv=fail; b=FGvp7Lgzfiyg655oET4QOL8xIk0HkLWCexT/AF+gSdBcmkZ+bFt783SZEKxnbTcJFCoBFdhC2CjVYBJikX6IPc+7ZlsPZeXsB6PxfXGsVff6mDRal1Ci7BQavojT8C+F8JROBePmSAmYIsoe+9/EZ8PARy2pr0ShRPq3RuHXuh0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347965; c=relaxed/simple; bh=yvtWXScegmXC80B4UzEVP2ppK7P6DlS4XTp4M2+ot/w=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=V5tDp7jFWhIeYQHxccGiLq4FDR65e5taPJfTBwgqeDMHNGn8WZDMRqmQsIu0BR5l2WCFWLG70Wi9tBrFu3F1uhuV+hsEdWkrNGXP412CyLMiHngbuU8ogZr3haFu7dFE5EeFZm0VAnX5Sy7ifG0hqhVlQOsFwSB5pCUKHx5Io2c= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=DA6xeygb; arc=fail smtp.client-ip=40.93.196.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="DA6xeygb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cJvtppbGaHR7sgEgz0zguiwtM4vlh7+UXVkwXXZY5BEZsUal1DfVSWynM//eBd9bC7eUb/yR9mXeLhP5GPo+0j6PkgaO0WrSemZUzsTRpggR967Y2WOJ18Yex+nJxrH7Q96pXA0nsZOSeLjeRo5XjjRqZBdBCbcXjphYkYlno/eZf+j2S1aLqY/5Zs2cdgDkzkzHzbjhYoRaDbFCvBGl81cKoQH9hF1gvabTGE+zjdx+V7m8/lAWTmloCatsVQ0iKczIoqwLVTT9xD3vT3kMU4lJYtvAiiTz8wtlHl282upa4ZyGZjz7dLn+877c8ZfdtScJTKsxq6zttyOgH0Hzgw== 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=DHIY+UgSAwrUxNAT+DrY3bGGc18TjffqKt2fxTSKoWY=; b=KzAsRzt5dT+p4X2fGrdEIEy8WwURCY0nG1BNi/z0hc3rEgm08J7HSkElhtfaMNixs6+Ta3rbaSGoqVKO2OPobeGcQFiVnx3JSznqPbF6VPjqrJ96+BgQUYFprjEL2LeScz9Asl8DHFe3Q8ZBa9LcRo6iiJol/meDPJpi6WSHTUiWzt78nX7FWetc/ryhFkRN6sXk/x5YSFKHcSV+ofE8YZrT2F/wtFTI4mxJslxgxsopfbeELHWwgQiUWYPaZxRP71wKYo6fhXkqEFsYE/upGft6XYhO7RLCqxg0fOqkk2mGSoEN4z9eRw7LsS30vJTyvHQi0mtxvJj2WN54InK7WQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DHIY+UgSAwrUxNAT+DrY3bGGc18TjffqKt2fxTSKoWY=; b=DA6xeygbaxAUIPJnLilMDnNgfbW03qA4mpahBFllvXzr/gcKR0K+ivCS8p8ZHPICyBPhAJhyFCDelLr8GxK7S9mxc25pWBMR9NTpJ494zRno1b3OQ5rsLyX/tp7Xvpk/9iKT1CGgclnvfFPEazBI7kBsooTuL+R3tYA39VpB+aE= Received: from SJ0PR13CA0144.namprd13.prod.outlook.com (2603:10b6:a03:2c6::29) by DS5PPF5A66AFD1C.namprd12.prod.outlook.com (2603:10b6:f:fc00::64d) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar 2026 20:39:15 +0000 Received: from SJ5PEPF000001D1.namprd05.prod.outlook.com (2603:10b6:a03:2c6:cafe::23) by SJ0PR13CA0144.outlook.office365.com (2603:10b6:a03:2c6::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.8 via Frontend Transport; Thu, 12 Mar 2026 20:39:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D1.mail.protection.outlook.com (10.167.242.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:39:14 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:39:12 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 14/16] fs/resctrl: Update kmode configuration when cpu_mask changes Date: Thu, 12 Mar 2026 15:36:59 -0500 Message-ID: <0dc7a082a161c988bf75b125754e8461f4aef0ea.1773347820.git.babu.moger@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D1:EE_|DS5PPF5A66AFD1C:EE_ X-MS-Office365-Filtering-Correlation-Id: 69866f8a-8e4a-49b8-256e-08de80776cf7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|7416014|36860700016|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 6IE/ZclM/GbYqRdX3THE6UDJPvveJxioN5ZJjejRTdDX540/fgwAEHrM09qCUZ87Fnss1b64lxhpe1ZIGKH2MskHMN4ENEN/4Zz4dq+rlbF6eOyARckV9ZDphaoOuAQ0fmp5ita4mTTbG358GvaykBp9HKoeNGsNHPDh4iJQG2fWResQiEUW1hHDFexO+qhZuLPyRkX14xVpgU5QGRL5K1rz2i6uczBGGPZXXpixeja+AHrp6rb5yrD1uFEOijqsS8a+B8z222Knx0RZUao88ggKxcS7/6FtWUs5qLujwytp8A+kKkIf3OdBQu7+ZjrwdyZWVEEL1wtjcExOov4szN1QVP76l9Rb+KFgS2jf/GSod9q4DS7nJfscSgDsN1E2TynKZPqLWU46+wa2dHx8Qkveb7jMKP5e5k/oescb4sh4WeyVqcuGRUJpbYa7JqUcKwNDPGHA/1EiX7jYWODz15taCqyAs6uQCoT2GTkWyZTZTTvs+WCBA6OMd99Jn/Xp68z9LinZ6b/p2xzVMUPDuRto5/u9SObsW5z96lZRcrbpsiwB6Ox4bMVc6113gpX7h5T1M5Cp9E5GJfiW4+8Q4DX9diZbKI5ofjAnz5gTjBCJ7mDOG3s4MdHTujJQTwCbLASKHQnH6Iy43Fd+RYaeMhhcMyf2CYoHRFfz3weHIfshy2ua52R53H9lkYZFtEYwwnjr0lgnDMWvnY15ORO+C4mW43E0Sphjpwzm9ApmfFckd2LIk7okSrU8L5/iJxjoUBtl7hgGX94DphTVL7bIrw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(7416014)(36860700016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: qHY8uiShNPftDfa0CgjUfkNWjr3UQykeO2+C2rGjuFOsaelD79liKeJ+yRSfMFPblzSTn+viY2zrwdA/fhLkWPCpZaDYDsFjSQq8XnP9W5tzUuA50azQJkVKD9yWXZcQcfyxcePpHQSjLOLqJGlPYvCjjxPJZODdKbzEFg7IoiwEJaHRdVZg8K/ztrxlxPfSwR9vfY5yx+saHQrRq2OYo92gwAy/QgnQK+/6fVjuYCLO0zkc4bE9w4Vv0UTXClFpY1FDjn9VATVAnFcdTbhRkPJN7xFjvNYDAHaoXRHxt3z95TWK0UI0NjjCtJM3NQgg0IK60P1KloP6AglqPy9PImTnDeG/4UMARJDpcIQaSNGgetSBdnCQOR3f0hR0b0jIk3PXeC55XtrY+uNjbS+KodDE5GeE6TefZdCAeXwPkDv5evRNKu+cgIi1aVEmkb16 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:39:14.9425 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 69866f8a-8e4a-49b8-256e-08de80776cf7 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D1.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF5A66AFD1C Content-Type: text/plain; charset="utf-8" When kernel mode (e.g. PLZA) is active for a resctrl group, per-CPU state must stay in sync with the group's cpu_mask. If the user changes the cpus file, we must enable kmode on newly added CPUs and disable it on CPUs that left the group. Add cpus_write_kmode(), which calls cpus_ctrl_write_kmode() for CTRL_MON groups and cpus_mon_write_kmode() for MON groups. Signed-off-by: Babu Moger --- v2: Fixed few typos in commit message. Added separate functions to handle kmode configuration for CTRL_MON and= MON groups. --- fs/resctrl/rdtgroup.c | 149 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 148 insertions(+), 1 deletion(-) diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index 23e610d59111..31479893633a 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -456,6 +456,150 @@ static void cpumask_rdtgrp_clear(struct rdtgroup *r, = struct cpumask *m) cpumask_and(&crgrp->cpu_mask, &r->cpu_mask, &crgrp->cpu_mask); } =20 +/** + * cpus_mon_write_kmode() - Update per-CPU kmode when a MON group's cpu_ma= sk changes + * @rdtgrp: The MON group whose cpu_mask is being updated. + * @newmask: The new CPU mask requested by the user. + * @tmpmask: Temporary mask for computing CPU set differences. + * + * When CPUs are dropped from the group, disables kmode on those CPUs and + * returns them to the parent. When CPUs are added, removes them from sibl= ing + * MON groups and enables kmode on them. Caller must hold rdtgroup_mutex. + * + * Return: 0 on success, or -EINVAL if newmask contains CPUs outside the p= arent. + */ +static int cpus_mon_write_kmode(struct rdtgroup *rdtgrp, cpumask_var_t new= mask, + cpumask_var_t tmpmask) +{ + struct rdtgroup *prgrp =3D rdtgrp->mon.parent, *crgrp; + struct list_head *head; + + /* Check whether cpus belong to parent ctrl group */ + cpumask_andnot(tmpmask, newmask, &prgrp->cpu_mask); + if (!cpumask_empty(tmpmask)) { + rdt_last_cmd_puts("Can only add CPUs to mongroup that belong to parent\n= "); + return -EINVAL; + } + + /* Check whether cpus are dropped from this group */ + cpumask_andnot(tmpmask, &rdtgrp->cpu_mask, newmask); + if (!cpumask_empty(tmpmask)) { + /* Give any dropped cpus to parent rdtgroup */ + cpumask_or(&prgrp->cpu_mask, &prgrp->cpu_mask, tmpmask); + + /* Disable kmode on the dropped CPUs */ + resctrl_arch_set_kmode(tmpmask, &resctrl_kcfg, prgrp->closid, + rdtgrp->mon.rmid, false); + } + + /* + * If we added cpus, remove them from previous group that owned them + * and enable kmode on added CPUs. + */ + cpumask_andnot(tmpmask, newmask, &rdtgrp->cpu_mask); + if (!cpumask_empty(tmpmask)) { + head =3D &prgrp->mon.crdtgrp_list; + list_for_each_entry(crgrp, head, mon.crdtgrp_list) { + if (crgrp =3D=3D rdtgrp) + continue; + cpumask_andnot(&crgrp->cpu_mask, &crgrp->cpu_mask, tmpmask); + } + resctrl_arch_set_kmode(tmpmask, &resctrl_kcfg, prgrp->closid, + rdtgrp->mon.rmid, true); + } + + /* Done pushing/pulling - update this group with new mask */ + cpumask_copy(&rdtgrp->cpu_mask, newmask); + + return 0; +} + +/** + * cpus_ctrl_write_kmode() - Update per-CPU kmode when a CTRL group's cpu_= mask changes + * @rdtgrp: The CTRL_MON group whose cpu_mask is being updated. + * @newmask: The new CPU mask requested by the user. + * @tmpmask: Temporary mask for computing CPU set differences. + * @tmpmask1: Second temporary mask (e.g. for cpumask_rdtgrp_clear). + * + * When CPUs are dropped from the group, disables kmode on those CPUs (can= not + * drop from default group). When CPUs are added, clears them from child g= roups + * that owned them and enables kmode on them. Updates this group's cpu_mas= k and + * intersects child MON group masks with the new parent mask. Caller must = hold + * rdtgroup_mutex. + * + * Return: 0 on success, or -EINVAL if dropping CPUs from the default grou= p. + */ +static int cpus_ctrl_write_kmode(struct rdtgroup *rdtgrp, cpumask_var_t ne= wmask, + cpumask_var_t tmpmask, cpumask_var_t tmpmask1) +{ + struct rdtgroup *crgrp; + struct list_head *head; + + /* Check whether cpus are dropped from this group */ + cpumask_andnot(tmpmask, &rdtgrp->cpu_mask, newmask); + if (!cpumask_empty(tmpmask)) { + /* Can't drop from default group */ + if (rdtgrp =3D=3D &rdtgroup_default) { + rdt_last_cmd_puts("Can't drop CPUs from default group\n"); + return -EINVAL; + } + /* Disable kmode on the dropped CPUs */ + resctrl_arch_set_kmode(tmpmask, &resctrl_kcfg, rdtgrp->closid, + rdtgrp->mon.rmid, false); + } + + /* + * If we added cpus, remove them from child groups that owned them + * previously. + */ + cpumask_andnot(tmpmask, newmask, &rdtgrp->cpu_mask); + if (!cpumask_empty(tmpmask)) { + cpumask_rdtgrp_clear(rdtgrp, tmpmask1); + /* Enable kmode on the added CPUs */ + resctrl_arch_set_kmode(tmpmask, &resctrl_kcfg, rdtgrp->closid, + rdtgrp->mon.rmid, true); + } + + /* Done pushing/pulling - update this group with new mask */ + cpumask_copy(&rdtgrp->cpu_mask, newmask); + + /* Clear child mon group masks since there is a new parent mask now */ + head =3D &rdtgrp->mon.crdtgrp_list; + list_for_each_entry(crgrp, head, mon.crdtgrp_list) { + cpumask_and(tmpmask, &rdtgrp->cpu_mask, &crgrp->cpu_mask); + } + + return 0; +} + +/** + * cpus_write_kmode() - Update per-CPU kmode for a group's new cpu_mask + * @rdtgrp: The group (CTRL_MON or MON) whose cpu_mask is being updated. + * @newmask: The new CPU mask requested by the user. + * @tmpmask: Temporary mask for computing CPU set differences. + * @tmpmask1: Second temporary mask (only used for CTRL_MON groups). + * + * Dispatches to cpus_ctrl_write_kmode() or cpus_mon_write_kmode() based on + * group type. Used when the group has kmode enabled and the user writes to + * the cpus file. + * + * Return: 0 on success, or -EINVAL on error. + */ +static int cpus_write_kmode(struct rdtgroup *rdtgrp, cpumask_var_t newmask, + cpumask_var_t tmpmask, cpumask_var_t tmpmask1) +{ + int ret; + + if (rdtgrp->type =3D=3D RDTCTRL_GROUP) + ret =3D cpus_ctrl_write_kmode(rdtgrp, newmask, tmpmask, tmpmask1); + else if (rdtgrp->type =3D=3D RDTMON_GROUP) + ret =3D cpus_mon_write_kmode(rdtgrp, newmask, tmpmask); + else + ret =3D -EINVAL; + + return ret; +} + static int cpus_ctrl_write(struct rdtgroup *rdtgrp, cpumask_var_t newmask, cpumask_var_t tmpmask, cpumask_var_t tmpmask1) { @@ -566,7 +710,10 @@ static ssize_t rdtgroup_cpus_write(struct kernfs_open_= file *of, goto unlock; } =20 - if (rdtgrp->type =3D=3D RDTCTRL_GROUP) + /* Group has kernel mode: update per-CPU kmode state for new mask. */ + if (rdtgrp->kmode) + ret =3D cpus_write_kmode(rdtgrp, newmask, tmpmask, tmpmask1); + else if (rdtgrp->type =3D=3D RDTCTRL_GROUP) ret =3D cpus_ctrl_write(rdtgrp, newmask, tmpmask, tmpmask1); else if (rdtgrp->type =3D=3D RDTMON_GROUP) ret =3D cpus_mon_write(rdtgrp, newmask, tmpmask); --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010013.outbound.protection.outlook.com [52.101.46.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B5E663815F4; Thu, 12 Mar 2026 20:39:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347973; cv=fail; b=O/NLhArTqnW3+dGOkuzKMpO4ymv52ZwDDQ96gu590NqAn0LZmK5XtKhezIhoFyKcSbECJD03O8T7DSctGWFeEOFuuSQLVKIfpPj/+CYbp6kZqKtuQj7ybm1ErfD3DYE9fbXqPrcO92i/QEsZxapKsCTdbIDAjVn2KJ7g6G3zCeo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347973; c=relaxed/simple; bh=B7w/CpKWe48VT+mL9VYzc6mGRs9LLekTo6FEYcNYCZE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Mqrp3Glh/nYSgvVOeOmm35+ce7Q/rQSsRimOyGKgLJ+ZXpUK8fJS+OtOfGCCXXRPivDADagwx9Ey3QOSgOZqo8iEnk2iZr6ZXTO/3JXj9s9TK0ugf5/kPWtfqYhaCBb3W0z0bwObydr/V9QdwLrJgPu4AW1Nkyi+lIl460QqQdw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=T3p8zp7s; arc=fail smtp.client-ip=52.101.46.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="T3p8zp7s" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vvC3T1W0yJf3kaGlfW1FGi/uSGHTzUkFc3fZYDSzUrWvQerAnkB8eJAgds2jhbKJzWVG1vzfb1RDm7Hlea+YVwkE0ADUjgh9PHwmYq7KmXUrgFMHCWl8KnPDESHU35hk9YRblyBvXw0O/GTeQwy42SXFkcBTxGQ4Jk/Z7i52MlwVA0hoBEDIeKgSS35zhUqdfBpnN1BhnJ+3mKz2AdfbDP4g17xlw0GbiRFOA5Ut8YrzRjMGGVL70gWI/MOisZYPP3CJO5pxLpjZ49DD/Wyetz3QZxgFZZnQ4mPj9QbE+z/Typsqeo476ipxn8WVWb7Am8BCQWpV1mhEo/IZjpdWzg== 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=8P8dK58culFkqcTx6EMXHzqv2VJzB1nStPi4Ms6/PHY=; b=UagXelOydXzeAiu7aAoZ9OqRV1FdCKRTGbUX4CaVLgbbxOf1DcRp/fxVBOo7Tq+jJGTHd3yU+i9PqInAgtztaOYwjRfN2lneqn9JofBzpoKYVGD0ZyxJY3JFhtZ0Q8t3zJ9PWM6VNJR3h06sho5a682LzOFGZWF+J+F0zvBHzXoaRJn/s8Va/PR18aUQ3MAGD/NiNG5dCGtcGBGco6jViRgEQaLT4cOKFj0uP5DoDYjOOG4iYy5lWBI0FGSAIWgaEm5vxOltct1SXLYvsQvKw2YMPQlCD9bYIEP0GSNW1pnF+g1ImaiQV/Kk1Ddd3nb663iCZtVbFvxUope9xDxXKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8P8dK58culFkqcTx6EMXHzqv2VJzB1nStPi4Ms6/PHY=; b=T3p8zp7s60Srjq6E9giH9umyQHNV4Wu1rn/r/WwLh0ol3T4SwAOgZ7T+5qBAkUK07MGqbL4zRTXEmDIRZy45gzQn9S0IUWTu7GCEW9VSssBhrYp54fXHKB9LPq7RO/GWG4/vCt8eEB0SW+a5r58eakcEhXQjN8m2RjQ13/LEzpE= Received: from SJ0PR05CA0192.namprd05.prod.outlook.com (2603:10b6:a03:330::17) by PH8PR12MB6793.namprd12.prod.outlook.com (2603:10b6:510:1c4::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.4; Thu, 12 Mar 2026 20:39:22 +0000 Received: from SJ5PEPF000001D7.namprd05.prod.outlook.com (2603:10b6:a03:330:cafe::9) by SJ0PR05CA0192.outlook.office365.com (2603:10b6:a03:330::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.8 via Frontend Transport; Thu, 12 Mar 2026 20:39:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D7.mail.protection.outlook.com (10.167.242.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:39:22 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:39:20 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 15/16] x86/resctrl: Refactor show_rdt_tasks() to support PLZA tasks Date: Thu, 12 Mar 2026 15:37:00 -0500 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D7:EE_|PH8PR12MB6793:EE_ X-MS-Office365-Filtering-Correlation-Id: 503ae0ca-e835-48fd-8846-08de80777179 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700016|1800799024|82310400026|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: LGuwqHmsf0VS0E2XMFi2I4BXH98sUVIOeQ2sSrhLtPOwK9VpacXCOCz0jEpb6WgHVbs4dcbbTJEuWvT6+ZFfBGTydRtw8mzX+SVx2NY9J/xBKNKT6IGcWU3NfidrnQKgxf2ap65pPOfu0l9Wz8hwGxRLLtDeFhea+AFn3XZ+jkyBiphGPtUlY87G4L6cG92WGLf5E5ThrQHOxoiKoirpyjhjzaqfak5mTJgFMQbx/czgrHs6DN8nOt5kW1OUgoHvV7+nqjoW7fmt8yOaAVZjIPBXgTlKPK8RBrPaFX71CNas68s8dlBECfIh371Pu5koy3/kvM5xpz6HdnGHIt73FhPX9foYf3HJlw5CiRt847SjczfASrMT9trRtrOBDd3XOE7smNaJxkrQVhEYJPQEvz/ECt0Q+8b6rX1b/PXa6P2B9PHxX8Vmj+DJLi1EwkdtVJeXCvgFHCfFOA3E4o+8B6Un8INX05zP/4DcGZKvEzFe4kGi/09CNET1OMEQfncQuOtbLmJvpxq7ydDT9+xy898vaapCIaBkM1NmfF3ASjq0Wz1ImorJ9sLC9Gq9hrA1ZMj/311stsD1Z27NtrHGkaQolorQ7VmEW9BLKKbJsj7wWB1Rce/3qh1Zp56nN4nPs0PrTCuk7T9KEqZLNXUvADP6Nbj+vPpcUwJmsv8FC17ZUwBJy1X9mxNj5Npx8+ufy/wd4U0PL1/SVfZi7aHz5V4Ig9/pGBgB0EjpXFmD8u0MAu4tefB7+amaz/y/Ec/+hd3KTLrDnwXrGnHUfg+1PA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700016)(1800799024)(82310400026)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dFaUYgECpcy5mK/tWIe909QR+S7dI9Rw4e/qsQ60aBq7Hhtg9epW9hEpATOKCs7afR1cPNrTG4qQ+y3pv1/giEnlZKx77JVYPXFs9X6mF2yFAPArGOQSRLyE3qHJ+C3KL2bgWAbZJQNufEaQbPFHc0VtE7TcBFtIY1rzc33H0Sr/NbFIdsYhG6c1F57Vd4cAR+KmoqMYrGMoQqWaYohmvr/j9PpWhErncMaLA0ubU/V4Bq8K1agifnN8OtalVotEd5rX7VRxcKpVVfEwJJBmpoQuWEcOFd3e+00yt4QkM9AHvb3k95NEgEr+jb2A1spwm5cBWoNsHLSQziyADzAkGyZW3ZuHyv7F6O2gKdI8C3ENfSmY36GsLDsbfoxA2f03xu5y5ZklT2WZwheLv0fk9VXPIjiNgeG0xfJ4p9kWeTLm+USlJuS8u55fXjmkwycg X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:39:22.5087 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 503ae0ca-e835-48fd-8846-08de80777179 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D7.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6793 Content-Type: text/plain; charset="utf-8" Refactor show_rdt_tasks() to use a new rdt_task_match() helper that checks t->kmode when kmode (e.g. PLZA) is enabled for a group, falling back to CLOSID/RMID matching otherwise. This ensures correct task display for PLZA-enabled groups. Signed-off-by: Babu Moger --- v2: Added more code comments for clarity. --- fs/resctrl/rdtgroup.c | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index 31479893633a..b41e681f6922 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -966,6 +966,34 @@ static ssize_t rdtgroup_tasks_write(struct kernfs_open= _file *of, return ret ?: nbytes; } =20 +/** + * rdt_task_match() - Decide if a task belongs to an rdtgroup for display + * @t: Task to check. + * @r: Rdtgroup (for CLOSID/RMID matching when not kmode). + * @kmode: True if @r has kernel mode (e.g. PLZA) enabled. + * + * When @kmode is true, matches tasks that have kernel mode set (they are + * associated with this group via PLZA). Otherwise matches by CLOSID or RM= ID. + * + * Return: true if @t should be shown as belonging to @r. + */ +static inline bool rdt_task_match(struct task_struct *t, + struct rdtgroup *r, bool kmode) +{ + if (kmode) + return t->kmode; + + return is_closid_match(t, r) || is_rmid_match(t, r); +} + +/** + * show_rdt_tasks() - List task PIDs that belong to the rdtgroup + * @r: Rdtgroup whose tasks to list. + * @s: seq_file to write PIDs to. + * + * Uses rdt_task_match() so that when the group has kernel mode (e.g. PLZA) + * enabled, tasks are matched by t->kmode; otherwise by CLOSID/RMID. + */ static void show_rdt_tasks(struct rdtgroup *r, struct seq_file *s) { struct task_struct *p, *t; @@ -973,11 +1001,12 @@ static void show_rdt_tasks(struct rdtgroup *r, struc= t seq_file *s) =20 rcu_read_lock(); for_each_process_thread(p, t) { - if (is_closid_match(t, r) || is_rmid_match(t, r)) { - pid =3D task_pid_vnr(t); - if (pid) - seq_printf(s, "%d\n", pid); - } + if (!rdt_task_match(t, r, r->kmode)) + continue; + + pid =3D task_pid_vnr(t); + if (pid) + seq_printf(s, "%d\n", pid); } rcu_read_unlock(); } --=20 2.43.0 From nobody Tue Apr 7 14:36:37 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012010.outbound.protection.outlook.com [52.101.43.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DD34238F635; Thu, 12 Mar 2026 20:39:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347979; cv=fail; b=LnQyqv8LO8nNRJ2F48C0Ey9tN/vGxV08BGwsCJYkgUS6ndwjUtViSyJzuIntpD2/CKyAEI42evqqHcdJHaIM3j8cYEV2hxv0dTJAdnp1Njqr2rwc92Tx++vyb5zTu9mkGbKG5qOKD5DEt+JaKopk5AHo2sYjZelBGPQrpKj1pKI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773347979; c=relaxed/simple; bh=tOGw8Tn50vbd+rMdlntrVzkX09iDG1Hr8j1WyZWA1g0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YwjTEz7y9m2NLggV5KJh/sGiMBuIsxeqOQnPRXFncCh7TZpRU300nMDvDPZpugV5MqBWbLZyBb9V7o9Pd0x+00iGWB0/OsQgVCdt1VKOyJ4bFBQIJWXeksF5tMs5ixtG7ud4OuQTjlu4mNlyyJfWv8n1EsEM1xt02m+a3bu08ZI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=yA6yoSy/; arc=fail smtp.client-ip=52.101.43.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="yA6yoSy/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=d4VdImZHlWQ/UPoB+v82xNxIcPHnpyXhb0DEXR4BrRv/jKnOgYLLsyb9pKYAQEO4qR6g6YkDM0UCEQG8cWatFv3b1AkmBi0EPv4qDPEYVRwE7QsQnIhKW0rQyFPFCcUeNUqwhZcgJHtguPHV4fWG4Y5Y+9CpEy0AkfUXv1WputdEtIl+hRVTnY7sSvMq1Fxs0g8UTm15W2ZvwFVo3gsDrSehkFuzr6/8bJWpFx3oRkvksKOuHe4X1P50BibuDrfOSKie9sgChKF0pQYX0OWiWlrHVMhLspSOsF2SOTw+qxtwW6mlTCo08QdGzCs5DCgUYCE4VL/KMPARVWUbYjjFUQ== 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=8Zki1nSKWAsipsfU1RtyxFlO0b0CQaDiFM0NkK+8ZIM=; b=YobGXOg06XqnxwX9WBa0qF5n+5iu8V3Ud6F84DigYrEfyG0FMnAVURhwyUJoAeQIl2oUvGwo1qz5VPf5sqzFJu0i3Iu3oFb5Fy18Fa9iSOj/kep9nqlMix0sQsguUsT7QfvKTm6QL5AbNz2AZncHxKNKsR5HlocLcT+lQJ2olV9BKlWMaCzLLaEDuoHiIMEPK2hzX57hQiNCPoz5OOPs97RbHD9GwKPrXzELsmp/lEJFT8nhDMafgLeYkqJV55Zb1vq3CO3lq1AEbJQIwbIzSoI2b7Pv55ZE/BSyOf4UgJ2RxzE68WJIVM8VhaYt3C1H0hhbkXpVPuNcs1KyAF5usQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lwn.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8Zki1nSKWAsipsfU1RtyxFlO0b0CQaDiFM0NkK+8ZIM=; b=yA6yoSy/IqVG5CrG+LYSmPvpPQZb8H34P0LYVaeuEN1enwHV3PPiZVI3UYYWJocQyoQXdOvegjM5FW8dTlzcwwXJxj4BkF9WIWK0zL5CN5hzzNXgEJ1CVLiElTexmMTKaVMNBHghgrgjdZwUZpBKMe+pPSVPg1AD0PIwSLKMULQ= Received: from SJ0PR13CA0220.namprd13.prod.outlook.com (2603:10b6:a03:2c1::15) by DM4PR12MB5892.namprd12.prod.outlook.com (2603:10b6:8:68::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9700.11; Thu, 12 Mar 2026 20:39:31 +0000 Received: from SJ5PEPF000001D6.namprd05.prod.outlook.com (2603:10b6:a03:2c1:cafe::b2) by SJ0PR13CA0220.outlook.office365.com (2603:10b6:a03:2c1::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.15 via Frontend Transport; Thu, 12 Mar 2026 20:39:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by SJ5PEPF000001D6.mail.protection.outlook.com (10.167.242.58) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Thu, 12 Mar 2026 20:39:30 +0000 Received: from bmoger-ubuntu.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Mar 2026 15:39:28 -0500 From: Babu Moger To: , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v2 16/16] fs/resctrl: Add per-task kmode enable support via rdtgroup Date: Thu, 12 Mar 2026 15:37:01 -0500 Message-ID: <0e028deb53a81c1c516898fa688e194cd5d2f661.1773347820.git.babu.moger@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D6:EE_|DM4PR12MB5892:EE_ X-MS-Office365-Filtering-Correlation-Id: b17e3764-b4cc-4c6f-a423-08de80777647 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|82310400026|1800799024|7416014|376014|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: amCT+8Xq3pn0cswJ5ZWtltj61Sz/cKnhFpWjRpUIXo+qnuRinacO1+Ikyf4h1HFJ9eJR3LYt1OJnmszfPoCG1HpVoqcUMeRmmeyF+Gpvxb/yBpvkUfcwGOGGL3TjO3uERtGoRtvd02MOTLTJaJ6S3wjDNjFmS9PhdGGWG41XkhIkkFy4SwZbj9W3xNlpg/NHdptbbMRKmbyqoC8U60wk7eIVRlV0PobM6kZKT720RRfDiNagDUGYMOl3TgPTK0rVrJ/RSl0u3kKMcVqPbD3tXaHHQK9+87dAv5ACxUZSY1RLWIJEiAkOXn7OBQCyQt5Q9gRsrLD1LJd1ealurTFjdpeoWCp7zBzZ1xWuooeS8T7lPa/wHn7yISGAZQhMqnQ1adFGCivUMboq8+FDUSb4AfNMRHfNkfGp1LtWeTmaVlX+eW/S4eyrNsJ+bQcrHOW8V4X3keNiLoBUgpGUILIAUKziQVKW5vLrlIwDX0ur5lkscnEq4tgOtWpPrI2GeToSW88z9jGf8LoZHQXhvbQldgXmFVX62TRHee8rW47//N7+sAQ5xIK9TfWIZzDzvxccR3b8EoBrPXgG0UaqEgZENRYcxfS9PO1bKb8zoJE17IsQaVWsr3TBFn2EuwKIooUs3mWFM98SrwW6Swc7cjzw0ocoup5azHUtiOjmD4jRxldccqMNW3P78ELVao8YTtAzwZKY+Sk/TDMgbMYlpiWDXhhmUBX0Ctqxpv2yvpjnBw4kAx3Avxa+ODWYAmywCNP1SmzBmkWKUaUd2EUsAuwzWQ== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(82310400026)(1800799024)(7416014)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DX0O/a/1KElRnDicdxM0R/jpMkoDHV3oR6RKyTeMoqIViV9OxiLuOYe9UPRYHEWjNZVdF6/dItjiXrgFPttryunrKCVGGiCEq9+HFGTnGxuh/kHvjqGdlisNQ6S2KSWTKd9WFQS6qaDVioetCrrEWHwKMRz+zqU0gIWtCL2663ZxRmm0CC7CIuBy+pPHtzVu8qLummGy3jYhMV6H7g4IZJQFj2y5nqVeIUnjJoZnb9HIyyaXjUdI0bjXi4xlV2POf7KNRlSbiget03Sh5LsppgTkBhQA7AWNOEU8e0YTvCmSxFoSTZ2zjlcY0DdsDRkT9NjBfidRK5QWyTQfZIOMwLE4fTeCsrJoF+9HKIVm2M7rLoqB3wU8Sz8fv8B8lD0rSYKS7RSJddGfIR0E8kVKKwPV9DqXKG+wk1/0BG9Rg/mUwa5SCKY6jFiKeQlJyUqK X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2026 20:39:30.6237 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b17e3764-b4cc-4c6f-a423-08de80777647 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001D6.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5892 Content-Type: text/plain; charset="utf-8" Introduce support for enabling kmode on a per-task basis through the resctrl control-group interface. Add an architecture helper to set the kmode state in the task structure and extend the rdtgroup task handling path to apply kmode (e.g. PLZA) when associating a task with a CTRL_MON or MON group. Proper memory ordering is enforced to ensure that task closid and rmid updates are visible before determining whether the task is currently running. If the task is active on a CPU, the relevant MSRs are updated immediately; otherwise, PLZA state is programmed on the next context switch. Signed-off-by: Babu Moger --- v2: Few name changes to refer PLZA as kmode. --- arch/x86/include/asm/resctrl.h | 13 +++++ fs/resctrl/rdtgroup.c | 98 +++++++++++++++++++++++++++++++++- 2 files changed, 110 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h index ccfd95b98bac..f48d1279e33d 100644 --- a/arch/x86/include/asm/resctrl.h +++ b/arch/x86/include/asm/resctrl.h @@ -238,6 +238,19 @@ static inline void resctrl_arch_set_cpu_kmode(int cpu,= u32 closid, u32 rmid, u32 WRITE_ONCE(per_cpu(pqr_state.kmode_rmid, cpu), rmid); } =20 +/** + * resctrl_arch_set_task_kmode() - Set per-task kernel mode (e.g. PLZA) fl= ag + * @tsk: Task to update. + * @enable: 1 to enable kmode for this task; 0 to disable. + * + * When enabled, the task will use the group's CLOSID/RMID for kernel mode + * on context switch (see __resctrl_sched_in()). + */ +static inline void resctrl_arch_set_task_kmode(struct task_struct *tsk, u3= 2 enable) +{ + WRITE_ONCE(tsk->kmode, enable); +} + static inline void resctrl_arch_sched_in(struct task_struct *tsk) { if (static_branch_likely(&rdt_enable_key)) diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index b41e681f6922..74fc942e6a4e 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -827,6 +827,31 @@ static int __rdtgroup_move_task(struct task_struct *ts= k, return 0; } =20 +/** + * __rdtgroup_task_kmode() - Enable kernel mode (e.g. PLZA) for a single t= ask + * @tsk: Task to enable kmode for. + * @rdtgrp: Rdtgroup with kmode enabled (used for context; CLOSID/RMID app= lied on sched-in). + * + * Sets t->kmode so that the task uses the group's CLOSID/RMID on context + * switch. Memory ordering ensures the store is visible before we check if + * the task is current (and thus before any sched-in that may observe it). + * + * Return: 0. + */ +static int __rdtgroup_task_kmode(struct task_struct *tsk, struct rdtgroup = *rdtgrp) +{ + resctrl_arch_set_task_kmode(tsk, true); + + /* + * Order the task's kmode state stores above before the loads in + * task_curr(). This pairs with the full barrier between the + * rq->curr update and resctrl_arch_sched_in() during context switch. + */ + smp_mb(); + + return 0; +} + static bool is_closid_match(struct task_struct *t, struct rdtgroup *r) { return (resctrl_arch_alloc_capable() && (r->type =3D=3D RDTCTRL_GROUP) && @@ -916,6 +941,48 @@ static int rdtgroup_move_task(pid_t pid, struct rdtgro= up *rdtgrp, return ret; } =20 +/** + * rdtgroup_task_kmode() - Enable kernel mode for a task added to a kmode = group + * @pid: PID of the task (0 for current). + * @rdtgrp: Rdtgroup with kmode enabled. + * @of: kernfs file (for permission check). + * + * Called when a task is written to the "tasks" file of a group that has + * kernel mode enabled. Enables kmode for that task so it uses the group's + * CLOSID/RMID on context switch. If the task is currently running, MSRs a= re + * updated on next sched-in. + * + * Return: 0 on success, or -ESRCH/-EPERM on error. + */ +static int rdtgroup_task_kmode(pid_t pid, struct rdtgroup *rdtgrp, + struct kernfs_open_file *of) +{ + struct task_struct *tsk; + int ret; + + rcu_read_lock(); + if (pid) { + tsk =3D find_task_by_vpid(pid); + if (!tsk) { + rcu_read_unlock(); + rdt_last_cmd_printf("No task %d\n", pid); + return -ESRCH; + } + } else { + tsk =3D current; + } + + get_task_struct(tsk); + rcu_read_unlock(); + + ret =3D rdtgroup_task_write_permission(tsk, of); + if (!ret) + ret =3D __rdtgroup_task_kmode(tsk, rdtgrp); + + put_task_struct(tsk); + return ret; +} + static ssize_t rdtgroup_tasks_write(struct kernfs_open_file *of, char *buf, size_t nbytes, loff_t off) { @@ -953,7 +1020,11 @@ static ssize_t rdtgroup_tasks_write(struct kernfs_ope= n_file *of, break; } =20 - ret =3D rdtgroup_move_task(pid, rdtgrp, of); + /* Group has kmode: set task kmode; else move task CLOSID/RMID. */ + if (rdtgrp->kmode) + ret =3D rdtgroup_task_kmode(pid, rdtgrp, of); + else + ret =3D rdtgroup_move_task(pid, rdtgrp, of); if (ret) { rdt_last_cmd_printf("Error while processing task %d\n", pid); break; @@ -1011,6 +1082,28 @@ static void show_rdt_tasks(struct rdtgroup *r, struc= t seq_file *s) rcu_read_unlock(); } =20 +/** + * rdt_task_set_kmode() - Set or clear kmode for all tasks in the rdtgroup + * @r: Rdtgroup (must have r->kmode set for matching). + * @kmode: True to set t->kmode for each matching task; false to clear. + * + * Walks all tasks that belong to @r (via rdt_task_match) and updates their + * per-task kmode flag. Used when enabling or disabling kernel mode for the + * group so existing members get the new state. + */ +static void rdt_task_set_kmode(struct rdtgroup *r, bool kmode) +{ + struct task_struct *p, *t; + + rcu_read_lock(); + for_each_process_thread(p, t) { + if (!rdt_task_match(t, r, r->kmode)) + continue; + resctrl_arch_set_task_kmode(t, kmode); + } + rcu_read_unlock(); +} + static int rdtgroup_tasks_show(struct kernfs_open_file *of, struct seq_file *s, void *v) { @@ -1225,6 +1318,9 @@ static int rdtgroup_config_kmode(struct rdtgroup *rdt= grp, bool enable) =20 resctrl_arch_set_kmode(&rdtgrp->cpu_mask, &resctrl_kcfg, closid, rdtgrp->mon.rmid, enable); + + rdt_task_set_kmode(rdtgrp, enable); + rdtgrp->kmode =3D enable; if (enable) resctrl_kcfg.k_rdtgrp =3D rdtgrp; --=20 2.43.0