From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933689AbcCKCRy (ORCPT ); Thu, 10 Mar 2016 21:17:54 -0500 Received: from mail-by2on0067.outbound.protection.outlook.com ([207.46.100.67]:28929 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933443AbcCKCRs (ORCPT ); Thu, 10 Mar 2016 21:17:48 -0500 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; alien8.de; dkim=none (message not signed) header.d=none;alien8.de; dmarc=permerror action=none header.from=amd.com; X-WSS-ID: 0O3URP9-08-GL4-02 X-M-MSG: From: Huang Rui To: Guenter Roeck , Jean Delvare CC: , , , Aravind Gopalakrishnan , Borislav Petkov , Huang Rui Subject: [PATCH v4 5/6] hwmon: (fam15h_power) Add documentation for TDP and accumulated power algorithm Date: Fri, 11 Mar 2016 10:17:49 +0800 Message-ID: <1457662670-3354-6-git-send-email-ray.huang@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1457662670-3354-1-git-send-email-ray.huang@amd.com> References: <1457662670-3354-1-git-send-email-ray.huang@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.222;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(189002)(199003)(53416004)(87936001)(86362001)(47776003)(48376002)(101416001)(50466002)(105586002)(11100500001)(50226001)(2906002)(4326007)(33646002)(19580395003)(19580405001)(81166005)(586003)(5003600100002)(2950100001)(229853001)(36756003)(5001770100001)(5003940100001)(189998001)(5008740100001)(106466001)(1220700001)(1096002)(50986999)(77096005)(92566002)(76176999);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR12MB0705;H:atltwp02.amd.com;FPR:;SPF:None;MLV:sfv;MX:1;A:1;LANG:en; X-MS-Office365-Filtering-Correlation-Id: e1fc4a52-33af-4f77-5a93-08d3495351ea X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0705;2:y1knsg5ZdJJRxT5Jp4URXM6d1UeUAi50nCEUzTKAtCzCIQ0vbC7TeL4Tm9h/qMgWQdooD1HqFNOCkmNfcIMIvnuJWPNoitQXTdvFrR4hbPh9+2zjSshn+gwVSMhD1BCQcLgr902KhDrKggz1OC/Ey+aamkQ4VABaLAYfQnnH2fmTA0qwV5tn+bPJj5PLyVrC;3:lZvbPCHi9cCUBmO8dnxYBbO2xWRs/jjmc4loeFIqdOrCiydbsRJGCZRUCLJR0O8e+hGgM1XJ2GVu7sIv+IZRf5APVMDegnySJTz6qSZZE7YfrIF/U7UEBP3wrh8XDvm2LAdgMsDZ5pVLumbLy/5xqyPfeXbwZlPvYjRNXd1cbYqZXEc6vI3G4jov36SsxqKryYnqbNoCO0LZcar2AWL5IxT9+3EeJ3jcX+VbYPwZ+rM=;25:IdUDuq2wI0R+j7mzsIMZpzohONTfqdSHRbfunk7XGZwEglzt64xt8eoUu0EpKYyauQN4MdFemshZ3U6DWwHIQl0dzjpF0pZ/mBBdBuCjM29wvJxSwodfP/howHTJFtG1Tk/dUV7HKwQ+1daaKe1usjzoCgCCzSfLkEatRZoQYwDF2oQvkR+5Cpri0OtGJzNAQVkc5fFLRnzcLJQW4a+IAvB3wWK4PJ3yq0R0fWiGLDei/stedxzG47Lw0QbiFLMI3ShtI6IlLBW91R3wyjK3wiJS0uybryoFgEA30bngwx7qBkL9bvlUUqHlfJy/8v8ZcyqHpSfs41Y3ykGTMxgYbw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0705; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0705;20:fMeNaDBFgCmgtpqVZYBO+xUGWEHmXk50IyioLR/wiC4SyeD3RQt+/W1PbWiVa9rJkXTtx/Y5fU0q35A8+XGpUCYOeVsiuJLSP/iNNq4tIb7FHsR9xsUryKRpNCl96GC1e/FsPWrq7zNV5h5SIjQ5kHVBcpQPxmv96zOEfm2HvnaR3JjcoVo9v8+O0RDYyZoo1HtRMGWBOVWBYPIoo+goAj8gySFMY2Q5kUO+AsA+T2ygYRo5fqpdTMhuKIfHT1jWOCUm63V7SFy+lGLKxMJF/7loRKAMbuiiRErmleveqA0Fgu8LaK+rUZXpWNc4N/C2XH1kW3tgxNEcfUbKY7aAl0FTT2fvFYHJN6IDLOSAZjD8akrHsv5uKqmKFB4mF/HhURPFNwT+BIe8lF/dUqpZBK2/yljAdOsIYK5FgiErHhK0s6DiOeIbC704e/JRkpAP+JmrXlauUbzKEUjGQ+CTYJNKeq0RB/FOo5jt4GHaYATZ7sduARTYky+sSpDykoNV X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13023025)(5005006)(8121501046)(13017025)(13018025)(13024025)(13015025)(3002001)(10201501046);SRVR:BLUPR12MB0705;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0705; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0705;4:PcrRTtWY293LN9J8/eSR/D+3NQBJvDhUn8vFH+ugJC3ZaR33Pc/Q+5icL4U2LXT7Ow59I6fJg5gEGP9RRjPo8Ybsclbm+0dGRBAD8KY4x+tXwqlaH2JtCLWaaFf3YyfBcL/3hDFeZA5RIMOs5oofuIV7wBTgfQ5e5XhIjdqjzSPk/eyZmi6Gi6CY8gXNn1syFwZvxHfXjaH0j+8D+C6PIwO7T2yKCeTiKLdsuwQovx1d+FXpRIeVlJJ3yLaQBzpYj7oaG4fm1Bi7Mc86G/H7vR2RoAGyTn2DwKJJB1h7xRljodwwm/CztEcCQF2OJhX4m8JX5eBGEsYKzaVIqMIB/Nxxh8l9eJYcY2j3b5XbBr2tCE+XcsIyr6obNWrQRG8DLyzJOFkkBSAjbqvUPomBZ4be5pP34NIYRZIUA4beJL69Wdux7z3QtSeI53v8rQrNQq4RJjCgE93AsKXg9TJF2A== X-Forefront-PRVS: 087894CD3C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR12MB0705;23:kb2FB+WVf+raGVCzHqzfQlxKGlZm9v8oRzN9YFKz5?= =?us-ascii?Q?AJl0vlkl9cFzXsqb3RtHMT28mKSA0Gz0ityt+cwPOreoY66pw0OOO4KadUbE?= =?us-ascii?Q?LBTwON8M1Fg/FiYeEFYdvoo+AZ029LSyGgCaRWYG5aCBwLQxrjJNxX18rAaa?= =?us-ascii?Q?jv6ExhCqCsOY3s1HR08qYcc4u+CXANjVxlQot+O39SkuGIGq1LvcEOsATXIM?= =?us-ascii?Q?3qA6Y9mIZxUWr7V+WCillBN5VuGXw++x+3up3uR6PzLEYm+n5beE9/CZQOj+?= =?us-ascii?Q?U0x72e58AGHdotXnDc6ducUkCyWNp6UXQvVngnRo2MrXyZl7v3qOID5jUgVL?= =?us-ascii?Q?Tzv/ohLqF2TQZSGF2FX6c6yqiPNlDiK2vHgLjbB3fsRdTvmpwyzCODKmJQxa?= =?us-ascii?Q?DaBrfMOWlkEDlHgoMxIAJY4uJ7vhVQowiTcMibmeLfFDgRImUzey0iLr+1vX?= =?us-ascii?Q?3X7B0lbea+HZMCdoNm3w6mlDXqox56OlZ+6q+ekEq6Prd/KdgOjpVQY0BbKi?= =?us-ascii?Q?HPQbwdaVAUdepOgkVKLmqs6HkIKrBrk0/BET7rQjX2JqUsTmMaZuztUbPSwu?= =?us-ascii?Q?C56lxgrCG44XjEp/Bfvj1AoKh0x3phoV3b1w1b/XBf1vECHvKfBWAa4RJZjd?= =?us-ascii?Q?sitAf8+jkhouihJyvZHDajpl4XqDKaxWYkrcU/JmQbY0JXW4OEdlDYLnBGTy?= =?us-ascii?Q?ilECqJ2QWdJcwWpgQVOXYaish2vXdyKevr4E2RNdYRM3yHqMtCqO7cWLXP0X?= =?us-ascii?Q?8XH4/JoRaEjk3NJLJs2uSWdi/w1UUi7GuIxIhqm2SGo5CC7jRSyiTSyzhfbA?= =?us-ascii?Q?wTli8TuOfeF5WmST6wp4k3S9UZIOrDM0UfPCrJ+diWSh+MKiSBPACyc0jVIB?= =?us-ascii?Q?hdFzwy0d0ILhjBSwfzhjLlC5VoOCS+RvRygNnIi9MRmyvCHCoWs53KCB/sl6?= =?us-ascii?Q?WchkRt2V0iFdhy3clbllZKedmCiTWQc8ZGWNV2iYTXyfNTLv9cdxfjW6JuZ/?= =?us-ascii?Q?VeZPkG+jzDkkbHuAqll5jhX?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0705;5:QZi3dlYWM2QPLdcA/UvApY3lZastiAYdcp8t0W2tvgP/xysuYrupo2rLoJLUNqxwpMnAGsrQu85GdCvHyDvFvbvimA5CzPOjy1ieIz7Y7rPltZdt3JAlO+4cWq8Wi6Bya0B6SKcH6y7rIcZyd1+WvQ==;24:4MwwSl1aJT3qxhlUBGZCUd6gbUOxgb07wyYvMuBxH8Xykgr36rGvmid1zKv8j1TBiqAjUR9ZwF1Ne95J/J+2/pEfer/7ZqGyqVJx64/np+M=;20:kBW5Z/V290uUojputRvFa/FlEgW9/7VFHhHWYpVMVJKx/wfaEy0AnOwpY+qb3PCAGmcKJCKQgBQJ6aapYfLHP+kFZxHlFLldvDya69ixSTme1go3jS4v2RJAn6LtACJ+W2NzocXOIuJp2oL/F3OcG4HA3by5xs5wniYCSZ2O0pMgps9pUbydGatqeFqCD3UsFneWlEqmuV0IgzFo9CEf+vPuxsdLlHahgT3jhNcYC36hAFYhEZEGhopEOn6vvACY SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2016 02:17:37.3235 (UTC) 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.222];Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR12MB0705 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch adds the description to explain the TDP reporting mechanism and accumulated power algorithm. Signed-off-by: Huang Rui Cc: Borislav Petkov --- Documentation/hwmon/fam15h_power | 57 +++++++++++++++++++++++++++++++++++++++- drivers/hwmon/fam15h_power.c | 2 +- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/Documentation/hwmon/fam15h_power b/Documentation/hwmon/fam15h_power index e2b1b69..2c4fbee 100644 --- a/Documentation/hwmon/fam15h_power +++ b/Documentation/hwmon/fam15h_power @@ -10,14 +10,22 @@ Supported chips: Datasheets: BIOS and Kernel Developer's Guide (BKDG) For AMD Family 15h Processors BIOS and Kernel Developer's Guide (BKDG) For AMD Family 16h Processors + AMD64 Architecture Programmer's Manual Volume 2: System Programming Author: Andreas Herrmann Description ----------- +1) Processor TDP (Thermal design power) + +Given a fixed frequency and voltage, the power consumption of a +processor varies based on the workload being executed. Derated power +is the power consumed when running a specific application. Thermal +design power (TDP) is an example of derated power. + This driver permits reading of registers providing power information -of AMD Family 15h and 16h processors. +of AMD Family 15h and 16h processors via TDP algorithm. For AMD Family 15h and 16h processors the following power values can be calculated using different processor northbridge function @@ -37,3 +45,50 @@ This driver provides ProcessorPwrWatts and CurrPwrWatts: On multi-node processors the calculated value is for the entire package and not for a single node. Thus the driver creates sysfs attributes only for internal node0 of a multi-node processor. + +2) Accumulated Power Mechanism + +This driver also introduces an algorithm that should be used to +calculate the average power consumed by a processor during a +measurement interval Tm. The feature of accumulated power mechanism is +indicated by CPUID Fn8000_0007_EDX[12]. + +* Tsample: compute unit power accumulator sample period +* Tref: the PTSC counter period +* PTSC: performance timestamp counter +* N: the ratio of compute unit power accumulator sample period to the + PTSC period +* Jmax: max compute unit accumulated power which is indicated by + MaxCpuSwPwrAcc MSR C001007b +* Jx/Jy: compute unit accumulated power which is indicated by + CpuSwPwrAcc MSR C001007a +* Tx/Ty: the value of performance timestamp counter which is indicated + by CU_PTSC MSR C0010280 +* PwrCPUave: CPU average power + +i. Determine the ratio of Tsample to Tref by executing CPUID Fn8000_0007. + N = value of CPUID Fn8000_0007_ECX[CpuPwrSampleTimeRatio[15:0]]. + +ii. Read the full range of the cumulative energy value from the new +MSR MaxCpuSwPwrAcc. + Jmax = value returned. +iii. At time x, SW reads CpuSwPwrAcc MSR and samples the PTSC. + Jx = value read from CpuSwPwrAcc and Tx = value read from +PTSC. + +iv. At time y, SW reads CpuSwPwrAcc MSR and samples the PTSC. + Jy = value read from CpuSwPwrAcc and Ty = value read from +PTSC. + +v. Calculate the average power consumption for a compute unit over +time period (y-x). Unit of result is uWatt. + if (Jy < Jx) // Rollover has occurred + Jdelta = (Jy + Jmax) - Jx + else + Jdelta = Jy - Jx + PwrCPUave = N * Jdelta * 1000 / (Ty - Tx) + +This driver provides PwrCPUave and interval(default is 10 millisecond +and maximum is 1 second): +* power1_average (PwrCPUave) +* power1_average_interval (Interval) diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c index 46cbca0..35800cd 100644 --- a/drivers/hwmon/fam15h_power.c +++ b/drivers/hwmon/fam15h_power.c @@ -1,7 +1,7 @@ /* * fam15h_power.c - AMD Family 15h processor power monitoring * - * Copyright (c) 2011 Advanced Micro Devices, Inc. + * Copyright (c) 2011-2016 Advanced Micro Devices, Inc. * Author: Andreas Herrmann * * -- 1.9.1