From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752317AbbJTCqi (ORCPT ); Mon, 19 Oct 2015 22:46:38 -0400 Received: from mail-bn1bon0098.outbound.protection.outlook.com ([157.56.111.98]:24416 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751555AbbJTCqf (ORCPT ); Mon, 19 Oct 2015 22:46:35 -0400 Authentication-Results: spf=none (sender IP is 165.204.84.221) 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: 0NWHZ0C-07-3ER-02 X-M-MSG: From: Huang Rui To: Borislav Petkov , Guenter Roeck , "Peter Zijlstra" , Jean Delvare , "Andy Lutomirski" , Andreas Herrmann , Thomas Gleixner , "Ingo Molnar" , "Rafael J. Wysocki" , "Len Brown" , John Stultz , =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Weisbecker?= CC: , , , Andreas Herrmann , Aravind Gopalakrishnan , Borislav Petkov , Fengguang Wu , Aaron Lu , Tony Li , Huang Rui Subject: [PATCH v2 09/10] hwmon: (fam15h_power) Add documentation for accumulated power algorithm Date: Tue, 20 Oct 2015 10:28:28 +0800 Message-ID: <1445308109-17970-10-git-send-email-ray.huang@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1445308109-17970-1-git-send-email-ray.huang@amd.com> References: <1445308109-17970-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.221;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(189002)(199003)(5007970100001)(48376002)(97736004)(229853001)(87936001)(5001770100001)(50226001)(105586002)(86362001)(101416001)(11100500001)(76176999)(50986999)(5003600100002)(50466002)(53416004)(5008740100001)(33646002)(47776003)(64706001)(77096005)(92566002)(2950100001)(46102003)(36756003)(106466001)(5003940100001)(19580395003)(19580405001)(189998001)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR12MB0714;H:atltwp01.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0714;2:zzDTUpH7HoBy9sZxdV9RYak164TdFUwO1i7C+fgiSCF43oHks+LaN95txnQs5xFvrIipNbYhq8GJUE94awMkfbFFFvfEAc8k7roIE29jkl32jr+TczfzpqhzeUtI2WrpL23jznSRTmLLFYcFEBjbrC3BVPVyizWpPONC/GxFkks=;3:9tSCgSTnS1H13EgsQpIrp94V19lnQlXB2Z5rOzxwhzpSnLokOY9EhDSfWWwkzai/5S/FZZ/wV0agfJdonXrXDTtgF1YR7Qp7fr+106YrI6i1MLJyqGwY3FbTfYpn1xc/vn90WTnJCrq5rTe9dI+IZ/liL3CqOui2q8CeCxkAXO0JPXNu4TbX+T4g7g6KD9UIsCSPfqEHD3rmwUCndY8ecn1sn4CAKCzT9mAquqNT9mkl8Xq5GgY4xLqn0y3x9QCA;25:NwfO1BQsAaV7BPahzq6Rl0CMc/LK3GOuFecRf53IiogJBaNyu7PSl/C8sUYozaNOoV1xKYp7BIp6qweFgGBDb3uQTLf2Ub4/N76wI242v2X86n8mR2GphjzyPNyQaTbQqZ2EuQDzbcyhxpnFn4Xs/rlLTx5frrHjwzsKFG5Rx06oyEzSx52d62h+vGYXtVvFfbgWwxx7+KIQjHCKOluTwPoe0JiZtUrJ5ZWkfmHPEOJlqqtnE7BcnkMgIgIPeESi X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0714; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0714;20:mIlN1qOZJcpsXyq5aU+QqI6l3ABslQToENcD635nytV8D5NzIAVX8ewJdi7o0Pi3HDxR2KfUdZiZaLqt57KSWA1kSJ4eeNE7Vz9tdXcWAuW8UVBhqnJVrcNeVgdrSr2doqO8ZhcFiFtaAPI0mFLchGrVaSGzlt8uiRU6zBCNXifj8U44HdOhUkV+VINiTV1eojoFtPjhry9TUyCWhvix3/SZYdDiRKRq2MC4U8+2YQ+haGovOAKOhqCSAmxMAhBHY9x2BlJvEly3UcvVBGssfofrerejf4A60di05Dv12LNa5Chgz5HrbyTizYKyYoYeJQIEk7VfjllVyx9Vt/vBPXIWVIKlt8Wb9mzjH2z4NGBfu4jTbGpml/jHYBv+/WV3EJ+KmfgsaTAMF98BH1v+q09kdB2ZeDROVg2pu+WldUSfsMdNq6ctQ+f5cmzXhHQ7R7lN+HUMmsCY8rBiaYWg0S4+ca/UAvKrVBvrZGGyTpgrHaFU1u5JZ2YIoxFlepOr;4:TDaohsILuzPCwF/1WD7reA9wlzikT5E5qOiHTN1smflHEa2ww24hsG3UPYe1y8ovL6h0RKT8oWenirJ5cbo7XRjVDjqv2rqgDq+4bbZ/OhroKK0NSid3LrtJej2SYttG4JZdrlaJD+vN/fmJP6nyyJ7zcHCIZ1naklJRBEPb0j/qI755vQIlligQMIQum9EAZ2HEzcOzjrwHBiS5whiAu2xAMdn1JRs6S2Tc6levWAnnJIC8qVY03gIJeRlS0ADsUOpAABYanJ9w/hksHlYRZ8I7yh8v1g7Y3QEuJ50d7AfWDV5DB1I7ctT2CAKawU+3k7hdbDe1ytr1upzaVa0rSLI6yhB7qSr696G/OU2x794= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001);SRVR:CY1PR12MB0714;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0714; X-Forefront-PRVS: 073515755F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR12MB0714;23:HZG1gfPYQ0qWZiqRa4BKboIqauWLcoJznen6yrz60?= =?us-ascii?Q?HuPUolOx8/zAk+NJwn6qhPw47/gKM165RceKfNsCAXUsOAWmH3G3U7e19UMn?= =?us-ascii?Q?I2bcLxn8mYGASnxMcg7oRqPPbZdhggwt5+5Ol9PljClj706OTtlrU+XXyc9l?= =?us-ascii?Q?6GjV5UmS1e7GDNbFq162CJKeVKXjpY5NwWWE9QqUa2hLnEXdeg+m62cnrMb8?= =?us-ascii?Q?YIvfxNxbf/1qj68ca9j9Wn8stjoesxMd0REXWzRhgBBMQpgLULxZ12gEJJGz?= =?us-ascii?Q?A8pegYsaU4HFnOooCyFYIp0R0Hf23jBH3ZkpD+vGPBDjnlsoWKhZvXfpZ8wm?= =?us-ascii?Q?3DfZIl8MU63GnKib7IwnHafyiF2d4smCqCLJOAmlTZE18Q2WyPdJxjxiBX0x?= =?us-ascii?Q?dZGx80chOPH4KI+TFDaETQEXhPgvvLS516E+a1/+sjLql00cICY1lfUN0uJj?= =?us-ascii?Q?c0I4pRNb92XDVgAYvr08qNRGU9pSL17XJnOaHQzRXgDNJjlIaJzJBAOHjje3?= =?us-ascii?Q?K9ThAUoHj4raTFQbWet5U8nJuHnhoHYm51jIwvvZT3yTWSVB5H2Y8NJQPyGA?= =?us-ascii?Q?DgUJPaRdCA4S/ltC6lykubw/Q6f5uFU9BH/QJKD4UiLbDWAYZphcfyinG1Vg?= =?us-ascii?Q?E+G2OgOnxZYN9HIlBxdluKxi7nBhpavCE4phj+XvZqJCJXpdZYp7FaP37M9D?= =?us-ascii?Q?2WwYiUV9u9gOUbR9aFFz2yBbZPZUjzjxzca7vQ3PUK6wvVGwjFbmbGaOESOg?= =?us-ascii?Q?3v/XOa8Zz+ag/MCTtqrKUQoZ0T0JPI6eptjiYGQQv0k5HIQgGT0Rw7LaHbLH?= =?us-ascii?Q?N/Fe978SSHT1CpjJV+iay/r76OMB8U0eAwKOPvy28JI2OZbUY9tXkWzd0fEN?= =?us-ascii?Q?MfFbnatBCqxaVoDas7G8mLs+M/KNHZ3jIC0LN8yXFdeyCXlFjlbqgWZowoLN?= =?us-ascii?Q?rXy1dPI68vxmVbXPgLvac9Z5/WJxi6vBTxAmqGBTEijizu0FcJ6pm0YeckVn?= =?us-ascii?Q?dNldwww8rtVpeKmLNgBhaV1?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0714;5:xReGTFPXTN4+GQ2Cb/W94HgDPYJXKgCwM2OPwS3LSXIDrz+Ka+ksRKKLaRpupWb7b/dZSJ81j60sGjnoGpeDysC1DNy7FVczFk2k/Uyujf77O442vQYYZtR9ygb6HLqAfLiC164eux0r5jTKM1oQbw==;24:MqqKfvovKfwg4Uy7QO/PQcoYT4YI0FV4j2A4tXE5eySE/CN4qzAbXIjkCdMLHnGVnpSsuvu/eCzfiqxDO27zSrhmeYhHc8AeZGIEolX/A1g=;20:ffSJVj+a/m3WE9agYgJahMxOlkHDZZ1SjTLSKTmXa2NqemuEZjLan+zMV1HDXeDqe51SkQdxqxT23M/0Ydq+Hcna2Q7WVUCTL2Vj/uY3CkkS4fFo8y99oZ4CZnQIhXLwiQpdAPp7/hzl18mCxH7CriNiyc7S6lLh3wL7s+jRyB0No62RoJjz6c4erGIjHAun6ae66GGFePOgiBKfOZ4t3UKIws3LzZXWHNLzclfALCZZDZdNaXR34ew34wTGlYgV SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2015 02:31:24.9717 (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.221];Helo=[atltwp01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0714 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 accumulated power algorithm. Signed-off-by: Huang Rui Cc: Borislav Petkov Cc: Guenter Roeck Cc: Peter Zijlstra Cc: Ingo Molnar --- Documentation/hwmon/fam15h_power | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/Documentation/hwmon/fam15h_power b/Documentation/hwmon/fam15h_power index 42bf04e..74cfbbf 100644 --- a/Documentation/hwmon/fam15h_power +++ b/Documentation/hwmon/fam15h_power @@ -45,3 +45,49 @@ 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): +* power1_average (PwrCPUave) +* power1_average_interval (Interval) -- 1.9.1