From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754834AbcC1FdL (ORCPT ); Mon, 28 Mar 2016 01:33:11 -0400 Received: from mail-bl2on0081.outbound.protection.outlook.com ([65.55.169.81]:2286 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754555AbcC1FcU (ORCPT ); Mon, 28 Mar 2016 01:32:20 -0400 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: 0O4QI1E-08-Y0X-02 X-M-MSG: From: Huang Rui To: Guenter Roeck , Jean Delvare CC: , , , Borislav Petkov , Huang Rui Subject: [PATCH v5 5/6] hwmon: (fam15h_power) Add documentation for TDP and accumulated power algorithm Date: Mon, 28 Mar 2016 13:32:15 +0800 Message-ID: <1459143136-2412-6-git-send-email-ray.huang@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1459143136-2412-1-git-send-email-ray.huang@amd.com> References: <1459143136-2412-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;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(189002)(199003)(101416001)(53416004)(106466001)(5001770100001)(33646002)(105586002)(229853001)(189998001)(50226001)(47776003)(92566002)(87936001)(81166005)(76176999)(50466002)(36756003)(2950100001)(50986999)(86362001)(1220700001)(5008740100001)(11100500001)(586003)(48376002)(5003600100002)(5003940100001)(4326007)(19580405001)(77096005)(19580395003)(2906002)(1096002);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0862;H:atltwp02.amd.com;FPR:;SPF:None;MLV:sfv;MX:1;A:1;LANG:en; X-MS-Office365-Filtering-Correlation-Id: 12c5e133-2e50-4a02-c7c5-08d356ca4c93 X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0862;2:ai/Kaf98Z1jyM0C8sTnfqLZsZdAb5foe1I44sVaQuusXZHgBWYml70C71s8uknVCAj3DovkXqNr+KVbspbPi39EvH2396zgkclEvVdwuGQUkvjfwhEONu26Hi4PZhDAeB1bQ+GnT94eeJeJwS0YuqcqZxdnjiNF1zdF5Ob706OBv/OAaWtCzWdaX748oeuhC;3:fQ+rN9TMpSpoEXWKRakNgtfyJIrWIF1P+JvrrIN1gdjm09RDsLDj8dHsRRgx9zfFsP1HkGZ4Gr6yPNQ1dN39dEnONKHTQxmxcOXZoVpZmLlMS3ED6yUAqvYJ/qfT7BdOKyozheN81AijPuX0NRKzS8sALihHI9NluRRNy40bmLRZS4n7WprW1QB8+O4ux7cViY+CtiV3AGMrD8YksK0rwirh0aO79gXGI6yBT0QOoXM= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0862; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0862;25:x1fqIYNXFpnJb/rz7PmybKATAbqoNq1dllN3H8SV2tdJ8NO9c3wzX5kK/+AgmmC9b1jMz7df8PevtnxUoeqzpgn/9Qri42QhLjrIoc4cLYI0VhGA1RoqlYGVRJlRcPit+x/l0m/TdIkPF41AuI3vl8cP2Kc5yp0+FYVOu3d28KW5q506uR40AxKiluzobxIw0pztpzDsQquoFqftqbLsNa1YRoQmJ3lkHtZN0S6BBa3hpuz4z/ExODKwy5nCv+u2ZpugiXPP7An9jCWJjWiKn9A5Rrr24LxasYDUEXEsiWUx44rd9XZmSFKYtpLTvuJbcNid1e/SpP/mhamvurT5RYghYv9G2E1r0nnumixMh0beF8kFHOIwKmdCX1p77QB6ijUW45rmLqVE3ridFf4cG83Pz0TKqLNZ3zxyGF25lcglmfnuW8dR465I9ap0j1bVCUFU/dVwuwC2p8R06qoyjHISWbRjHtqIQaytPm0GltZKX4T3hAf854zomcfJ9tGCafMTTUdsUH054NmPULUzhxZhFnNFlSoP1uOLw0I89XCATP+Qo/WpJy5d2MMM5uBGipLt8/Ha+pWVOleHNDkqcO78duCAkwrE45Sw4+M8vI8= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0862;20:WqgviWWFAbyvNc8Q3UMRNjld4YTIhPpacXSv8JlB3yM4OgztlnezCOnSWKnw36cKWIVUVK/ayx47jU3XnvE6hwta01nCC0Eslbf+CdaXH5ACXmaRFemf/T55sjMcH+OPvEDlWS6CKoiz7PFC9VNZn16SPIx+Q80P55ZZQ37lTGgmLAZSUGuwyGRirBOx0ceDhAto/bQForwzi4t2suzNzY4dxWlScPapn9V68w+7KxwXsAsCZwIH4jzek6j4tIgSDH/9EatOmdMvbihskURevsvz9+DXBjtEm3uDPQqk8zzfbqiOmImzHzdd20ROIOUig3K76HkcER8n2UPi8Cf5gipE/Jn57W7K0KcAp/2OybpKlD06JD+T1ScLHxDlLhthXmjpMtmvmo9FLCz2G2VHeePFF/jh1n6lLZ7mdbWpLUQ2zt7wlsWnk4SJZqdGer7nykq2rgmRv8l7H8MNbY72yRui6gQdZbvYAT3DAKQ+myXUrtoe4kKii0DCNFTWRwbS X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13015025)(5005006)(13018025)(13023025)(13024025)(8121501046)(13017025)(10201501046)(3002001);SRVR:SN1PR12MB0862;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0862; X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0862;4:hRMmDR3A5WsowDxHNnR7SCohHK6zGCxLwbnK7E5SXP8Fxp154FisuQAIc6dxp1BJ3UYWl6YnFEYc11wDoB3wBzxdKXJHrQRAa9vHbOww+uUTOiZ3J3VKdRF4fcMpgszydCpS8LK6GQONlCFS6XS+sfSHkKkoglQY0R4di7VBKVfwr/WlT8Ky0PMVsQXrNLZNfMt0pfvqPKTH44070w1E+RQ91F8MeeaIdZ0FfHrEki5BIAJiTAZ7vF8tLMvs0u6SOWeq+pQtZUvnL45qUYA9KjKWVm2NHH5qpsNKafwY2Cq4YT1EU0tOJNxQ0L1CLi/G3qx2a2bRxwWNACE7ENmR5KWyq1meY30UiODDi9BeMUkRCM1JB51Ba9+QfemP7eyv2EhQo+kAvEyf19dPEesn2+xrktS/Mb53elGm7I8eem4fjkhv7R3bCKYDvQ1U6hU1tFMlMBwFzkOStOrTx8amPg== X-Forefront-PRVS: 0895DF8FFD X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN1PR12MB0862;23:SURfD877rKHGtGLfqtzANeAwUy48i2suOvD129efx?= =?us-ascii?Q?LKRySbpZbY0tM48glQc7ePKx06i7iy7kI8eN91rAvH5QOBhAR4Qd0JB7hf2c?= =?us-ascii?Q?EzgRbVdO6VvJTTO75FwdMsOV+B65Neo12NBpgPzQEhJf45kbT2hLeNLXG28N?= =?us-ascii?Q?xi+hjAER+lC2z5hYor4Kja0O5sHAdPjDDNBu2L3I8Ck4z0gr+zxsR6Xmo0Rq?= =?us-ascii?Q?0M5pByajOuwGcS8/crL6xZTDHsFFIlGy7YYm4lJakYN8mDmsL3coDbwGs0DF?= =?us-ascii?Q?fPXIvFKQNsLJPCE1ZfYsl8hToDERraLbjf3AbQ9nY1ehMWAbmvIBPYlB0pBG?= =?us-ascii?Q?jFnKZ7gog2smgg/VC5003B7rhnzL28d+cRKsjnl8d7FLmUv8nVUXKb+ly86p?= =?us-ascii?Q?1dy/dp1zP7yu3yhYz8GxuniAMOkUBu3G3a9UZaO642IU4N4ZniFaxI75rddA?= =?us-ascii?Q?OxrbRns9CpyhE8XGJRHTIFd1GHJx9P4cbitjTQUPYq4LcA63DWbXHMmE17pJ?= =?us-ascii?Q?32Q6NJ5DPs/Ad116+swBOh9s/NYhKw3BxKZrfKmEWBA/gpmm6uGdjvAq+eT3?= =?us-ascii?Q?QmjB5iiiDwsGe+n3b6JOSUwAhTVjBK171eF70L/2zBFuoToXMXrWr0VwJR4r?= =?us-ascii?Q?0NPzgobh1glpIntyrB71pfk29CR5rJMNzlYfrZpUUEQnlPQ1LxP1sdLtbouy?= =?us-ascii?Q?wDGHoxy1Kouje4spW9alGgDENSq9C5sW41O+YLm6BKTmORpSxurnD30X5UE9?= =?us-ascii?Q?4sre3xNQe0YLhQpZheZdmLp6npEgplyi8VOJ9++4pIBCfs6+7UlFKDpNH3kM?= =?us-ascii?Q?rai2nYM0sf+ecmx0k6AVvOg8S/RqJ/PQRTw61gTvTDhWX/3BUuYhqmwVQ3O9?= =?us-ascii?Q?QGpqNimtOcaU1t3Vl7qBXCN5LanrvIMd6o/f4DvvNRXKaYlMFF1wcRnb5tHD?= =?us-ascii?Q?OCtF1tcrK5GBAXBBSqG2pjVxT1piticENEGY/UEI3I854HbH22drhb7iQnkx?= =?us-ascii?Q?uQ88DeZF2/DI2qwnQSCC3UD?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR12MB0862;5:RzB25jK+No82rWZJe4db71Uues53D4SPtU7oEWfcLpduMssXxy9BmtXOVYox8BTuAafOKWaD4Fumis+6QEgxg/asVOcLSLY3bF79d6Sgh9C2wYFffbROOAZoYcWElsRvgUj7QxkBay47WgJEAJ/R7A==;24:+bDZLdHRnJYwUFz7pBk+rHzhmzKx+MrfHqq04ZdjZFn9zbK2Z6fRsa66PRpqBUlzGPZCDf7VV8UGkI+DAjOaQBg7DM0dIzI+TTzq9F/utvA=;20:Y/ARby2rc+uV98SXmgCwstRJI2JyHWMTFlKnHaEsT2wURZ1nFz+BRpVjfSGUUoTK3MPdpMtTfZ11qx/QumqKsZhxByB0TuG5JDV4GRWDsEO6iNwp9Fzf/hSkuIpicvK0jnipFmp4EDpq0tyGX7f+sxsIPE8kab72bK0+Ci1LPvwMsf+D4db5iPtvtThvEhkpDSmCCqnWr4Ilm1uVTraDt+QxE90eIpIUTUsMn8C5ZfjLjRFcSlU1G6KsUAYkxElF SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Mar 2016 05:32:05.0788 (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: SN1PR12MB0862 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 003564b..c1cad26 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