From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752032AbcCGClp (ORCPT ); Sun, 6 Mar 2016 21:41:45 -0500 Received: from mail-by2on0053.outbound.protection.outlook.com ([207.46.100.53]:1957 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751717AbcCGClf (ORCPT ); Sun, 6 Mar 2016 21:41:35 -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: 0O3NDF5-08-LA6-02 X-M-MSG: From: Huang Rui To: Borislav Petkov , Thomas Gleixner , "Peter Zijlstra" , Ingo Molnar , "Andy Lutomirski" , Robert Richter , "Jacob Shin" , Arnaldo Carvalho de Melo , Kan Liang CC: , , , Suravee Suthikulpanit , Aravind Gopalakrishnan , Borislav Petkov , Guenter Roeck , Fengguang Wu , Huang Rui Subject: [PATCH v7 0/2] perf/x86/power: Introduce AMD accumlated power reporting mechanism Date: Mon, 7 Mar 2016 10:26:40 +0800 Message-ID: <1457317602-2903-1-git-send-email-ray.huang@amd.com> X-Mailer: git-send-email 1.9.1 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)(164054003)(189002)(199003)(15975445007)(4326007)(50986999)(81166005)(2906002)(101416001)(92566002)(53416004)(50226001)(1220700001)(1096002)(229853001)(1720100001)(586003)(36756003)(87936001)(106466001)(77096005)(105586002)(5003940100001)(5001770100001)(19580395003)(5008740100001)(33646002)(50466002)(575784001)(5003600100002)(47776003)(189998001)(86362001)(48376002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR12MB0716;H:atltwp02.amd.com;FPR:;SPF:None;MLV:sfv;MX:1;A:1;LANG:en; X-MS-Office365-Filtering-Correlation-Id: 141cd322-5986-4d0c-6af9-08d3462fd385 X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0716;2:ZuryRcqDFzdnHcYXzppJW4Q7Iq/+RWyDWYg5DFAJOa8Xa/JUEdCtR+r9AMjd8tWAxuRWPAt6Q1Np2ZxECl14aejhow/at1p4CZxYZv499Kq8RY++iOg4GhuNjV1T+OECUWfCi7P5zXpxXWvTIiMcX4jLrBm7grIeYUPzdFXfIGwg45iknwrR3a7Ob6Sqt/s/;3:/gnFsm4cxibWhy+OuJvID7esB2KRKGGFffkZSClW3tBL4H7MIx1AOpigkx9KZi8oHc4Qq6q3zrP3QBV9DftfwtYMKwwVHzHKKCQu9GUNCelbveVlMQ1p3uDqbrz1KfdQL/Vhx4v3eCxH7yalgWjWAbQiwAKR44WDtVWxERmtwlPEbiymP89k3P5vXg/tb0tVPfp9PqGjcc/+XPE6BaQOlqlwGBOvEHVuK1uGuAFfRRE=;25:b8WBhHc3hnYOtsnSUyVvDIQB2gI9/7Vs1rIZBBjvIWXwcsFMzjfWxferKwePbFJu35MscmWJGG1VTlBgTFwH7sCT+2Ba4+Ac7B/ANtHXoWXFT2IMJYc1Xz2VGBWEgK1czoSD//I2l7l5qN1OlIjPVnxVF5D8OoHBIM/RAV/Xu2ncFhzYrRHE7Bl0w6Q6UqRKOM7s4MryI0rhrFwbHjpZ0zYpdJcFfHLRES0yZlRDOnwEG2mMkicyJIkbjzXTcNYmjWJYAmxVqVIqJ1LjDA5m3/nRUUGrGFBVv1Cdv+7/xrOR0bi+Hj8HYP9qMFRtkWw9WzxjxsfdVcUAZHrrBkkuIu6gUg67EZbVFMIt1m9JWIc= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0716; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0716;20:fXO77NIcVKPQs0ImJgQ7pN48p8g8l6LQP5fk3F3CR2nB6rqQnfvz6uDKutEGNwu47PGSG19Sej4X1Jw1P/VZNQyMFWN+2UFF2/8/nl3BY4xXfbIfTA/M8oYGMqZ5/zk/a83uRFy4jsrk449xmYQhOFcfSBiCCufR5oCJ1JD12vHjO+RogUOauyM20EUlnUUoUklpQDwJtz6darARhIow8yub9P1qFc472vD92CumKDMFy08K/KlIXHY0njDZHQ0NXyx8JF/Xkl/ERY1wuNstBU5DLCDlABk7NP8h1xyUmxW1WG4tBnAqJo+/N5oVGJ+2/embFroT/dlBndBRtJe7XYOaa0CQpD1lKH6B5UQLAfMDOkAu4Cwv2P/eiA/2quLES9LkFch5ZOJoEHthlTz+furhrQ+0+g+5ekwd3bx11VpuZmY8Xlfc7KUYuRvARXwETV3Fh8ahH4iuyIug5xPCNPCOEY4ZsvNf73GuVqap+XRUHWKidQW+w/qpJU2avEtx X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(13024025)(13023025)(13017025)(13015025)(13018025)(8121501046)(3002001)(10201501046);SRVR:CY1PR12MB0716;BCL:0;PCL:0;RULEID:;SRVR:CY1PR12MB0716; X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0716;4:yJ8ocKjhmI1jTJPvzrEajN7AJGfOySMHI/0BVJVUA6NjjIonLF4bkT8OEv1YUx3rGzzaJsVQuMq1HMmSrIGWgHrRYM2qSimzs4ZtYj+/qvp2+mZN9S8C8FVRP+Z0++2njKhsvFbtAmGNz7tMR2TmaILiR+nUb9/A0TlwcmxFkME6vxjHLeQ9aFtV4aXbKTfaBm2pKAJ/ZaMdnjKo5S4TH/rwcAl+qSnAjZoEIX9N20wCYSm+cPjZMlTqQ1CEolxNnLqUf8fhAQQ3FhINzDzbqdq1MYBM6s1Htt80iKOyR5ODRneCY1dSGsN8K5XUD+t0FcUbawtb8pYPH0w2wHqtjH9tofIrhwfqSrP3SCkGtBqDLkgXBEhkiZfDRlJO1sbtDnH8H2TVACu5LQV14eKlJoHvuYsmprese9DDel3KqViLqEE+KW0ZILgW1c09LGVO+el9i+VR3ImFEkZEwH9wIQ== X-Forefront-PRVS: 087474FBFA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR12MB0716;23:rallGTL1pw45HZ0ynk5mVqU+mqCQLxZskXyQvaDwZ?= =?us-ascii?Q?p6aENW1nR7ZmYgq/+bW/+Vil0E70G7zGsGPn8kc4adO8PdTo/jfILoy0aoLQ?= =?us-ascii?Q?5CXe68ig9V7PJsvfEol1rOAQb4akNJPh9cjQuLBs5w8h3h4tk7qjxQzvthEf?= =?us-ascii?Q?RzmAxRscUTQwt9c2bRmI271Dr9XQGumRYsNvBmUkWN4XySb88uaM8mErv1kD?= =?us-ascii?Q?ryhvuK1aET+hl+CdXjTbDDucioBRQUlflsOgTDGKAfS1wrFrXpBJl4Kp2MGx?= =?us-ascii?Q?k+fzyN+JPuJ5JgdwIsgLDbT/DLs9oOmkmgvLfO4xAV+GmUDTQwCXcbexpPwP?= =?us-ascii?Q?pQNOAQzh+NdlfPyMqgNh4dQRVQG9AYezmjP1rAZCa47rJ5G/D0+eB1Z0CDy5?= =?us-ascii?Q?dD0vjlwtjagYu+9gVrYbEcLr4IlPPJqxbWit9J0M71pqSjm/x8Xcd0jMJhQE?= =?us-ascii?Q?mhk/uI/PsCGyh4cJPO7X8jNTF8G7bRoySsRoUcePUe/QgZyjP3AlIkz7YYZz?= =?us-ascii?Q?1viAiRoObz3LXOwUZr7hA5ysteA/kTZZ0u4JWmrIBkI7W5K0hV3rQpVUhtIz?= =?us-ascii?Q?sdp5ZHcr37H5KHklKrRLvdncb+sBhSULlV+IqdZWveRxjN1SIin9tf3FgN9E?= =?us-ascii?Q?Uc/AFUc+kJvi+fIm6MSNwxcvZsoJKNm5+LgELqzOsDSUvKV4C7LJUqvfNAZ5?= =?us-ascii?Q?d5mlQgwqfRLv7G4bRz/FRzhN6m0haN7zA+PPRW84weejLoY3PTkuu5UfSHrF?= =?us-ascii?Q?yx6aZtA+IblMhFyfk69As2Clrri2UiU3JPdz+juMdyHLN2NICU0jmF/B/BxD?= =?us-ascii?Q?X5IA8cbSX8C61aIhrilO/JlIukecDtl3G3lLXH9GN9L1AXmriqMsvyjr64gt?= =?us-ascii?Q?K918rXK3pVa5lBcXrJVwWQBwMopqJN6fQFrNHkYgQaZzRw/Q1CKl5xak2SYN?= =?us-ascii?Q?hAlokOKZJeqhJu06cLUT6hm3BTzUFMqeG0rkSX5ZFP5NOyGAhFcDKPSZNQC5?= =?us-ascii?Q?rJZ3oNGo/UYd23j8NzWNrNz?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR12MB0716;5:UwKqPHpAdYXKkJQEimzyL2PsKNzluxAfJKjSBmG3jsuiiFjUzHm33MyP71JXgZXU6Wj/m6MCT5QHtPeg4bW3Da6h1s+cBtn0cDM9gJ06vsRSvwunGPHRQ7nNJV0tF45JkIgFgh/T0YnXD4NGjT+XfA==;24:5JfK1w2r5C9xVRNXxUELZaadBBQ/8+jfBQEqGDJQn3/Veg75LuUCuwahCyVazNLZIpVQJNzcElurEJ2UXA80g+g3vHgvjdg60iuTxZNN7z8=;20:tsph4WjX1BzKcMw2Cr17ffe6T1pwX7yHG+eBXvnJsrG3Ix9qf/zJHpfqC+gvPn1ZtGSbjbxDFaOzMt4k2Wi7UqUScaUKiu53oN8QC+0B20tTeIuqmMRlhaVS6u4v+DhBsHXhXGpzCiEhmjjpe27EZQwoX5SjZx7+tpWkffZZx/HAlQqpyPCIW+9SNEx4TWS0R2SVXiaRMrtdlVQyXHGSpD+UkvBZ/4cGVngedrJ0zc29srkcWm3qpS8KoQYW3izQ SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2016 02:25:55.2522 (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: CY1PR12MB0716 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, This series of patches introduces the perf implementation of accumulated power reporting algorithm. It will calculate the average power consumption for the processor. The CPU feature flag is CPUID.8000_0007H:EDX[12]. The V7 is rebased on bp/tip-perf. And need two dependent patches at tip because of modular perf driver: http://git.kernel.org/tip/675965b00d734c985e4285f5bec7e524d15fc4e1 http://git.kernel.org/tip/3712bba1a260ad851f3aa8ddea9cb7326f6aa0b3 Changes from v1 -> v2: - Add a patch to fix the build issue which is reported by kbuild test robot. Changes from v2 -> v3: - Use raw_spinlock_t instead of spinlock_t, because it need meet the -rt mode use case. - Use topology_sibling_cpumask to make the cpumask operation easier. Changes from v3 -> v4: - Remove active_list, because it is not iterated. - Capitalize sentences consistently and fix some typos. - Fix some code style issues. - Initialize structures in a vertically aligned manner. - Remove unnecessary comment. - Fix the runtime bug, and do some testing on CPU-hotplug scenario. Changes from v4 -> v5: - Remove "struct pmu" and lock from power_pmu, and rename it to power_pmu_masks - As Peter's suggestion, add a new struct to hw_perf_event, and track these values from per-event. Changes from v5 -> v6: - Remove MAX_CUS check - Remove DEFINE_PER_CPU(struct power_pmu_masks *, amd_power_pmu) - Remove power_cpu_prepare power_cpu_free and refine power_cpu_init and power_cpu_exit - Use smp_num_siblings instead of cores_per_cu variable. - Make this driver as a module. - Add a patch to export events_sysfs_show. Changes from v6 -> v7: - Remove unnecessary cu_num. - Remove unnecessary initialization for target as nr_cpumask_bits. - Refine power_cpu_init interface. - Handle CPU_DOWN_FAILED case. - Remove unnecessary tmp variable. - Re-write the initialization of for_each_online_cpu(cpu) loop. - Move __register_cpu_notifier after perf_pmu_register. Thanks, Rui Huang Rui (2): perf/x86: Export events_sysfs_show() perf/x86/amd/power: Add AMD accumulated power reporting mechanism arch/x86/Kconfig | 9 + arch/x86/kernel/cpu/Makefile | 1 + arch/x86/kernel/cpu/perf_event.c | 1 + arch/x86/kernel/cpu/perf_event_amd_power.c | 353 +++++++++++++++++++++++++++++ include/linux/perf_event.h | 4 + 5 files changed, 368 insertions(+) create mode 100644 arch/x86/kernel/cpu/perf_event_amd_power.c -- 1.9.1