From patchwork Wed Jun 26 04:20:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 13712258 X-Patchwork-Delegate: mario.limonciello@amd.com Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2057.outbound.protection.outlook.com [40.107.92.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 2628F13AD31; Wed, 26 Jun 2024 04:21:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719375707; cv=fail; b=Bi9jWXlAgB7OyXgwoOe3Xwrsj66vYNE0nIGa/LhtCesZLRu8fFXGMkGz7XHe+DZYtYeqMIDJCT6I9BDMJ6Yk1hAk4/Ga5qRQKqnzPA2ur7jLGcKd/vpfkeuhxlftYorKdanIZqf6r0qfGhYzOCv0EqeXVpf6LCX8nsWr8ztj9+A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719375707; c=relaxed/simple; bh=Z3w4YXh8PHJXV1Y0W1YueaQGBOnHLuvfvHBVDdv+58g=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GLwKVN3ItpS2xxmbDPw25XBQFwF9v/8cL63+juW3DDCLk+uGGRDRo+SiCuV1N3180rzdFuZCzOJ8D9FIsICj0blDGTa1QOVqae2fcvSRkobdhyfW+jnS0CMe6cN9TiFt62gO1hSwnaDW5qXtNGmqQ3Uu6uOAIpJHVTaIHtEk88k= 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=yB1VZENQ; arc=fail smtp.client-ip=40.107.92.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="yB1VZENQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=byW7tLr6D379pHNqe472dy77AQip1j97W8dmt2M694wWruw8BUTFM/w7X1Cq1iwTwWQSsJB27IdwEWy8eNhdV1YDOxEVxaOdlCzYz/vz4sbKSZONn8HNJ3PTd/ZJD8PigQqPYFXAbA3vH1neYC3wQxhxRDnZ5j69VysMGqkeoe9NJfoQu4mLMXUBh/CFQEhI+aDbUSPBZHY7nAuz+78/p63liWxOwqJR3L386NTcLoave/Nq01X3wnoI/nmV7mr5WgyABO8DTlg6Rn+iMKDkmzolWXk+CVWM/yDAzCbjONa9nS5+CKYjImqhbShTjh3rmbyJkGrLFR9BWtbTCL/UfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RFpLf3Tx2LGabFVxEzIKK5KsCwoHTReCoflqSqS/0Kg=; b=F0KS7nJtaNeNyTc7Fi+70b3zZKek+LiYbjDjpjVsK2oedca6DFQnFwOsxnlULxY/Ti+g4dM82hHjhDMPGmsxK50edsNtLcEz594cnrJBYm6441m1e2/nFplIIp9RWhss0tirf47iDztw6icBmlCALa+XGbhMIEoITwnDhwllGGkm3fTQL8pSLmPt38oNifKOOyyztAa7eGJLrejof0neKNOv5iPE90e4YmnJ7FMEdp84ck8rVpJdWhyL04gRuprcAhU1QFDRm4diudK5phTHOrf7snM2LLZ0IXSGe53tzi2Z8gROmfLdEojgS3WNyEIyTN71+11OuOtbAd1fwhG4bw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=alien8.de 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=RFpLf3Tx2LGabFVxEzIKK5KsCwoHTReCoflqSqS/0Kg=; b=yB1VZENQUs8gtsPh1PPxUkRDxispl/6kyZTkXE/TU94uq/EYp5FwR3Kkn5t9apvLqU1gGEnI7FUEJ5ogdmLTA2wNTh4oi2Gka9rV2Kx3+rpOadA8Ek/IkObUWXCKd4hsy0UG8I4fYyuA6Bbv/+Zol56Ks3g511Y6R3Hy1j4TeT0= Received: from SA1P222CA0156.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c3::19) by SA0PR12MB7464.namprd12.prod.outlook.com (2603:10b6:806:24b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Wed, 26 Jun 2024 04:21:43 +0000 Received: from SN1PEPF000397B0.namprd05.prod.outlook.com (2603:10b6:806:3c3:cafe::3b) by SA1P222CA0156.outlook.office365.com (2603:10b6:806:3c3::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.22 via Frontend Transport; Wed, 26 Jun 2024 04:21:43 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SN1PEPF000397B0.mail.protection.outlook.com (10.167.248.54) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7677.15 via Frontend Transport; Wed, 26 Jun 2024 04:21:42 +0000 Received: from AUS-P9-MLIMONCI.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 25 Jun 2024 23:21:40 -0500 From: Mario Limonciello To: Borislav Petkov , "Gautham R . Shenoy" , Perry Yuan CC: Thomas Gleixner , Ingo Molnar , "Dave Hansen" , "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)" , "H . Peter Anvin" , Huang Rui , Mario Limonciello , "Rafael J . Wysocki" , Viresh Kumar , Nikolay Borisov , Peter Zijlstra , "open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)" , "open list:AMD PSTATE DRIVER" Subject: [PATCH 1/2] x86/cpu/amd: Clarify amd_get_highest_perf() Date: Tue, 25 Jun 2024 23:20:42 -0500 Message-ID: <20240626042043.2410-2-mario.limonciello@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240626042043.2410-1-mario.limonciello@amd.com> References: <20240626042043.2410-1-mario.limonciello@amd.com> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000397B0:EE_|SA0PR12MB7464:EE_ X-MS-Office365-Filtering-Correlation-Id: 6c3e4656-09b0-43f6-d307-08dc95977b77 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|1800799022|82310400024|36860700011|7416012|376012; X-Microsoft-Antispam-Message-Info: rbfNwuOFhoJKqiWSTVtiUrD1zkCOwa6XeUGw1hoycbMz9rKxZH0lbJbiujLRJUM5egsQiQTQ3l5iau04ZsT09MP5r/FZ1dlx3kdMnfeehQo4UXb0tD1MuzQHEgpVQLRMGL9jickZcoTtBL+M6x+ogRak0QnTJ6wNHNad8EwPjtZHtc5tI2S172hKv5/s4iV5BKof0IU7mBDv47paZ4HBPYGjexCsvQp7fAqzP9duD0vwa9FQzYMDu3l3FMt0/3g0a/XSHYH+jsEQ0mZdKm4M8VUnb6gNnIqlDf/V8qjivzxduZIfcHpzcz3TcXhjM8OrAYy1z1ySjjy1ptZPX7sCCwhev9p+MZFPIWMELsQrR9+rUT/ALRFBtInsORVCkDItJMNSFqpsE2Kt5yPTg1RWwiyGSMNXuTiH2JnqOzhHpYJpAca+MN9Cq9Weu9n3ma1t7aGSfT44QLUXvNdqP5LeLoZzFv2bZ3M4OPUFRORrcJ+pAvUlfn/SSeRTjQfGjuvzpn2yLAxhlrlOpQW4c4tvT52B+VYSPKG0vkvojrfrFF1IO2PZ2q9+HSyQafGeWg7CeSi8PkNY9wnNrV60tBCRlkRBoIesnK/DuxjVBCBGXfBFiP4VsZlHJX1b0JrLZ/Q3FDL1zxNektg0frOj35nsGtUmgtcmNXUBPaQNVuhT4gVnSpfWhl5G0kfantnmHdyOieI8PMZRPyVs6vcVI12qakCv63SW9BVCWQSPHUCzHdZ8ulAAMZpcptrkf3doXBMVK9I9u5h099rESI9qRVQpbtWHISUyEejoWn/989TBrfgXWcvrQoPpKVOt7bu2eCvWE3bBj5vgV/FbJpGUenyDDmDiKA3A6YeQgBYiBDjpCXaKMKiMAFVEL5k/Gp9j1byoobKHpr5LTuevhN6WF8Nbala3iKb1vyZLFZ/QnWRrwwFNaNcEf4wcaFE3TcuK+43ttTFTiNTCkAftmp1rbUFc7LR69XHTLGY/f+iqOPkplooa9JU9qcnApM0QFq9siqz13q+J/oHVo7M+8U7eQ5MdGqlm1um6icE/WuAuUYNk7zrUx2oZmslnd4GEuevaR99xDMKuyLM5cP/dbqCyo1PTgWgFs5ojbiX7idi1n8R922QAvek/xBxWBMbHSapd5ks/xBayQWvo9S9r1OLLkP5Q3PpLBYwL/eIsXfNQll3mK5yNrmpNN2RhE4/8by40L5CojbpRK0zvdTDEeR1mExXm+K5jZ1WZ93VtAjkmOE1UbL2Tnl6e2Wll7EDu17KivmqbC8CV7VJIJsBcjSCT6aZyp+nLxhykhPMmho71d7RxnFuWl3CAvwoLqRAbiJJ8ulJ7yPyB3L3c0N8DP4upiclvsscMwrdEOPEQgejsqiwvX88rtGQgZtithGemuRQJmcwKL8kvHCblKsiEappLyjOMa4h5ML57amBwcO1KdddpEUMQPJkAhjVYFpoNPwT5nk2s X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230038)(1800799022)(82310400024)(36860700011)(7416012)(376012);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jun 2024 04:21:42.2880 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6c3e4656-09b0-43f6-d307-08dc95977b77 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF000397B0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7464 Rather than parsing through families and models as an if/else, use cpu_feature_enabled() and switch/case. Add definitions aligned with the amd-pstate definition for performance levels. No intended functional changes. Signed-off-by: Mario Limonciello --- arch/x86/kernel/cpu/amd.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 44df3f11e731..8b730193d79e 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -29,6 +29,10 @@ #include "cpu.h" +#define CPPC_HIGHEST_PERF_MAX 255 +#define CPPC_HIGHEST_PERF_PERFORMANCE 196 +#define CPPC_HIGHEST_PERF_DEFAULT 166 + static inline int rdmsrl_amd_safe(unsigned msr, unsigned long long *p) { u32 gprs[8] = { 0 }; @@ -1194,15 +1198,27 @@ u32 amd_get_highest_perf(void) { struct cpuinfo_x86 *c = &boot_cpu_data; - if (c->x86 == 0x17 && ((c->x86_model >= 0x30 && c->x86_model < 0x40) || - (c->x86_model >= 0x70 && c->x86_model < 0x80))) - return 166; + if (cpu_feature_enabled(X86_FEATURE_ZEN2)) { + switch (c->x86_model) { + case 0x30 ... 0x40: + case 0x70 ... 0x80: + return CPPC_HIGHEST_PERF_DEFAULT; + default: + return CPPC_HIGHEST_PERF_MAX; + } + } - if (c->x86 == 0x19 && ((c->x86_model >= 0x20 && c->x86_model < 0x30) || - (c->x86_model >= 0x40 && c->x86_model < 0x70))) - return 166; + if (cpu_feature_enabled(X86_FEATURE_ZEN3)) { + switch (c->x86_model) { + case 0x20 ... 0x30: + case 0x40 ... 0x70: + return CPPC_HIGHEST_PERF_DEFAULT; + default: + return CPPC_HIGHEST_PERF_MAX; + } + } - return 255; + return CPPC_HIGHEST_PERF_MAX; } EXPORT_SYMBOL_GPL(amd_get_highest_perf); From patchwork Wed Jun 26 04:20:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 13712259 X-Patchwork-Delegate: mario.limonciello@amd.com Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2065.outbound.protection.outlook.com [40.107.237.65]) (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 09B4F13B28A; Wed, 26 Jun 2024 04:21:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719375708; cv=fail; b=kzG7TtJO92E1QRhHvyMfsHowf8jDBFYFs9whzWQJkx6oOLfmYO6VtyW5vojEtpgHhhFZ8KMcsPt+nC8Yu6/6EdhjAdQ+AbI1AJctx5ClgRtVGZsb/LgSMzbLrb1UkuNnLDb1/W5yGPFHFj/vwZbsnooto7NghmAQ1B0pZTU/gUE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719375708; c=relaxed/simple; bh=agYvsN2KUfDKuWm73gCHWynyQf/M119G28sFd85Dfws=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EQr4PkPBAjiPsHA+Ki3DECCPt+QipFf5KQ6NIzPj58W2TgV8fxombIZn7aZeZ7A14rkiNE46WVZqCUxkOPUnaaB52hZ1GAywLXYnjyqo/HDJY4iG6RJDbO8ovTaPp+20BRLPrY1Yir4xpcMO1OazlBqpmB9Am4tjFW2+AMN5ZcU= 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=QqKGjISo; arc=fail smtp.client-ip=40.107.237.65 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="QqKGjISo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ljNw3uyOQlYK91aUQoP5hJ92H+xIN039X+43FOBQjCY+XKbDAIhx/OskjqnUb6ZJZs4koBedquEKUR8dszQWznrbvfJosDW2tzjeVsKn0g4Y56H4EcXeCD8Ch4mLoaQmQP8xIYBU158pd675G3cEIHHL3ZAJJZoU4yMzU0vb43okQDHNoMNulmo3FVHl+DlVCT53tv7wG0c7FudxryYbwsGAZ1k6XUTtDyi6w1Hnokqqid7VoRmb1j+MWDYIWgtKM2z0k5omB3wovsgAtrFnRhtOhpjwTMzoqAE9wa8D4FQuy/ApKOkH7xdX8HFqPU8+Du5NT1wcOUi5Z4jSi+OuIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=j59IYbrIBn8o5Myze9Rvn6I5GfahjsKZEHdIDCYQPQg=; b=LwB9nYLP+KoqAFAexGhQwGWNMgOhZUj0Xt9QidOz1NLbrGiGBjehdoz+IvUvyTt5J+3tLvutlnQhPLutXfsqwH/K4dnx+ZGJAchdUeEkSGGjA8TGU7CWmCoq9ET6kGOQthXnlqwQhmNBO5aGMhQ21tTrhJi81VoJwefOtnyxkAgRlusijBNkaeOzUOUFZLCi0R5e2aAW0GvEy/lgLyfWgBi6jfbZ/ytFE352o0oIrADGxeEW04qrPC0S8ZHdvPVCI5vvFTr+D96Xs+QTdyi67TKInZij/WThqubymrWiH7vJckKKzpfdP+idGiF7XQ0gIeAg07jR4N9dLYBQXO2cAg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=alien8.de 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=j59IYbrIBn8o5Myze9Rvn6I5GfahjsKZEHdIDCYQPQg=; b=QqKGjISovdPB0rEdEjq9/1OobGHw3uKrg3qCG+JKn9eS5gbypZcm1pYbzlbj/eiw1CnbWLIKyfgjR4Nevguq61H6y+l+tG2DT8233D3GkJvvodjvem+EVp53CajLzcoU1QQSpoNe0Wcdod9q2hNPVPmDQpNRVZd8l17nZMQTSb8= Received: from SA1P222CA0155.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c3::25) by SJ2PR12MB8978.namprd12.prod.outlook.com (2603:10b6:a03:545::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Wed, 26 Jun 2024 04:21:43 +0000 Received: from SN1PEPF000397B0.namprd05.prod.outlook.com (2603:10b6:806:3c3:cafe::4) by SA1P222CA0155.outlook.office365.com (2603:10b6:806:3c3::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.39 via Frontend Transport; Wed, 26 Jun 2024 04:21:43 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SN1PEPF000397B0.mail.protection.outlook.com (10.167.248.54) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7677.15 via Frontend Transport; Wed, 26 Jun 2024 04:21:43 +0000 Received: from AUS-P9-MLIMONCI.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 25 Jun 2024 23:21:41 -0500 From: Mario Limonciello To: Borislav Petkov , "Gautham R . Shenoy" , Perry Yuan CC: Thomas Gleixner , Ingo Molnar , "Dave Hansen" , "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)" , "H . Peter Anvin" , Huang Rui , Mario Limonciello , "Rafael J . Wysocki" , Viresh Kumar , Nikolay Borisov , Peter Zijlstra , "open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)" , "open list:AMD PSTATE DRIVER" Subject: [PATCH 2/2] cpufreq: amd-pstate: Use amd_get_highest_perf() to lookup perf values Date: Tue, 25 Jun 2024 23:20:43 -0500 Message-ID: <20240626042043.2410-3-mario.limonciello@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240626042043.2410-1-mario.limonciello@amd.com> References: <20240626042043.2410-1-mario.limonciello@amd.com> Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000397B0:EE_|SJ2PR12MB8978:EE_ X-MS-Office365-Filtering-Correlation-Id: 740c99dc-6506-4356-ca81-08dc95977c31 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|82310400024|376012|7416012|1800799022|36860700011; X-Microsoft-Antispam-Message-Info: zqeRS90STQ4gYinCDtiia5tQI8FY/37vY8zcmK/sAC5pP/VPfTPFs94p4EqhOOL0WEzy3Pg9Is0keLg+ruJCpPCttnbIirC7xkC7lLt7rbAAWFktcQcTxfq/nZ1sPAMIrsJZBNfnqOVaiCwLkgTtXwMUGyq/iYvc7EIdjsLVaSB9PIdhsOnDkiFDUcdAys7R1BYDKoIQrGrO3n/jjxJfqpZp8G7on+yXCMhYAwZnQwYzltgKBbeb66G7hg8Zue2TBJ3dJKDVb5UYdoxZfcvou+fqYcy8qyF2ZkUUg7idFSaMlH+Y+r/bg+eOAX61Bqce8GVq3eHS/ZDXmWVOsbeZTl6UtYqI/w88ShyQX7JSOqut4bPs5YAcU4lzSrab4aOsip1ZZOh+vruPWDewuFTa94HHuTjf+Ju/vCmGyN8VHKQcP5m74H5CMZkSTA9/dQVWKK9cDFSXAFCd3rBDr+p+VwxREMQXJ/AZfMWdTJv6DDOos5wJHMdRhnUacGgvbzW1muLej+O08YyUEPyCPo1bvHaOsNkJ1VQpdR7FYOzES84VSEJXiecSRImnov/VY60Jg47PbcM5Xs7HoEZkyY1zkBEmg17QQowH9d6YFxxAFFOft1kJvz7qEJOXYXUA+ZFjYR3xyLhXW9TACIdxKykaNYqB2Ub2WePlfkQGq8r2x4nOnTcd3L1/fFAWmgVcytUkujR9j4gnZn7L3s7pbikl+AC60UA/KFJZ+PnT+kvHu/pEBr9G0pzJ6SeVWZnNYxd6lSnSqtlZFVYoLDbAqEriYU3B6WkULEjXt6uIpD9YA1U/bsk9xoG/Q1BFmY5pUL9bi5/Kyi6lQz8dkQVX3Kb4OBw6mE9fU7kew8xNC3KFgDUxI63BW9y1YuBrAyq/aoeBRxYfG6SQrPDLSlhvoDti2cYcf4tndfm83B5vo8UZx1F2S2EFDTAWe3VMCHq2ZnB3oG9TQrwKEgs+3YdybpTrh0ZNf/hYzpTgpBBBYKjSVCvGbtf+gUHo+DxN5nT0QfBz6hFcHBTrdhi7s6m75UJdMF5a+bRg4mdK25oq9QlgbV6zxJeA2egLbK1jhwVpJ1yD3t3E1szyoqAUVzCVeCmZFXC9dQhylZ9aEyIW4nIUSTpf8BtxxXYd8Vsyi6LVqaDsS9CKULee3XEPTLTNMV9bdFM3DoyC5lHvzSQHUZ33jx8nnGMsLqiX06VFaNzUVXzX5tadRqDI1zCRZzDXLUSB97DYAeTvnGIEIEWo0yhs2zvjzP/4RCZ9EnKG/bFrJ34lJk7hkbUnX058facU+IkxiItfpK+I4R/IJpf6W/10Iw/RQbgO5gB4+UnKZM2b0Scck/R/M1NS5hZnuqmfm+eoHIohIWyiXziLAvDP7mjBPIc= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230038)(82310400024)(376012)(7416012)(1800799022)(36860700011);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jun 2024 04:21:43.5068 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 740c99dc-6506-4356-ca81-08dc95977c31 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF000397B0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8978 To keep consistency with amd-pstate and acpi-cpufreq behavior, use amd_get_highest_perf() to find the highest perf value for a given platform. This fixes the exact same problem as commit bf202e654bfa ("cpufreq: amd-pstate: fix the highest frequency issue which limits performance") from happening on acpi-cpufreq too. Signed-off-by: Mario Limonciello --- arch/x86/kernel/cpu/amd.c | 16 +++++++++++++++- drivers/cpufreq/amd-pstate.c | 21 ++------------------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 8b730193d79e..e69f640cc248 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -1218,7 +1218,21 @@ u32 amd_get_highest_perf(void) } } - return CPPC_HIGHEST_PERF_MAX; + /* + * For AMD CPUs with Family ID 19H and Model ID range 0x70 to 0x7f, + * the highest performance level is set to 196. + * https://bugzilla.kernel.org/show_bug.cgi?id=218759 + */ + if (cpu_feature_enabled(X86_FEATURE_ZEN4)) { + switch (c->x86_model) { + case 0x70 ... 0x7f: + return CPPC_HIGHEST_PERF_PERFORMANCE; + default: + return CPPC_HIGHEST_PERF_DEFAULT; + } + } + + return CPPC_HIGHEST_PERF_DEFAULT; } EXPORT_SYMBOL_GPL(amd_get_highest_perf); diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c index 80eaa58f1405..f468d8562e17 100644 --- a/drivers/cpufreq/amd-pstate.c +++ b/drivers/cpufreq/amd-pstate.c @@ -52,8 +52,6 @@ #define AMD_PSTATE_TRANSITION_LATENCY 20000 #define AMD_PSTATE_TRANSITION_DELAY 1000 #define AMD_PSTATE_FAST_CPPC_TRANSITION_DELAY 600 -#define CPPC_HIGHEST_PERF_PERFORMANCE 196 -#define CPPC_HIGHEST_PERF_DEFAULT 166 #define AMD_CPPC_EPP_PERFORMANCE 0x00 #define AMD_CPPC_EPP_BALANCE_PERFORMANCE 0x80 @@ -349,21 +347,6 @@ static inline int amd_pstate_enable(bool enable) return static_call(amd_pstate_enable)(enable); } -static u32 amd_pstate_highest_perf_set(struct amd_cpudata *cpudata) -{ - struct cpuinfo_x86 *c = &cpu_data(0); - - /* - * For AMD CPUs with Family ID 19H and Model ID range 0x70 to 0x7f, - * the highest performance level is set to 196. - * https://bugzilla.kernel.org/show_bug.cgi?id=218759 - */ - if (c->x86 == 0x19 && (c->x86_model >= 0x70 && c->x86_model <= 0x7f)) - return CPPC_HIGHEST_PERF_PERFORMANCE; - - return CPPC_HIGHEST_PERF_DEFAULT; -} - static int pstate_init_perf(struct amd_cpudata *cpudata) { u64 cap1; @@ -380,7 +363,7 @@ static int pstate_init_perf(struct amd_cpudata *cpudata) * the default max perf. */ if (cpudata->hw_prefcore) - highest_perf = amd_pstate_highest_perf_set(cpudata); + highest_perf = amd_get_highest_perf(); else highest_perf = AMD_CPPC_HIGHEST_PERF(cap1); @@ -404,7 +387,7 @@ static int cppc_init_perf(struct amd_cpudata *cpudata) return ret; if (cpudata->hw_prefcore) - highest_perf = amd_pstate_highest_perf_set(cpudata); + highest_perf = amd_get_highest_perf(); else highest_perf = cppc_perf.highest_perf;