From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754623AbcC2DBv (ORCPT ); Mon, 28 Mar 2016 23:01:51 -0400 Received: from mail-bn1on0059.outbound.protection.outlook.com ([157.56.110.59]:5429 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751230AbcC2DBt (ORCPT ); Mon, 28 Mar 2016 23:01:49 -0400 X-Greylist: delayed 76478 seconds by postgrey-1.27 at vger.kernel.org; Mon, 28 Mar 2016 23:01:49 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: 0O4S5QR-08-EET-02 X-M-MSG: Date: Tue, 29 Mar 2016 11:02:27 +0800 From: Huang Rui To: Borislav Petkov CC: Peter Zijlstra , Thomas Gleixner , Guenter Roeck , Jean Delvare , , , Subject: Re: [PATCH v5 2/6] hwmon: (fam15h_power) Add compute unit accumulated power Message-ID: <20160329030225.GA18406@hr-amur2> References: <1459143136-2412-1-git-send-email-ray.huang@amd.com> <1459143136-2412-3-git-send-email-ray.huang@amd.com> <20160328092952.GB26651@pd.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20160328092952.GB26651@pd.tnic> 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)(24454002)(164054003)(199003)(189002)(76176999)(23726003)(54356999)(50986999)(92566002)(4326007)(1220700001)(1096002)(87936001)(47776003)(1076002)(86362001)(2906002)(586003)(81166005)(97756001)(101416001)(110136002)(5008740100001)(11100500001)(106466001)(105586002)(46406003)(2950100001)(83506001)(77096005)(33716001)(189998001)(50466002)(33656002)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR12MB0707;H:atltwp02.amd.com;FPR:;SPF:None;MLV:sfv;A:1;MX:1;LANG:en; X-MS-Office365-Filtering-Correlation-Id: bf0f3ea2-5506-431f-fef9-08d3577e7619 X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0707;2:ReExeH7PLKEBBExHi/8GUFnZZdf2dLSpJBtboFya3qpeh7h7eckg6fRHc8/bGXCiGm0L3FQ7MzJvcTOXc/MwDGMhnDRTYlVcx0h9TSmrzoNSDq/dihkkIvm6iL0dlpKesM2amanBFgZ62bkRT0pwgF0zhomlqaTdFCbZKQt1RBtGEW6VVvZ1d6gq4Ka9J2s/;3:SQZtR43zwS+6vE3XRqKPowgvZZwOjyxX0hPOJJDnRwgxIR1XznrihiortKlDRRj8gMtTLGs3/ZlHu44gB6nqu4nhxfAcVuzqd9j3EQEt+hjkj2hS9DBfP/Xx3xwXwS+fTATlNNTOBrkPNLOeRJ0N/YjJFUA9bmdt9M/gZAPcaUe8ZB6huK/MTVWoHl+Ka7A5RPmnEpcJnMHRtPbJZd4z0vK8Z9ze/akSoG7X+uvnfEs= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0707; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0707;25:j7XB9HQ9XyEoNbRj8IvSZBpcEjakMIUbA7IlHLbsGxc/H8yw0ebroCSul0AtS4/ZE36LsxN0P+jdIMXxJHvENt99JiagvppXoeL6vZyTEjPu2nVBNliaHRwDFpTU2eJB8/GqPkytf87xvBEVfScV84szorA9ECzuQql4TXGbJpMipmHeK493q78ix2yinq08D96Fv503oJeBqE7sm7j4PzRXLEGd+tOyKtUvHeqST7MPkXgPAUMcNeouRji7OIvk1d70tbqt13UnrjYRTJzCZHeDrfKISAajaaZdN3uE1J8j7W8OpImArvllFSiXUo0C4icf8Bb9oo6GA1f9Q2p5dvyCJlCgD4pkBo+qR+81bPZkIFaJUpWg7SvBKKqq5RhXmgEfx6Qf30vV7MToAStuqZE6oUyD8y4yVCa6DT4FP+U1jAO9ltCqsqDug+Oq2GfBNh9A62TQyyoHhzTkF/EUcH3YqOTVbfe+S6spULD04pR/GEuU2I+8uufBhw20ntofudRqkXi2RAYoKgsw6Uj91mVw2b416SHrFwTL/U4E7DR/7B2ACm8/GC5RM9dxfg/ut18ymwXCcjAmGVQ7HI2kxQ== X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0707;20:pPpP9VS9fCY55TVV7R4mtdPpMO4EgWc4UEzGz8S3RfX+oCJJcQT3A1w5xNFOVldoDc6K6N6rVKfnEXjTBeK/d7XuRFwqDoVDDvVeLSk+BoQ0cnK+nX9hp7Ehz9KsQ0HO+ouBJcBsq+Rf8YOTFWN0WxkvQG8ryjUBCm3TNz9Q5XETs766PbuL+CCj14w0mzHhEnN1BRQvPqMcOx4USqCxOwST5goV65hDv32hwsY4xZIV7UoPYL7/2qEw6tYem7s8goCd9OW87zFzGsEyMXK2IQZg5Fcqw8q/qc+c5hmkHBoiuMgkfDSznjrD2NCu7bvWKEsFAmKfDFy5WAYsxNz/KYlSkwO5lkMG/KSekng/l0tqhQoFGQMF9Byy4kpvBDTTbWDC5edFVGULUH6GiAUHFHf5Q4vbn7A1nXFqpWX2vhTWlE6y3NSX6LFR/T7k5zmyDHEdTmpeu6rLcJkWeaYB3qj4AlfRoZDNiCfMKLzkoaT8uCwGttbJuc27JmQJyi4O X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(13023025)(13024025)(13015025)(13018025)(5005006)(13017025)(3002001)(10201501046);SRVR:BLUPR12MB0707;BCL:0;PCL:0;RULEID:;SRVR:BLUPR12MB0707; X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0707;4:/UTyEgZJJ4UJouGa93TzEfxsrKD6GOZxLSjnSSfWdCmlVAE6FbqhCpZ+0/7lnHrvwFALqY8SdeCKG3lvFLVvGQWsmae1JsU3E2o8bfzKiISg+U0lR5ZoxaWA1dO9E+Sa30wLTJezDkzG5pHEOXeUIfCdoScfr2bEuXSOh5yPy4zDJPVkaikIaUDsGuL1UISiUaGyfzGLcmgY6jZUYGhWy86OcOq1xjyNO5QS4UCRUwI3I1GSvb9w3oTuMlu1Vo3lI6hX5w6BgxkPZpciCe4yKizY5wkfTUgOECWMBDrHFjqqbBx+jZpF60yTiGzdZ/PHugnuQUxWL4aNE/SqhCOhpyN72QiX4p7LF6GhFxP4vqXtBj1vOlX3osTTswCiZ9D7n/kwQ6Hzta80VUlAOOyah4MPEeTMNwDYcZDF2xYhjxtXe/PNUhYP3r7zd1IN7ahnOKiGYPOIP2NDVxoZ3SIKGA== X-Forefront-PRVS: 0896BFCE6C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR12MB0707;23:sDJxRC6cTer9S5R1D6eFmQEXlnYpCSqeCYUzgr2KG?= =?us-ascii?Q?4VN+xugU29bOXC4mTtizWo05/lB4veDkdMNCcweUASXLSfTGYk1nPKznopZ+?= =?us-ascii?Q?4eAWXl7871xIa7L44qXUjWWMTNN6Co5O6XbyGcnZmnM2o0ug1OF0Mjncwhoq?= =?us-ascii?Q?HSBDQjwL5TFqDZthj4Pfmkb4J0LCgXwpHWuFkP/lmTxrFrWsjAp0sCk8lH56?= =?us-ascii?Q?sUeUlxWqlQeTHQLN91SVrz22Kuj/xEhUGt1g+H4vtEmgoUnNuIDBQTzmssi9?= =?us-ascii?Q?+wo5/62YknJK1MDf23Yo9FVEDITjESj/xhgPzSlCEpfH2Y4BgC1rF3NP4Om2?= =?us-ascii?Q?oVduxqHkDpzxN7N5E/hSP0vVBxI3lisgy3DJPHadqqRYrDjZDBGXwt2I8kTR?= =?us-ascii?Q?e69qo60QOptfTEmG7tRyHI2G9JRQQW2Rg2KxIZaZxxrEOdqguoadvfSLbXM7?= =?us-ascii?Q?C/n3q0QjMIaWI+7uvY+uV5m/QfpCUsBUrd+cblgB48mScrXTcR8qKdLC4Y4V?= =?us-ascii?Q?hONUXmpJfVjfm9oURpfa3hLSuNVnDc9SpjrrXpSWz4fREa45lLzkgaFm5sk9?= =?us-ascii?Q?fU3bem7CzQrnQoxXMe6ZXn3GCWhABqS7fp5HPewZ7MaU6K/L86/LYmCEN4lI?= =?us-ascii?Q?OCxJxcvbM3lEcwadNpuHo7Aq4vlcHisr/ykzRcCfyMSGMa3yx5svlAr+PTqZ?= =?us-ascii?Q?irAJk3ftpE1opi+8d7+U1av6N6x+xyRGYX2Ypza0QdeDvLDNU0CCYVe5gCeI?= =?us-ascii?Q?84g/ID2BgqX81f7N4qcjpbVeUwmIc7poW0Z/JQNDk3gKBZtlMSZMGG+qdX2P?= =?us-ascii?Q?r+0LlTPjWBdRCRzBGZkZ5Gwle6O7dxAWloTPIOp2Mu7MDKQ2WwTC3jQCF/4E?= =?us-ascii?Q?wrO2qcNkN1LhCf52109YL+vt67ooibEwkOV1Fyw74BBJPgs5knYKi98ovznP?= =?us-ascii?Q?XSUcye2uBSwzqkSsqhqyW0iGGFI8dXJ2r8LrW8SvPRZQTAs1czNG6fBrciUs?= =?us-ascii?Q?/k=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR12MB0707;5:qgFKtJJjUQw4ENdqYgZX3ejLPXFKKP7vrnRjhVwgFPXzs6zuLPGJqIbilRMohUMtVq0WL71WKW0XHFM5UJZDwVI72eJ0BccD+b/LDNwmX6cXu1boHgCoN1QLj18aI5HkB4dFp8+nRP5ijCnUGKaFBA==;24:+08ixjdasYGdZYb56m4Zyb6RMk/FpO3wiUheDbFRMCTtdbB9YaFlhZFRWVDbxU6zEekhoXpOAibzmNORWDcv7aCtCVCKF8JLTKR4EUl7N2Y=;20:fsDiQMyT8s6ZJKokuqs6muBwAPpuJye50Wh84Sj7Rj7sT+5gdIsXjp7FNmDYiHm3g5v8GIzg6x8B+Cloj2nBQBahVgiF1l/zVrn5ujB2632VPmWfP73fkO5Dc7zblh6YLIu3Y3+ElfCIeThrNlaSMpIVcJehpm5Q5O/RPK66b1lcqx+NMPQ9ibbyWWONJjzzkN8UysicTLZa6GMVUIwCNo13fXhkzFKU60Xb9qGnKqEerJYmzOUuSVkWWckYbHSI SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2016 03:01:44.2501 (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: BLUPR12MB0707 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 28, 2016 at 11:29:52AM +0200, Borislav Petkov wrote: > On Mon, Mar 28, 2016 at 01:32:12PM +0800, Huang Rui wrote: > > + > > + get_online_cpus(); > > + this_cpu = get_cpu(); > > What now? > > get_online_cpus() is enough. > Will remove get_cpu(). > > + > > + /* > > + * Choose the first online core of each compute unit, and then > > + * read their MSR value of power and ptsc in a single IPI, > > + * because the MSR value of CPU core represent the compute > > + * unit's. > > + */ > > + for_each_online_cpu(cpu) { > > + target = cpumask_first(topology_sibling_cpumask(cpu)); > > + if (!cpumask_test_cpu(target, mask)) > > + cpumask_set_cpu(target, mask); > > + } > > I think you want something like this: iterate over each core and put one > of them into the mask. > > core = -1; > > for_each_online_cpu(cpu) { > this_core = topology_core_id(cpu); > > if (this_core == core) > continue; > > core = this_core; > > /* get any CPU on this compute unit */ > cpumask_set_cpu(cpumask_any(topology_sibling_cpumask(cpu)), mask); > } > Yep, with new x86 topology for core on AMD, using this way should be more clear. Thanks, Rui