From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753468AbcCLPf6 (ORCPT ); Sat, 12 Mar 2016 10:35:58 -0500 Received: from mail-bl2on0060.outbound.protection.outlook.com ([65.55.169.60]:12176 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752720AbcCLPfu (ORCPT ); Sat, 12 Mar 2016 10:35:50 -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: 0O3XNBH-08-IOW-02 X-M-MSG: Date: Sat, 12 Mar 2016 23:35:24 +0800 From: Huang Rui To: Guenter Roeck CC: Jean Delvare , , , , "Aravind Gopalakrishnan" , Borislav Petkov Subject: Re: [PATCH v4 2/6] hwmon: (fam15h_power) Add compute unit accumulated power Message-ID: <20160312153522.GA14982@hr-amur2> References: <1457662670-3354-1-git-send-email-ray.huang@amd.com> <1457662670-3354-3-git-send-email-ray.huang@amd.com> <56E38E23.1060708@roeck-us.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <56E38E23.1060708@roeck-us.net> User-Agent: Mutt/1.5.21 (2010-09-15) 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)(164054003)(24454002)(377454003)(479174004)(199003)(106466001)(19580405001)(54356999)(76176999)(87936001)(50986999)(81166005)(92566002)(23726003)(19580395003)(86362001)(101416001)(97756001)(47776003)(105586002)(77096005)(2950100001)(46406003)(33656002)(2906002)(110136002)(50466002)(5008740100001)(11100500001)(1096002)(1220700001)(4326007)(33716001)(586003)(189998001)(83506001)(1076002)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN3PR1201MB1073;H:atltwp02.amd.com;FPR:;SPF:None;MLV:sfv;MX:1;A:1;LANG:en; X-MS-Office365-Filtering-Correlation-Id: 4bf85823-79f8-44f0-9537-08d34a8bfb12 X-Microsoft-Exchange-Diagnostics: 1;BN3PR1201MB1073;2:B4nR5CAgA9/TsCaxVPNzDdy1uhaQhzAUsCfZZ0ILiSsNFVn+tUWU/OWTDbx9F5Dq2jqet4Cn3O0xltSSDqgWq3cn8IZu4Gl9B3OfBr6wLnO6Kw8snV8/l4iDk2kI+fZKq5BbTJf70gswpVQAVUKhcIZcLmRZLRoU9I25539Xf2h9mbYhgfB9VI+ueUxiaOno;3:GNRM9rLNFvbbf4Z8iQlB6Vokc1iDsxYlCwEizjy4uDbvhoRJtfkOm8NcxLtR3OJHlfGfyMAN3XDH0HUpCrDwdWO4bsLZhBDmjiPd/2hqlsX9EAps4evN/D465xoAUmKUQ3T3pXMIMXg0NbCx0hrzoQXll9AjdA0rezJD+Pa3/p+ziPaaB0Qbvnp3d1LLZXYq4Lc07fRyvXX7KMOLUYhDoPMxikv2hfZ6u2KhmITPyCM=;25:6uZ/RC03hRF9NmiMkTkkGnIUJrJn5Tv+Mxx6hJW0FyP/CjVzxDxcd/uyY3a1m88DxjJWzwZuzQLCSU5ffsMyFdXd1ZylHXBxDe0E6Xh/hXni+UR8x7xOhpEf3yk9g53308zsVDw+WQveiJnj6YuPtty89wtl6Lwu2eNDzMkJYUurPZTe8lpk1Xc8D0o58N8Od4pnM0aSlnWGAA2+DELCCRFAzG4EyECUMtNiRJNi50GThwuR5bC7XGiYdd7aWBg3jnPDNe8eNhDhBat36L3TGmBHx/lmdJtTJjWAAWDfel4q/R6jqJCb5B1lsQtgQZ/PyJ30rikTPj3Dkr32vX2dHw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR1201MB1073; X-Microsoft-Exchange-Diagnostics: 1;BN3PR1201MB1073;20:med8CC1visTwDFs+kSlIEvs1wFH9UJQauHgK4Kl8KUZie1oY7ojL1SvI/GpsXYYZU/lkFI30h3zm1CvYxFJqx5Cnz6vVgRsvWslJReet/71uc7OEUQXDshwAn7Vl5sJMQI1zL4ZB9n9/9BAJzPz3z1rfnZmg5yPChD15VMv1smNLr4Cqbzb9/OtCCzNfH7xwILDECKcjlaEZ0VyVQrQBTLGAucNwp8fvX8+SbIAcIoG8adt7WO4JiZHzGa/GYgryji8d77M3ZyCwlPV1m6k27to9M+9Ift0KJ4+450jAc1dzhrWh1M/TShZUSAZ8SyxKRowLihhlga86fEIS+7h5KixbiK3DrfSeMuvCb/+s46YiiiCFrAVxLHdQSdMXWTrKboSobYrkUSajkpMWvZUEFcueIc9lJ4eV2wHUTcCQTYUwwvRcDE+TTMzL4vIiTW9G0prYlumtHBVozazfSsqAs3N6wBGXIwdunPr62wnfnTehls9F/7uQEBVCgEahPU4S X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13018025)(13015025)(13024025)(5005006)(8121501046)(13023025)(13017025)(3002001)(10201501046);SRVR:BN3PR1201MB1073;BCL:0;PCL:0;RULEID:;SRVR:BN3PR1201MB1073; X-Microsoft-Exchange-Diagnostics: 1;BN3PR1201MB1073;4:xaBtXQxWo15+9YqpzSSO1kPXH08wrNnNL2FP8zrT6nDI93XlruNfT3/IY7cW3eFtHs3kzDal2xemg6YxX/2yJJ6lwbkPg7vmdkATgTwY7V0kj5SLK7Nd1Qp7J76jeUd3VfRenedyIjI11oo5vNpL2ATR1dWFczuRtW4YrD3lQ0hE5LegzMsi+XnDlSn7kCTV4ElrMZOUM7KiNnfy61Dq66n3r1MOuXUwu7s6Q4hWEXRaqj0pqIcAacCgBbbiP0lJY+sxdU/vSw1QFT1V6RnGNX2i5TajwPP/7fEaY7UEBTWjM+q3dwtLJ9eqWRQS+vUq5paVyWUK00yThY5YDj4GWZM9f46Vk59axcPCccRLbcrEPKIcmK3PBVrTRKiwRxary7r4bnXdb5VrdcCtxgDznOK+3IPUkQKtvjwAki/c8F+KWJzvDoUJ6nbf2rc5htNq9gWJJU25VgTUXT7v3Vtr/A== X-Forefront-PRVS: 0879599414 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR1201MB1073;23:VPgM9m9Dlwy8dWo/08ZsqzJ4fXIH9Kc4nnLUCKX?= =?us-ascii?Q?X9u1saysUY6RgoUpoHkFiJNM1s7lkcZVmEIzw9OuOCkrFpD+ZCelKzdcHpnF?= =?us-ascii?Q?ySmsDbS1MeDTQuhV1H38ca0HFF+8k5cOat9DtKzlZWZLETW0n2pQ0f2zHH8A?= =?us-ascii?Q?sCe7J4liRnzijLLwj8BMOJCF0mKFQYEMZYfm393sfRN09bMYQO+VQK5A0enW?= =?us-ascii?Q?GfbEXVET1MY5EoZpUGaGGqpBnDFRIi/i6P/6nk20TXN5floTgSdO7eM0y18f?= =?us-ascii?Q?Row0U/3Uan8hv9UChJFUz5YF92HHefQoa1yef2cHB+KfpTooB6dRCmUtJiMv?= =?us-ascii?Q?KeHInaxhTomDZA+AE+sPsqY/hFDV1VVMc6E7lQ0ojdHrKrWezgs4NCDBo7A0?= =?us-ascii?Q?IBo+r3BrHddTtKHgJEMQz7ziVwB4uBHR1kNBx+o/u1ss9HQdKiM0rYSiXPuN?= =?us-ascii?Q?zGknIrWMOORK97z5yIrkHycQcIJRQCpQvjmJAxRg3nEMfzHjwPQ6WYVObvd6?= =?us-ascii?Q?/l6BRHXIvM5DuA3waSX7Zrq02+tTfTfLyY+guy00T4apWjmCR+BEWMfwv2uE?= =?us-ascii?Q?gvphjjPisVbjsbijar7rAdXR56jOnV3UKQ+Hcxepx1eDkFSMgmaJpXWCZUt0?= =?us-ascii?Q?8pg1h3PKNhbv/pg2rsb/VXbVSu+UD0BZFxBNPRUxRpKO9JDTyP7BeSKd2E1q?= =?us-ascii?Q?JZ+K3dULohcU61QKzCFMvpsiSeOMOR7UEN8eggaRgRnKw6qfcLLizG8bCuJh?= =?us-ascii?Q?o+UERfWjMpZbDvAxfdrkgNIOQxm7dXGwuRPbOtINhZyBovoIpk3dzTapmZIg?= =?us-ascii?Q?q23iz4e3QOUlgFdn6dfDl6p8uyhshbvwAaA/Hq110hqM0OAZKDcxsfVWf+ww?= =?us-ascii?Q?Rq5xKnvIYVxz6wUa1z/RrZPjJ4+o7uylf/ZZX2tGdhjx3d2xdZ77ZBMguGmV?= =?us-ascii?Q?j3VismeLOvqPiMe392tVxasu69utYBDxSMpwPbg6dfyWpjJq3nG92BLcd/da?= =?us-ascii?Q?ET63JS1Ryb6BXGE4cSC5atSkmSVIwQe0cXjtUnH2gLTdIpUyf6STj5TvvAXU?= =?us-ascii?Q?wL7jvzCMqJvUGdhi7kg3R5yuqatUZ?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR1201MB1073;5:D+bHHmSj5m3c731ZrUKR6wrc2Rrc662KW1d50j3scpE/OL+k2ucDm86TAfyNDtJR5tJ2mWwWLlNfGBMizmzYl3gHgb2w6Ny5RDe47tAadoAJLi0GOEx0iN0wQstbpHmBBTFYM/JhBCkGeyNXs15/3g==;24:LVNm+RXcYLc+JqsUBIcxfYTf25rhebmooqHbpI4S8fZhtb9fnIvc/UejKy19qsFnQGgQFuac/wq3brM9QdBTuJf7GEEL3RU7cB4vEcxik2E=;20:kUv8CO0YLDdZJgMlPxzKuVfCruWbVOOSxtTKrASxoQyAHpkDccLLntYjF0MzJZyWOUFdk28AesorgkKNDjCB4xbMhTEQsyJucdycF3cjcOByoEbeI6M41DL00l5jjUGSuR4PshoTCpHq7hyQUPu0KDNh6iWKMLeL87PH6lVycFgtVLF4Pyg0qsMSLNXMJ1WMocT2010kvYE7DBog/yqLTP6RPebGXDPHbwmQKFgYRL9JkSFpT4hyOGgt0QVWcvEX SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Mar 2016 15:35:43.9142 (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: BN3PR1201MB1073 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 11, 2016 at 07:33:55PM -0800, Guenter Roeck wrote: > On 03/10/2016 06:17 PM, Huang Rui wrote: > >This patch adds a member in fam15h_power_data which specifies the > >compute unit accumulated power. It adds do_read_registers_on_cu to do > >all the read to all MSRs and run it on one of the online cores on each > >compute unit with smp_call_function_many(). This behavior can decrease > >IPI numbers. > > > >Suggested-by: Borislav Petkov > >Signed-off-by: Huang Rui > >--- > > drivers/hwmon/fam15h_power.c | 61 +++++++++++++++++++++++++++++++++++++++++++- > > 1 file changed, 60 insertions(+), 1 deletion(-) > > > >diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c > >index 4f695d8..c5e2297 100644 > >--- a/drivers/hwmon/fam15h_power.c > >+++ b/drivers/hwmon/fam15h_power.c > >@@ -25,6 +25,8 @@ > > #include > > #include > > #include > >+#include > >+#include > > #include > > #include > > > >@@ -44,7 +46,9 @@ MODULE_LICENSE("GPL"); > > > > #define FAM15H_MIN_NUM_ATTRS 2 > > #define FAM15H_NUM_GROUPS 2 > >+#define MAX_CUS 8 > > > >+#define MSR_F15H_CU_PWR_ACCUMULATOR 0xc001007a > > #define MSR_F15H_CU_MAX_PWR_ACCUMULATOR 0xc001007b > > > > #define PCI_DEVICE_ID_AMD_15H_M70H_NB_F4 0x15b4 > >@@ -59,6 +63,8 @@ struct fam15h_power_data { > > struct attribute_group group; > > /* maximum accumulated power of a compute unit */ > > u64 max_cu_acc_power; > >+ /* accumulated power of the compute units */ > >+ u64 cu_acc_power[MAX_CUS]; > > }; > > > > static ssize_t show_power(struct device *dev, > >@@ -125,6 +131,59 @@ static ssize_t show_power_crit(struct device *dev, > > } > > static DEVICE_ATTR(power1_crit, S_IRUGO, show_power_crit, NULL); > > > >+static void do_read_registers_on_cu(void *_data) > >+{ > >+ struct fam15h_power_data *data = _data; > >+ int cpu, cu; > >+ > >+ cpu = smp_processor_id(); > >+ > >+ cu = cpu / smp_num_siblings; > >+ > > If smp is not configured: > > drivers/hwmon/fam15h_power.c: In function ?do_read_registers_on_cu?: > drivers/hwmon/fam15h_power.c:144:13: error: ?smp_num_siblings? undeclared (first use in this function) > Nice catch, how about define a static variable like below: #ifdef CONFIG_SMP static int cores_per_cu = smp_num_siblings; #else static int cores_per_cu = 1; #endif Thanks, Rui