From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751526AbbJTCox (ORCPT ); Mon, 19 Oct 2015 22:44:53 -0400 Received: from mail-bl2on0054.outbound.protection.outlook.com ([65.55.169.54]:29376 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750787AbbJTCov (ORCPT ); Mon, 19 Oct 2015 22:44:51 -0400 X-Greylist: delayed 908 seconds by postgrey-1.27 at vger.kernel.org; Mon, 19 Oct 2015 22:44:51 EDT 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: 0NWHYY9-08-8UM-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 03/10] hwmon: (fam15h_power) Add max compute unit accumulated power Date: Tue, 20 Oct 2015 10:28:22 +0800 Message-ID: <1445308109-17970-4-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.222;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(199003)(189002)(92566002)(97736004)(77096005)(5001770100001)(5003940100001)(47776003)(33646002)(53416004)(87936001)(46102003)(36756003)(64706001)(48376002)(101416001)(19580405001)(50226001)(105586002)(76176999)(5003600100002)(229853001)(11100500001)(86362001)(5001920100001)(5007970100001)(50986999)(2950100001)(189998001)(106466001)(5008740100001)(50466002)(19580395003)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR12MB0708;H:atltwp02.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0708;2:mXnYh2suFJv44ibSOrrpvM08NcF3caItkeA4+C5a3nJloB4zBjC3XpGVsCI2t8230z0k5LUSIjhKd1/ltBS9JhcmKzcPxE7SnE1XcGONA4EzNgxIeKjLr6PCIDkgx8hHmYmRm2TqLm+WAB95P/BsyhXGL3S7sBFXkcSA+uGrVxE=;3:xi2kjCbZ2W7zTuKN3mLLiDmwehj1HH0k7j0846yJu5ghGKnRIDgl3LUY7JuA63V6joheCAYACXVOUK1nZgZVjDhHCyfJ8vAm48blkdu1agjP8DNqhZM20ebeYNMgkAPxghwA9yw63oP6zUDHN/+uqZJjLmQAb4rp1FR///cRcb7uoGUgjEPTVPdWc76JGEbXkAhQdEAyHSEgcwjbXlrnpx1Q+jk5fIJ2edXL//5dH9UkzySnksx+npZ5qFJQILQa;25:fPmnFDZIdosS5EB6mEsxfNNF5VPPjS2a6uVBgQh5ydMjp2QRlbq9Qq1Zmh31NpNvxWRBbn89ArfcYpjmLgjz9UCO7Ygd7t3ewDc1n4w/4wRF2X81Rpmx7+gFbh0r0PISE1hrwDSbkd9DQlyEirvUI/ClsK5Q7EJiO5To24Ux7Bcxnos9oPg2h/0TQi0z49PTC9SrX18S3ePPe/RBvaTN84v5jvcTKPs6EhR5KMZVdggFFoNWiNROmzq+YocI3uaB X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0708; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0708;20:eZMpz4xjPj/Ihsp6PqFmPTwgp4s413Mj+7of8z57HntD5cjIAm5lHM5rZR37+B3gxZQTtidtXCEfXoUBz31+BAda4n1lmFj0BrDMFR97l0mfFQhB2WySj4X/H8ARaj5xMrXDzQRTRbK1F+IQRg3Rhi3Ceb7sRF1KjwLuJl53GACKy98Dhouhwp3uQ5O3DK/3aCm3YGAN/wT2/MqiFeXBeR/ZVvykT0Zc6g6+y2tNewPpznpjP2sqju5iPUF+Q3yohJTTkefjUmKAEiHoTgpvFYzrf0/OLdpFZShh1YXm6ZXVWwy2GrnsyYjTfhplHpKOM0yOGhQmz2isQNe3R0n3ohk/sGW0PaByKvoFHQ1amlioCuDeoDVDwflq+WrHmgjec5JpLrl8BLFA6TJq8cgSuHJewNWUim1BGbzdYz60hHrKXS2sREcrZ4LVab9LdQRiN30xhEIPAKaPKwUOO5sLe8X8kPbryXwM6eVO7/PWHRVt+3hnT1Jb4DvHaEk2gGin;4:eIGal1NhUei7xup7K2xQWmsyUx9dYsjCaJSwStAyc9vpY6FIByc1hGpGgVh+9SAF1S34NBKv1qGEkTO4CC7dO1LwApwJYvxY2GAVSiycTgIkrBrbyqKnWSEuGsfgFnEQYlHrbQSB5917lE46cu0guLiOlclY2mjm85auZIk/XSnyy2lr+uY2L2HE1Cva7HUgGln68yTEzDgCqvl/3R6nsE7UFo7SN7OWJcR/pBg9B4E1VU+XqyYkrbufjZA3Hh3Jti07vtKxcp5Mo61xmf07Z271a3xgDxGtbsAmwyLEOJQPRhvEQ6+QHDBwAZnv/U99VtTj1ohT2pQCVuXLET3mzS7pTuciL6PC1ObJSrIF+88= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(8415204561270); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001);SRVR:BLUPR12MB0708;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0708; X-Forefront-PRVS: 073515755F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR12MB0708;23:XbzGS4l6c5mH7uAKoRqyuwJVDa1t5Wlw1Pk7lN2/L?= =?us-ascii?Q?oS9x4zzoq37YS21ztW6KbuB//y8g11nxdutrOYTDCySFJ3JDxynYrVreX2Xn?= =?us-ascii?Q?cVzBA/as0eg9jVMTzwJESRXElLUeYsmG+NG0pWPeCZp83lRj79pKp9d2vAWw?= =?us-ascii?Q?OEF+DLSEbAgp0s+hpn4rU1BHz+W8uCZYRu9frPcf0/s+50mFyha4DhvkovjO?= =?us-ascii?Q?cLW54q6biJLM0RoGiOrBgRcDRDFWd2KvmRzICF/Fg3E57M474BIYs57jpiOs?= =?us-ascii?Q?UQ+esvu8OoPutjjENCvGa7rKslnM3Za60Igwlmy8fhX+TCJFrw/jYGHMP+Cp?= =?us-ascii?Q?Ha4axKIWmzH3+hK2ImxCA7uPJNjYj1BGBqoL2AXTFJfiADXv5c85U4CgFBvn?= =?us-ascii?Q?2CoiAVGkmHbMO+9RujbfPeJErYi+N70lQvp/JE3nnaiISs+DmJug0W0wZYCy?= =?us-ascii?Q?zNtlEzh2hY0weKTnfIL9FUi7NvsIpHE6G6yMrPacDGP69I82oTcPyE+/1DkY?= =?us-ascii?Q?JPoBoX7Wdev06bnkYf0jI3lUKzTf5oK3Uh8yMfLesGssCQ2TKxLZ/kPugNe1?= =?us-ascii?Q?jhGS7YPSerpGwYqF84XUdF9+crMh9vy37hOMtZq+WdtnXK6wx3Q9uL1631S+?= =?us-ascii?Q?EZFckOpLcWL/AzwMVVHuaoExDPtBTmCJOQGm7TJrRzK1veQ1H8kbCEQf9OoB?= =?us-ascii?Q?T9fTSDDlPNBk7o+u4JR/+tVdBhkfwwNZ7Ml8G8MAGT3fP92MjjRbKY+3Jps1?= =?us-ascii?Q?xcw2o1yf0hT73K0tUT0F2x7reo5iFlIaUS3C5ClyixjmnG2D2Nd1xzoXjRWg?= =?us-ascii?Q?SQtLyU+qOQF2/FUXgVS62Ls4+xSSPkR584YfEKhI7n2ZUD4rpoWQgSKRi2oN?= =?us-ascii?Q?AxS7Y++iw0QY0nYqRbDSnDn3avAPIczbXR6ko7jKIQ3hq0V1SbgrgKVNgBwK?= =?us-ascii?Q?F3vc5ygtCfvQR4bgK0VUEFA4PzBAinLTZhNeCr/cmH2Mx52jLVQCxqfRGUqq?= =?us-ascii?Q?NVTojz84z/QXLmANBdmOt78IYmOLWLpa2tDjeD3YLRCvl5U/JhQI1Su2V8ZA?= =?us-ascii?Q?4xaz0c=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0708;5:rg6+Wpr4I+wi9nmGAoGfjki0y4gaXFNgMX0/KA2MrP3qkVWqXqKCY94XfQArvlvEGeGpshJZSSLol8kat4auS/PrmTfpQUFuhPuKyIZR6S9sy1q/JGHNGB6u3udZ00ZkWU/edWPaBd71jQCmdf97Iw==;24:AmoCiKuc4+RiU8nI6GAMDoJgov7u/zEY5pR4exKUJH8GxvHpyeurW+/JaF+icHNXm4vNFhFxSdjl5UVnQb34pQHHQgSSM0DHYvOXvqivMoo=;20:7znQlqy55Cp0DccpfCpjbIi99JjzZoLYUvLEmTleRPiESYvX/UK9IXI62kJUuBClVqN9EgO+px4zg7iEILI0uQ32uuY+q7GeN9tfB2C2l67DPOIVOoq9kwOT1b9RIZvPfJpIwczxUQkkoYnLBk5Pb3lgr7qcw5gR8rHc9Cdi+UUviiNimNzQAitdsauGdMoqswSKAmziIVas1cnyPEwmegVqO7xJka8dF1Xzy9rQ41+KCoAjYXO1GepvkUj8mewX SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2015 02:30:12.4037 (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: BLUPR12MB0708 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch adds a member in fam15h_power_data which specifies the maximum accumulated power in a compute unit. Signed-off-by: Huang Rui Cc: Borislav Petkov Cc: Guenter Roeck Cc: Peter Zijlstra Cc: Ingo Molnar --- drivers/hwmon/fam15h_power.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c index a090adf..e2bfab5 100644 --- a/drivers/hwmon/fam15h_power.c +++ b/drivers/hwmon/fam15h_power.c @@ -26,6 +26,7 @@ #include #include #include +#include MODULE_DESCRIPTION("AMD Family 15h CPU processor power monitor"); MODULE_AUTHOR("Andreas Herrmann "); @@ -44,6 +45,8 @@ MODULE_LICENSE("GPL"); #define FAM15H_MIN_NUM_ATTRS 2 #define FAM15H_NUM_GROUPS 2 +#define MSR_F15H_CU_MAX_PWR_ACCUMULATOR 0xc001007b + struct fam15h_power_data { struct pci_dev *pdev; unsigned int tdp_to_watts; @@ -52,6 +55,8 @@ struct fam15h_power_data { unsigned int cpu_pwr_sample_ratio; const struct attribute_group *fam15h_power_groups[FAM15H_NUM_GROUPS]; struct attribute_group fam15h_power_group; + /* maximum accumulated power of a compute unit */ + u64 max_cu_acc_power; }; static ssize_t show_power(struct device *dev, @@ -241,6 +246,13 @@ static int fam15h_power_init_data(struct pci_dev *f4, */ data->cpu_pwr_sample_ratio = ecx; + if (rdmsrl_safe(MSR_F15H_CU_MAX_PWR_ACCUMULATOR, &tmp)) { + pr_err("Failed to read max compute unit power accumulator MSR\n"); + return -ENODEV; + } + + data->max_cu_acc_power = tmp; + return 0; } -- 1.9.1