From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B43B660A2615 for ; Mon, 9 Nov 2026 21:30:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=C2R+5PBz; dkim=pass (2048-bit key, unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=gh5a2XlU DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type: Content-Transfer-Encoding:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Unsubscribe-Post: List-Owner; bh=mHHH96gtNOMMf/aQXG172DRpNbt1paOaJR3DXNGY5Lk=; b=C2R+5PBzx+cK0g yFz+Ub8/U4lYBe7RRtDtC2nzK2fhYHMQrHoRaXhX/BrinLvr2+1YGUCH6C114UrB+JTiy8Zwucx/W VRlx6G9BGhFyctk1neqWfdDGXmzRXSebju9NpxLQa1hGeZQEBsS4tWeN3kCdr7S7ri80ubaCvrRWm 3evFljF6/rGgawZ04TGTBXEjfkt8w6piIDGUkr+yaojur+1d+6KafU/vcgWxbl+0qJC2WlBC3Y4yT +dbLzlipFqx29RwImM41v2B6n8T4RRMLrIB0EKlodKTLgs8yNEo2+jyXfIse7nTHILRyEXW5fMeth djRgHc7lWaYlS5KOQcIA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xQWwB-00000001mDd-3UqN; Mon, 09 Nov 2026 21:29:59 +0000 Received: from mail-eastusazlp17011000f.outbound.protection.outlook.com ([2a01:111:f403:c100::f] helo=BL2PR02CU003.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xQWw6-00000001m8x-2klx for linux-arm-kernel@lists.infradead.org; Mon, 09 Nov 2026 21:29:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RFH7f8eEFRC5NU48WiNNdnWaVbsq4r/yQjcGVfvvrPyMbQeqdVITJi3UrGCel3zUkgh7IqR5btZFd9NxcsSK6VOC3TDILrHMPlin8FOIm+K/ACyCSG7QEszPFGJDwl8TJ3D+bg11uI0ylBGQNs9VZhxfrzrBM3F1HAanbl5mO72JSIhb1dULKgF03FG4eJtH6TE7c2tyMVJ8C2daIeSPvLqtmK2W/v0Oc2TrwaslV1B8XsbIbPLKcmy/tts3AJSNf0ECvkT98zSQtesO2kfHWocJj8wUZNl+tnq9E20h+12Z7fJGr/+V7QcDGyEOs7JFDCJqi+BRkj1+tzx3wNzL/A== 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=mHHH96gtNOMMf/aQXG172DRpNbt1paOaJR3DXNGY5Lk=; b=yHpbAMGxjYlu2P5BxrTQmuccJf2MQICGC06DpJjUrGyRVawbowHkUza7rKc5j6h9jKwlw9wvWj9G3vSlcsb7pJsxtF/GQXw6M6BmD0xZ281aN0qV4ujyUlK6Jk3luR2xATGBy8v6NpacfPsR/ggRvCFIz/Lp9EdFyzpYifeqFvEG1jbberG4wcyhpM+n0E5dv+0qCHy0WcSb3tksloQePPw7HFfa+x7i8hoSoBQfew2qE07P6L++MipxBxYm4d8XrFPcZMCPi3u3dM86T32Ca/yhmXICioAbmSoR0gBp7F3/Hb5xGFeh+ko54G764LvWjpxyxC+h362ltkzfwi7xaA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mHHH96gtNOMMf/aQXG172DRpNbt1paOaJR3DXNGY5Lk=; b=gh5a2XlUYzh4fwe237L+gD7lfKDCgLPgHIyKUOI4VZ6PiFoCskVuB61ogHmh46bCkHyaFpiOm6/8XqqXn4ybY6TrWf1NztBT15N5ee0ZfCoeCk4d43jFgr95Vxpv7rtjisWP81TmQbw3owO1VnFUWoFBSuUfAEDayRe/xEtLleQHQoJ+tzGP4+fw9WuyUhQqermajFPFMbgooeFKKnb2qMnoeTlIkku+5uSFEQP/w1/Sk98kEAztiffbrx9VJy/vEdhG41zZpEwS3D8eW1rGE/jyi2ecNMaqazVHOV54w5Slj9vDo7dU8NhORXiGmvcfDlsCmOBeVCRtKuPYGOG1/Q== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM4PR12MB5230.namprd12.prod.outlook.com (2603:10b6:5:399::11) by PH0PR12MB8031.namprd12.prod.outlook.com (2603:10b6:510:28e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.592.13; Mon, 9 Nov 2026 21:29:47 +0000 Received: from DM4PR12MB5230.namprd12.prod.outlook.com ([fe80::6e87:1bde:1853:3b73]) by DM4PR12MB5230.namprd12.prod.outlook.com ([fe80::6e87:1bde:1853:3b73%4]) with mapi id 15.21.0569.011; Mon, 9 Nov 2026 21:29:47 +0000 From: Fenghua Yu To: Reinette Chatre , Tony Luck , Ben Horgan , James Morse , Will Deacon , Dave Martin , Catalin Marinas , Shaopeng Tan , Chen Yu , Babu Moger , Drew Fustini , Vikram Sethi , Shanker Donthineni , Newton Liu , Richard Cheng Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Fenghua Yu Subject: [PATCH RFC v1 3/6] arm_mpam: resctrl: track MBW max hard-limit in config Date: Mon, 9 Nov 2026 13:29:34 -0800 Message-ID: <20261109212937.1409570-4-fenghuay@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261109212937.1409570-1-fenghuay@nvidia.com> References: <20261109212937.1409570-1-fenghuay@nvidia.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: BY3PR05CA0024.namprd05.prod.outlook.com (2603:10b6:a03:254::29) To DM4PR12MB5230.namprd12.prod.outlook.com (2603:10b6:5:399::11) X-Archived-By: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5230:EE_|PH0PR12MB8031:EE_ X-MS-Office365-Filtering-Correlation-Id: 7355d0ba-9243-454b-007b-08df3ea893d4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|23010399003|921020|11063799006|261021121427099003|261021123027099003|261009223027099003|261022105027099003|56012099006|261026140227099003|261026121527099003|261102123227099003|261028144727099003|18002099003|22082099003|10067099003|3023799007; X-Microsoft-Antispam-Message-Info: ZHqFLstZBGjlD1IxyYkwUySw1zhqL4NmdBDmJeYh7PrUzH2dl7Rv1t8w5eQLc2tCDUPYuEfujRUEyAXfc/lgZug6YxzPKW1hjnfhuqWZzr2cagDjH+tnTl+wWtdMcP7RU0G/x8IFojh0itQ69bbJY4sRiN2/O8r/iBoIwJWBYZAzE6Ege0lgfmufF/zFq4o27ggWnZPOv5FlO5a31mo+hSPf19Ix2JAqL+L39oTNoThgR1i5c0C+64QPyMbUGCHbaMCDVc6yR9/L6faAy28t+xA5yAnhWawIPvg4jxScvyfPbNNC6JaENAjaJlilQXPoFnjAsWoA1ogvoxejfXttDychiG09fTAjOof+qMU/6Lzy4te8DOY+4FCQdLV1q14F0xN0yciSUGkbda6kWSycGPYpwSO/i/3wPj5hUxLFkpALm7fwN2Ar+et1mgc4Pd5oQPXviQRqIGAZ3fzTmP3p/WDRqN4NBSohQeFVmbCfNAaczWjk1ZKL5u8MDx+A2nBc853gg19QwX13SJwNxArz0FLnOv3uCiQLpXf0EuMyPJ/eo8wVmHQZIDTDZPH/xPdB6zyPjjUS/s6gKOgY5HJrZPgakKkD6Ze4+fyV7bv995C8Mi5p2m6lb+p7m8F46dLZDg2UnOl0FHbYzQzAl2WBe3WFWhBm107IzDBsDMD9G6vaNBb+yD5M37BeguTTvESEHxIl6WdRc21SOfT3gQxl2Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5230.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(23010399003)(921020)(11063799006)(261021121427099003)(261021123027099003)(261009223027099003)(261022105027099003)(56012099006)(261026140227099003)(261026121527099003)(261102123227099003)(261028144727099003)(18002099003)(22082099003)(10067099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/QD3mKLmfqcthRvcx/kiW9jlgM2zGtQslFX2p685Gk0F68WU0iuN20r90Euv?= =?us-ascii?Q?CWlnRpKyrJ8SC6q45C+6KnVr5tZlPJ47GMKx0wWAwboX/nAYFTcaPuQdZFqh?= =?us-ascii?Q?InrgwODWE+69baDPCacTYf7Ipz2sR3D5YRK5QD/FOnXzszPlifo9kLERpxpi?= =?us-ascii?Q?nZW4N7tR2zyEZgqPglrUD1ehTYdShQrU9K7EqA7Oy9S/LGCP50vTZvX+8nit?= =?us-ascii?Q?eFbkhfq22/5NhnuwCq1hVsKWfalUtH4oqA0fBEy+tbI0sghM4jaU1sHicKmE?= =?us-ascii?Q?vdIOo8lTZbLbkRkyskQwdgc5gxu1xceXmOh2JB/6wJynboVrWKqbAzyMMIPo?= =?us-ascii?Q?FfX9tbFOCD8/7Bx4oXypilQEAZ1pfx3QKkVTuHceM6BjZ0nvVn1/B5KWauDx?= =?us-ascii?Q?udZC9Ix+SYI1s3aHv7uRs9mGRbiLPIsBQTo+0Ovsb92UYlVb97w2bIGjLy8Q?= =?us-ascii?Q?uS9ILcRR/yQouVRCoV40T/GHkoN06CNQpqYTWNBTWKhwdeFAYwf8OjNaoX2d?= =?us-ascii?Q?r4sMWHebN4/Y6cD2jzCqcBx3wGtGf/OVQDDdWuq6wKeGkL+Lh0rBNfXvWK5f?= =?us-ascii?Q?ulHENPdAF69rPI9dg2VCk01MYKC3hVv0IpqKOSDWl0qST0L+++Cj/GRVVuz3?= =?us-ascii?Q?r8h3C5w44snAtGLS7U2KFPWfX8gbfdS0dkx5kl34fqV5XHyRErSrk0ks3J6f?= =?us-ascii?Q?lzoU71nmfhdiSG5TPrPVfBb2JITwlBZcdGSTfaYHm9szLiHBTLHvuy0TtCqD?= =?us-ascii?Q?iY2x9RkVqf+OK7PUV+BXyT39GvgSQULByWQIiGBYA3LOcV7F/Lt0+bKfdy7V?= =?us-ascii?Q?sQ8+vNRw0lwr5AR9MjnbfeVRQKXYM3YABlX9VjcrhGTEb6UAtc25PTh/lJ7N?= =?us-ascii?Q?pGybqbVsqtCHY4ryq67PFoo+EJZMDEPFrd2eBcIuYAykymg26SKIQ+aBXKhC?= =?us-ascii?Q?FbgOB0YwAfmseJsR9npe18sKI3tw/WPjJVJDxr1XXxS1Cn/Ex19hqvY45GxM?= =?us-ascii?Q?lAa1dFFr+fisBnBJ5cYvmFreH2EI1W7oZjzKLrCvi5MQ/+vbt1fWvgjI9XEt?= =?us-ascii?Q?KEeCRhD6X1lFDv/A75WskfOxzTjW7R72rIjV9DC6PCQSBcMwHRct17nr6hAZ?= =?us-ascii?Q?gDOxAUJReUFNFEgueGN78TtPbKvx7yCeUEB+AwCLCXTcQLzK1qgvbZAVsDaS?= =?us-ascii?Q?j6qmcdwVTKZQv3kdgOHQoCsMAP3QqdK+3CnkLJizTggxMfj4qqaW4feRg1jx?= =?us-ascii?Q?+aYbOJ5e07rtzkpnKdpfCjtl6xICQKbicFnDpSxkfhHYINxc8TGoxf48iYbj?= =?us-ascii?Q?zAAQMg86Czw3PdJUGVoSqtDumaPczXN8AV9z91nm+RlhQwtoE3j8YzBj3ITV?= =?us-ascii?Q?nCNqs6vOh9SDMsqc9exQO4HOWBvcxaw9v/MDPmvK4B+kLNUhn/AwPbQ7oRjS?= =?us-ascii?Q?BNMMDXAc3RF4xvjs0Pvyi2ELoRtWitbcvPWr6zIriV0/E6D4V6YtgFr6zjzt?= =?us-ascii?Q?UNG6fcYMatI8VxE+qcE/zw0nERQD7KDV3chxv44UCsrmnh2Mq41tWoZf6lfv?= =?us-ascii?Q?2UY9hJHQIIU/MJFVRnS36tAvUuusglOlb79cDrhnHDE80AnpGMlQdED2hDtJ?= =?us-ascii?Q?UKZh3pfjvz/32r+XPwkDBxCe1gwZhhP9A6R71hdwFa+ZqduMC4bECyCB4ujr?= =?us-ascii?Q?tRts671tyg4tjEHqXTjvDsLChrQYkNCXNXQ7t/4kFO3FYGfTpRH8xJmA88Vm?= =?us-ascii?Q?9ThlPbSIgQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7355d0ba-9243-454b-007b-08df3ea893d4 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5230.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2026 21:29:46.6990 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: se5ziOe1Ub8n40Ode8ughw5Z+RPGMmjJo71zS7NF/SFCPvU/T6CulTxEFkKrkmM7ZmeAjWF81CzIMijigZuI6g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8031 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261109_132954_712163_2548BA93 X-CRM114-Status: GOOD ( 14.75 ) X-Spam-Score: -2.1 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" X-Spam-Status: No, score=-18.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 Once userspace sets MB_MAXHLM schemata, the driver must program the HARDLIM bit in MPAMCFG_MBW_MAX. Without tracking the per-domain hard- limit state in mpam_config, bandwidth reprogramming would ignore the schemata and leave hard limits unchanged in hardware. Add mbw_max_hardlim to mpam_config and set MPAMCFG_MBW_MAX bit 31 (HARDLIM) when reprogramming MBW_MAX on hardware that supports hard limiting. Signed-off-by: Fenghua Yu --- drivers/resctrl/mpam_devices.c | 27 ++++++++++++++++++++++++--- drivers/resctrl/mpam_internal.h | 1 + 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 1e56e8f3858e..7dee6617b134 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -1664,10 +1664,29 @@ static void mpam_reprogram_ris_partid(struct mpam_msc_ris *ris, u16 partid, } if (mpam_has_feature(mpam_feat_mbw_max, rprops)) { - if (mpam_has_feature(mpam_feat_mbw_max, cfg)) - mpam_write_partsel_reg(msc, MBW_MAX, cfg->mbw_max); - else + if (mpam_has_feature(mpam_feat_mbw_max, cfg) || + mpam_has_feature(mpam_feat_mbw_max_hardlim_rw, cfg)) { + u32 mbw_val; + + /* + * HARDLIM shares MPAMCFG_MBW_MAX with the bandwidth + * field. A hard-limit update does not program + * bandwidth: the shadow value is not live until an + * MB write, and reset leaves the register at + * MPAMCFG_MBW_MAX_MAX. Keep that programmed value. + */ + if (mpam_has_feature(mpam_feat_mbw_max, cfg)) + mbw_val = cfg->mbw_max; + else + mbw_val = MPAMCFG_MBW_MAX_MAX; + + if (mpam_has_feature(mpam_feat_mbw_max_hardlim_rw, cfg) && + cfg->mbw_max_hardlim) + mbw_val |= MPAMCFG_MBW_MAX_HARDLIM; + mpam_write_partsel_reg(msc, MBW_MAX, mbw_val); + } else { mpam_write_partsel_reg(msc, MBW_MAX, MPAMCFG_MBW_MAX_MAX); + } } if (mpam_has_feature(mpam_feat_mbw_prop, rprops)) @@ -2986,6 +3005,8 @@ static bool mpam_update_config(struct mpam_config *cfg, maybe_update_config(cfg, mpam_feat_cpor_part, newcfg, cpbm, has_changes); maybe_update_config(cfg, mpam_feat_mbw_part, newcfg, mbw_pbm, has_changes); maybe_update_config(cfg, mpam_feat_mbw_max, newcfg, mbw_max, has_changes); + maybe_update_config(cfg, mpam_feat_mbw_max_hardlim_rw, newcfg, + mbw_max_hardlim, has_changes); return has_changes; } diff --git a/drivers/resctrl/mpam_internal.h b/drivers/resctrl/mpam_internal.h index 6be32b2cb0ab..59d04cb663da 100644 --- a/drivers/resctrl/mpam_internal.h +++ b/drivers/resctrl/mpam_internal.h @@ -324,6 +324,7 @@ struct mpam_config { u32 cpbm; u32 mbw_pbm; u16 mbw_max; + bool mbw_max_hardlim; struct mpam_garbage garbage; }; -- 2.53.0