From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751109AbdAMAsz (ORCPT ); Thu, 12 Jan 2017 19:48:55 -0500 Received: from mail-sn1nam01on0042.outbound.protection.outlook.com ([104.47.32.42]:10144 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750980AbdAMAsx (ORCPT ); Thu, 12 Jan 2017 19:48:53 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Janakarajan.Natarajan@amd.com; Subject: Re: [PATCH 2/3] perf/x86/amd/uncore: Dynamically allocate uncore counters To: Peter Zijlstra References: <11f5b2f7a63c0123cd2f9ba9cb4693c6feca1205.1484148262.git.Janakarajan.Natarajan@amd.com> <20170112092037.GB3051@twins.programming.kicks-ass.net> CC: , Ingo Molnar , Arnaldo Carvalho de Melo , Alexander Shishkin , Suravee Suthikulpanit From: "Natarajan, Janakarajan" Message-ID: Date: Thu, 12 Jan 2017 18:48:40 -0600 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <20170112092037.GB3051@twins.programming.kicks-ass.net> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR14CA0016.namprd14.prod.outlook.com (10.173.157.154) To CY4PR12MB1798.namprd12.prod.outlook.com (10.175.63.16) X-MS-Office365-Filtering-Correlation-Id: c27a9632-c882-4d0e-2d12-08d43b4df12c X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY4PR12MB1798; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1798;3:A3ridQj6dCtJmGDX9e4PDjsvEN5Hm7cdqNyl/1L3CWYEbqXGxx/qGxB8KADNvLaFPYHFGa5j6GVUUVHfEmfRZ55WF3CDpWUen0lqGISyCbFUnfufIfmTiv+e59VeNBb/V2E+eQbPH8bz8rpfzqJ/XmEj6sYpfVhw8cZbsAEJnpceIAn0j6PqFEpREzo2OA2Xe+t9zuTJkoGFIUZfpA4OjXkmHOChynySMbkOGLlp3Z2fi6tS0581dcLzRBaY87KdOQu3eJWZERZdkM7DLF64hw==;25:BFkemW38Y6ScENPCiEq7lcjnxccnU08rfZC7Qn2mTYmKHuuxWZBvbdxOABml1VRGEv03bodIF8CbVAIA6YTZIdMdvu/UT0ibNXdFGe7E1kuPtbek0LPRYrtXCt1xDRKnhJkyuIa+uTlKffAUnez2eaxkeexf6cR0N8SwxFqzSgWWFgvK+WyoPKCUzkhm5Uj0+TjtZmiscfl5ZsXQydKiz8aHzDERISUbaoV5uK9e6pQHAX0NVZOZDtKVnTYrSSrB6xeUv/uAosEjVyihhJ/ZQGN2n9lNbO3PRMNAvuHAAeku0HME4fj8Zw+UnlgPSVKhrP62z6bNCkDSn0KkhPlAdejX7sgDGndM1OChlVlqhQ3vVJINPPhgN6rXyQMTHJghm+KytR+xqq4PmIdc4koXUCME9Bv0IP4NU8pHaFhqcbZe1GGIh9wIcMvMuWsMu2FvBUrpkGSsDPXrx7HgZ2HOCQ== X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1798;31:pl3u/HyNcyW3g7PDCrTJBeCvGWaRgjpZDlEFNIUh/l0sPu8UzNHd2iNnobmwf5XyhVKRVCXifMVPjLurQKwV+vuCKccLHTTdSUquUsnmmMSqgTefz+EK8+PdDzwRiWjvyzAz9Nvw+H0uQz3UMU1f3y0nMpFg/mptiX72RyLQRfiijbJYmZD/peM7ps899tgJh9948A6B4MD8/O7coPTDjF/Y4A5Jv89PhZOfIhGmIgiLbZkhcbFXSFUfSeUZkEWn;20:8K1/T7uDdY0F5fbNPjYm0RkQBoPkQLbKTG8+K5GZ2GZR/FJmW6+MiZ8yyJz/uxWZyQjP5Msgt2UwHBPbb/fTOOf02s8liSMpT6oE/Si/GHrQHTz1zCaJg/yHbU00Jd+g0swxHtIdk40CN1+/3b2xt8VghRWEUwvrZJy+itknA4vc97s1Zq17gy+xotQov80ardw2Dr4ekV+l+nYR89IoYZX+ZuQvq0kZJfVEQauY6F9FFUxKWzbmCLhzcsthdDK0yWIeLSykWQkE/1PMdmnGlO7HOXuAlXncCYVHUuFEhAahuFk4NPnRT06RqZwxeBLS+fjySS9IEgmVggDKRTUGlMzaRqAtzVqo1lVQJt5+xPECUXCgwi2nElEVtUekdlClG/H5wyO0ajU1uLaxJeHp5s3vJdx5KaNim3X20im6YvR0CvJEc6K9osSqi954rCZ1qwVtd8LRP8p/4UypSLAcogPDH2ZCPs7/HrErfnquZPyiSfEdIfGFsyVUSI1jRSxk X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123564025)(20161123560025)(20161123555025)(6072148);SRVR:CY4PR12MB1798;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1798; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1798;4:7jv50OTt1rpZZiyQ4O2o4Z93ko6Z6g1n0xTCmQulwzaq5rMzGxeaXF5u2W1ti2rxMyIUK62AZS27LfwwZbbn2+OkbK5o0gVc+INmu5ScGJtPLJ/4YVjKPQCuZ9kxElChG3f5UUqBmjA+hNnK0eHX8beJo6cSoFsm8zaoSBHvVNoSNioa5Y9m5o3ypzr8W7IRaY/d4GgMNzYllHqXHhmewI+YpHwi+PLEc9HkZTbcwaOGzzV6aeh73radmSWEMujehAR6zE6BbQUIcSP6pA7EiZWq0k3zy51Ax7moxV2Ky8urR0y08ow/hMuJuQulXNLu0W4rmsO4DcYMrlbhpfSa4+itEX2Xm+NjzCltrUfzf39fD45zsCeM90xbbTICsfFUpxkgXLUpzc9L8Z1zISnVVYByq/jA2WQwXuNQjtI5HKaYA6+qKpVaUl+igbFuTVrs0g54U/69GnHRY5Y3OlcoN9ehlHvKpnbRV0KlzJ0GMZCD8FRKRedWnVFGlXNKc9fraEcwAozy40dxEYkdhz2HTKro6wbcd79Ih4Ln/OqJvKbPrsol/UKFV6scTd37In8YCqRkxydlZnZdKQwwFQBDO3phiwhKhpuneULwy94hS1HRQyXprAIUftUphxzyo3ol X-Forefront-PRVS: 018632C080 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(39860400002)(39450400003)(39840400002)(39850400002)(39410400002)(377454003)(189002)(199003)(24454002)(36756003)(83506001)(97736004)(38730400001)(77096006)(229853002)(6486002)(50466002)(8676002)(101416001)(65826007)(65956001)(66066001)(230700001)(3846002)(4326007)(33646002)(65806001)(2906002)(23746002)(90366009)(4001350100001)(6116002)(50986999)(76176999)(47776003)(86362001)(68736007)(54906002)(110136003)(6666003)(25786008)(64126003)(31696002)(54356999)(92566002)(81166006)(42186005)(81156014)(31686004)(2950100002)(305945005)(6916009)(189998001)(105586002)(106356001)(7736002)(5660300001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1798;H:[10.236.19.193];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;CY4PR12MB1798;23:l0tmkMeW963JDxXbHitbANIvDQKedbgOpGJRb?= =?Windows-1252?Q?kKXvB/FSNq+ZlVU3IPDzsnaWzT4CxJ3dW13PcXMJ5hC4HyGg1poow4Qw?= =?Windows-1252?Q?jTisTqBfdzJ6/k0soo/TI/LXkWrTTbbw63gv9sAPfX4yDuT7sCkyhrby?= =?Windows-1252?Q?Tbaqdk7U5UJ3di+7ZGU8dEUBppHO39n5PZNl3ZKT7Nnty9/Fsy70su6W?= =?Windows-1252?Q?3naBSGyKV0CC0C98Twjn3cdC/eTOwxxjXK/TBJXHzflJrozfVApprmhl?= =?Windows-1252?Q?U1D0tMO0xZv6UBmsW8+26Bb/4fQjWPqoXlPm7jJdgYgwxYLauYZRJViR?= =?Windows-1252?Q?WOptrGl/sIyGouJDesdkovj/vuP7mJUGwZjGkG4SoOY4ZHbT6B1kUjKK?= =?Windows-1252?Q?RUAzisfoIkC96VAY/2PFBpPmGjXSwnaoDWK3RCEK5RhdUePhUvm2xFJM?= =?Windows-1252?Q?mdEe+nuyscE9ihbv0LAVXcz+DQzaPsZkXzKf9Bbc8WlRhUgXY7gDrEu+?= =?Windows-1252?Q?TS3uRe76tESefOG7ICAlP/ydPDsiv6Jbx+Uqq3lu3cUs7jvj5iUsv8dK?= =?Windows-1252?Q?InUCBST7Bhr2eM0nk+x+n/aZIYmpKpSSMx3FwOytUKhcHg4lKBOxYghR?= =?Windows-1252?Q?H6tqEM/VyZ5Wfofnr8C1LrKdViaOouPwmrVo+HrOhqibbbXxJK9U18Of?= =?Windows-1252?Q?yzILyYD30UDCbZ1pEJdFTxSH0xEG7zeqUqeq1De6muzOUltAIylQyuuc?= =?Windows-1252?Q?0+nFCbVDbVe6atXXnpUDqiOgJuIRqSZaQwH8WUu+F2Ex9+cw/5jbtSA1?= =?Windows-1252?Q?4SAYFfDYsEhjobd4y0KXGvrdvVPodOGtfRbFV+1QR6qtzolPkyYbi0/D?= =?Windows-1252?Q?XEfbOw6W7i6tm2nWvftqRjjj90GqJ1Oz3HX/vAoEy20+KDxrlyQrBa8p?= =?Windows-1252?Q?iMlWpUKEA/OBeKg19oX2jHQWPPxbSFIBqifjnou/aBgxesAaUilikJwe?= =?Windows-1252?Q?WDmTUAtkokhcm+Gi77rImd/qbQuJAS34qEuiMlIezVUOY8LCxjAcC5gQ?= =?Windows-1252?Q?8v6t9ObKXEOHJRsNwlCUDEz5lnFdVVorerTzFgBt3AZmOMvbuMeLYkh3?= =?Windows-1252?Q?6dytocAPUybQNG/47St/54wc9oaLLKWLFAo0Mcr3xMczcyg7lk9JCp+B?= =?Windows-1252?Q?k346OrCGZ22DwyowtTYcKy6n0DHSm7A83vlwd5uMiPs5ZmMtHras9/r/?= =?Windows-1252?Q?5cIviSIR54mWE9+sFaWoSOrflmysGoO4fnctriWc2asIeVVWgRsxSwx7?= =?Windows-1252?Q?UxNVlvLf5LkwL0m9P/ysMm4O1lYfNpE1M/L5BV7bNtoJcuXJq45FTNtr?= =?Windows-1252?Q?dXDVQfA+CKEcFD31GDP/383MjC9P+ytH8goyukTamfPBsfhKyQbJsdfY?= =?Windows-1252?Q?WneJb1gCo7VMV+f8rWXYSTv7oer1fIagh3mYYbyPQwmJiDVqo+sfPEjA?= =?Windows-1252?Q?Ew5QRMcVZ6nO/0YtOOMkLaqPbIqb9OtkXjmHpn4wFWEkOj+5ajMexwbl?= =?Windows-1252?Q?9xcEIhZYlTKgfGOdRW6zskwtk/Ls5lBui0q?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1798;6:AKkZGl/Jap8V68Z9O8NZziLFz/PbqK8bNdFocW6O1FvJedg7ZWb/f58AKz4ShFV+uLV+Y/FjDbh2gpehrKDweyQdjQSpKxqdxbnIY7NvJHofRWVdMfDnJjoXBzkNgYxDGIhMOkmx7z3NyEamiCBso7I/1fLgb0gGVAFZBMBV5w9t2BLCBv/ppiOXsYhaBLWbhtDNEJELQ9kfu+rYAKCDErzDy4r6Ah9R6IW7yPqo8sApPrhy7oPVpQRo0fBXqrZ2ar80gu23gbQGeIh5SRyug5fr6ni0qD8BFDBBDY1J1h8adU7HoSH8os50WjUCisjObUzMjyWyEzbHxxogi/G1m8ibSg6TJ9kJszelKNfD3b2vCzwdZTJK5pN769jivxWEC7BfuwhpY23Be94c5Gfw+8oEsUuf+yOqFQKbx33QtPMpIsSsx+f/tjYxHAQpVplrWUye7mqJQbydUZu6DnTp6w==;5:ZR2mm5WWfQFC+RSMJb3IctnqnxvBl5jqu4fBfJ4z/6s2JcS1rKQof1zJuoGcaGw0zm3MxeYzgBihf5KNWmZlQAQFcnA9SQrj89LwMyam8nYQ1Go4GBv+GTQFLFE0FPlJJ5So+x82dGLwIySvkC8qbAdZOf86mEITWJ9cB5KXhgM=;24:0h664MI+QR06z/yfHrKrVMLm8le4kUEwMtbDbHiOdEe+Bv8/+40U7+kBQQQgYHSStj2PWlbfuK9ezwekXOa8nohjml91sYRGnmbeKN+Lwg8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1798;7:1mOWpmw5cap1UtV+xagfWbjHRApq0/PC9JOTy4zlFZ5aRRwQnWeL4/6FMasDghqcqqJkKwdYPMQXEYOdx4wVNEvF9rScf0UOsui4E61o+tA1F4vwpzxn9S4lnLQs8eCoAcey2uu6q9bfUUzg48b/Feosh2tzcfpLPBRrzp/9LAlj36jTklGmJvDJ4d3sXQP9mc0KTV3SJpQe/kif6muapZ/FbhHWbMDREbsM0P12dJStbU9U7mT8VDJ7tf4q46/2gM9Sa6ae9mmCWDttyRJC6MlblSrEOo+i22iVZdQUCXiEEuNYiiEqzKrLbgVvs9Lj8BN7CCdANozj0rux/5L8r26BhJ2Q7mLlv9Su6IXpXK1bRYnHR5gWJTBX+i4N84lFXeW8cnFujTwcaQtofXJ/lEgOhJrEbTv+G+cMwIin4VLR+FHxdjr6xGHG2vTrvoe9wG3qD+V8c4+kEiKOwHoqaA==;20:09PKEwD4KJx8LLOiv/Do7cWz/GGXKKiOFoOvK2DdgdHEGs8WI/O0qEjKtP9cvMfDpWKJYA6QgfyFjIasHnb8uB5TK9CKp+3TjnBSAn0BJCkggDC10JC7IGB1NPBgiMc1YEhvvtvAsZSxfhYwV6Tcgloo/Q2gF0/KIOII13DMvzktnx8TDcrd7UZVCOMynsOtVVFZ2ieEApSUkd7aqF2ZlpqhaRhEEXDxml8x7d+sI7iuiLJarEIbfTSCXaJMoN5k X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2017 00:48:50.3100 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1798 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 1/12/2017 3:20 AM, Peter Zijlstra wrote: > On Wed, Jan 11, 2017 at 10:02:17AM -0600, Janakarajan Natarajan wrote: >> This patch updates the AMD uncore driver to support AMD Family17h >> processors. In Family17h, there are two extra last level cache counters. >> The counters are, therefore, allocated dynamically based on the family. >> >> The cpu hotplug up callback function is refactored to better manage >> failure conditions. >> >> Signed-off-by: Janakarajan Natarajan >> --- >> arch/x86/events/amd/uncore.c | 141 +++++++++++++++++++++++++++++++------------ >> 1 file changed, 104 insertions(+), 37 deletions(-) >> >> diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c >> index 24c8537..7ab92f7 100644 >> --- a/arch/x86/events/amd/uncore.c >> +++ b/arch/x86/events/amd/uncore.c >> @@ -22,13 +22,16 @@ >> >> #define NUM_COUNTERS_NB 4 >> #define NUM_COUNTERS_L2 4 >> -#define MAX_COUNTERS NUM_COUNTERS_NB >> +#define NUM_COUNTERS_L3 6 >> >> #define RDPMC_BASE_NB 6 >> #define RDPMC_BASE_LLC 10 >> >> #define COUNTER_SHIFT 16 >> >> +static int num_counters_llc; >> +static int num_counters_nb; >> + >> static HLIST_HEAD(uncore_unused_list); >> >> struct amd_uncore { >> @@ -40,7 +43,7 @@ struct amd_uncore { >> u32 msr_base; >> cpumask_t *active_mask; >> struct pmu *pmu; >> - struct perf_event *events[MAX_COUNTERS]; >> + struct perf_event **events; >> struct hlist_node node; >> }; > Why bother with the dynamic allocation crud? Why not simply set > MAX_COUNTERS to 6 and be happy? My reasoning behind using dynamic allocation was to prevent memory from being allocated when not needed on a per cpu basis. If memory isn't a consideration, I can send a v2 without the dynamic memory allocation.