From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752661AbdBGB6z (ORCPT ); Mon, 6 Feb 2017 20:58:55 -0500 Received: from mail-bl2nam02on0076.outbound.protection.outlook.com ([104.47.38.76]:26336 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752543AbdBGB6x (ORCPT ); Mon, 6 Feb 2017 20:58:53 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; Subject: Re: [PATCH v8 9/9] perf/amd/iommu: Enable support for multiple IOMMUs To: Borislav Petkov References: <1484551416-5440-1-git-send-email-Suravee.Suthikulpanit@amd.com> <1484551416-5440-10-git-send-email-Suravee.Suthikulpanit@amd.com> <20170125094653.GO6515@twins.programming.kicks-ass.net> <20170125095538.42n2dnmdkhksuplk@pd.tnic> CC: Peter Zijlstra , , , , From: Suravee Suthikulpanit Message-ID: <5f33aeb4-7296-db7d-ad86-ea982f266040@amd.com> Date: Tue, 7 Feb 2017 08:58:33 +0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <20170125095538.42n2dnmdkhksuplk@pd.tnic> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [171.96.222.170] X-ClientProxiedBy: SG2PR01CA0088.apcprd01.prod.exchangelabs.com (10.170.138.142) To CY4PR12MB1446.namprd12.prod.outlook.com (10.172.71.138) X-MS-Office365-Filtering-Correlation-Id: 3b2cc99c-c2f9-4c50-0703-08d44efcdc55 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:CY4PR12MB1446; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1446;3:rvwYc48J1yfFNo+BSTKfbhYXMMkTh47cbayYRsobeAKzV6BnmwgjRp5wWcaVt2qx8IpdNrTrSJ3M28oORDhBJOhSva98itk4Qu19W6vi2jkSaN5kQlZanB1J4bdOaOAQwTY5cbbc7UehRZx5e3NaIVTM1kp0ZEHP6GCAeCjE1VZNUouHsK2HUMziAV420m2VI6S6CJ3q0LtFsdKHtsuP1GcaCfea9mMN+W+1/0V329LmhiPjI912yNPAoolDYHRbnzaMnTzE3XCwGo622ZQvlPuu8aMIjgB/vsq8N4g9kwo=;25:2AppzcX/lSaaW/UmrZhDLd4XQIqIWPMsC2ZFD8F0+BVJk1Bf/tSDN/t5Tmsm+tnymqj+DRDKu5A1gUK8Z+pPpk3SCz5QzADhFAjQNWqxP6sNWdiVsE5Mc/VNzDHD2U/O3VRxAXivYhyqiAjmy2R5//ipWt29bvD/VksKKMOdXbeu1tpIWoN1MwR930+M+J1Dm6VzVaruIWW6gHJaAWhaofPgv8HcNOQlzC+ugf/lcB4flSEZI1EpA8fghZwKOxtZCfdk+Mcmxvp9MLRS2iaeMH5XvivoL/7DkwTE/ldevB73xhRZPNB2u79gxUnQV9pmTdj6Nu84zN2g1fNewtdru0iwQ1uy38Fz7VHkzI+3a6uWRb1xA3CSShvcf8fk9uFIhGPqWSFoqkHg7+st/npT2EghQVJxKTExM1urgTARCAa5ajCIHq4raFqeQjT0XV/8AF9MzZqLjX/YXgXAG0ccLg== X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1446;31:9rHwoYP4v6Agh6/rdpgQuMZ5qE1xmCwYRTz3SP69lDLvd70jIFPzc8UXW5UwKv36oUb8AlNbWj3RYkE5/OWSv1lkX03+B0W3P/w8ns6qbzshtKdHeyA52EOQM/MQiSKmtHjKLsOb1AvQx8YcFOaT8DUn5Px7voEZ9j1kZmRUFD7TAB9hvcSrCQ891sy59HISREw/kQBggbZAXGYBCPslKTTfa0Il1o8hADeC03zg0eam0D2tzPR+AgAsMaZU2EsLlbTFCl+oZFl4h/Hhpz80fVxvyuo4my98BMIz72mJ59E=;20:TMtfATF+CDsk/Qn6hpLmUJLnHKZLVVKtcaVIKYPREaMzRYB0RPwLtyQ03RvSTThrtcMYklefg6Z4ARmRo9Zc/iYCFdZ4HQeU5rJvw+O8Ymfsyp5RHOxeAG0y73tYhY/ocqkQU4ZsqEe7McfHiZlHtYnczGj+boP/5pEiCDMoGX3jdA3XPgrXAKGu9/ywGaDgQhyyfFZlnMUmhaHZPHtuian5SHd9oiWfboOT+qIOVthx8RV0knQzU9adeC7DuaLXSc4cfmqMERT5W+r7T/BXuHs3HhP0CnhX0jFFOvVyylTCPn/Q4WSRA3vzpk7exv3F9dAbd5QDDjab21wdiZ8UWSzqRwR84paespHyMvAcKwOXCNw3JzQup/6oXiWXH7h04b6dPbtNC9JOyJbPlqYpQ09Nel+Wv6Dw8RYijHmDpQkSr9wg78XT+8OkvDdN87UUa/yC2nxfkHbb7FXsUAuXhG3fw58T3jF8DiVoxVF9PGTjUkdcCZZXmOSqQVzo3KTH X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(20170203043)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123555025)(20161123558025)(20161123562025)(20161123564025)(6072148)(6042181);SRVR:CY4PR12MB1446;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1446; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1446;4:shLqaNiexj0rcIKL/h/EjUAWOHZDmXpyEAGnwHNHxjuuFVoHxfNPvmnMDIJaR1rm27VT5RQ+xb449X9gHheFI2Fs9uR407F/8ZqAtthcEqWnsKExni/TuCacKa7PZU0S+3s+kW+vos/PB7SgTCYForPcXuZgPkjDckczz6vhtO0GlK9VU6YVv900bUPaoAfn1jFBicxBXksExBPgDGvNkbRnxSxbaflp8s6rhWWAvrTN/KbwftbeLX1COexqAFhtmy/7DRxbJ2rK0lXWVIapeAndvkgkh/h5HPa6JNoTfBszmHOmko3DfbZYdjdRJL7kYnxVPST5OYtv0dxqT+gkl7CXeXr9voL34XkkIOIjQVTFuHKlQ08R7YUoyXCoPnbwfbC987qdiV2rFNOCmbcKMeZmPnONVM9vBENSEhaIxudqNVUxJMuBgmnBBWw3Uugc1KNIIv5kXC56pwh4JpF68izlWL5/jYyKvNniijr+fwY+h2cBX3ZOXygshsUd3FQkIZglC1/VS+8xXpbicRY1xg0W04CnMdd9kX+vuOGZIELMKtuPYQQqSx63wQxsSVDf2H3/Zc9R2yEU2OmkQH7I3ieaYs4Wu4yNwVUtZnGSisi46/O+G+yHKj62J6qPhcv+xKDhv6T8OsZsO5aXi1IVk0VvlnGAgRdvxGokHEmzFSM= X-Forefront-PRVS: 0211965D06 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(24454002)(189002)(50466002)(7736002)(305945005)(83506001)(31696002)(65826007)(33646002)(93886004)(5660300001)(36756003)(86362001)(68736007)(189998001)(97736004)(230700001)(3846002)(6116002)(64126003)(6916009)(6666003)(2950100002)(23676002)(4001350100001)(54356999)(6246003)(53546003)(6512007)(81166006)(81156014)(2906002)(65956001)(76176999)(65806001)(6486002)(66066001)(38730400002)(92566002)(47776003)(229853002)(54906002)(106356001)(25786008)(31686004)(105586002)(42186005)(6506006)(53936002)(4326007)(50986999)(101416001)(110136004)(8676002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1446;H:Suravees-MacBook-Pro.local;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxNDQ2OzIzOjQrbTM0VTNjRWpISnpydDBzUTZ3dzlocW8r?= =?utf-8?B?bm8xQlNWRjZhQ3dNV001SWtuSWFHMEJqb3MyWGtNdlFUN1hRZ2pPRWFyTzdO?= =?utf-8?B?Q3BZSlhLeFViRDZDY2FSd0tQZzgxeVZSbEdWd0dEQVdjMHc5bEcxOWFpNFQ4?= =?utf-8?B?T3hDb1pobzdZZElSc3ptSEpyZEVYTjBrNTdKZElVZHlUanVYdWNMbEc5aWRx?= =?utf-8?B?N0UybHhmTjVnb24zZThDQTJTY1lBcmhKQ0xmbDV0eFhxV2RsNW1CV0xTTUQr?= =?utf-8?B?OGZMeUhFSjU1SHZXcEluS3ZRZXk0TEVwbFFiUWJHVEYrWFNDOTV5Z0dCa1dn?= =?utf-8?B?RDhjTUVDamVjbjdQK0xsQ3UzTjJZMVpBaXQ5bDlCTXNpZ0dGS3c0RnR4dEd1?= =?utf-8?B?WFpoR29HMGtpanJaK201WlJBSGNxK3RGcEk4KzRBTCswM1RwQVlxZnRsMGow?= =?utf-8?B?amIvbmtVM2Y5aWJWN3FScnBpR1B6RytYRWFnQk5ubzVOSmk3SlN4alpSZkI1?= =?utf-8?B?VGEwY2doWWpCVXZkN2VHbkFvSzMzNW9LR0pqZ0FLMmdGYW02aUczdTB5dUta?= =?utf-8?B?Y1B2R3huckFPNlpTS1ZtMHYrZmwzSWxyU1RaVXZuampZbGNjUzFkOTZBUjVN?= =?utf-8?B?TmIrVDNiU0hTam5rSmJFSEs1RysvLzhHblVmb0Yvb3BKVm8yZG1VUmlXQW5K?= =?utf-8?B?eTdJNldFWlJXNTdtZHNyOHk2VWNUZWpzTnVDdVhOLzJXV2pKY0xPbmFHbDJE?= =?utf-8?B?ZmFKMFFlVUdKZis3UE8zcEpRM0VzZmpRTEFJNzBmNkRJeUZFTThia1BpK0Iw?= =?utf-8?B?dFJ1WXdIOHRIOFNCdm8ra2krck9PK0xvamY1NWdnb3RZSUUreFlSQjdNRVI2?= =?utf-8?B?TTFRTnJXRm9DZzhlZXpjdVE5TFhvZVZibkVWNndrb1JpQWpBNHRHbFNrandH?= =?utf-8?B?Y2VETW1MTHJsSUFjMFlHd05GeVNaRjFVeEN5TTQ3b1FKV2hDNGpqck8rNFRY?= =?utf-8?B?Njg0RGVFelZCOGRlZEc4aklodm5TdUI1U0drLzU5TXVDdkp2U05yYlNKTTJ2?= =?utf-8?B?MHBhTUlBUy9KKyt1anByVisrQ084bjVOUVRHZkxqSG1wV0lFMDUzbnA4WFg0?= =?utf-8?B?anc1WTBrN3FhVFZvQklma21zTWoyaS9zOUk5WDI1OHBLV3dZVDViTW9aRE5W?= =?utf-8?B?SXB3Z2VOWVVRQ2pLRGZ3U1dzdXJSSkFKdU5aL0ExOVJyN1VVWndzUHpicEhq?= =?utf-8?B?Qm93R0JEaVJHamtpMXRsUUZWSUpmLzM1UVN1b2M2RHNrd0FSWWl0U0l0czFH?= =?utf-8?B?d1cxWkd5Z25WMnYvemlJTVBsUUxnTmFMWnBmSHgxcmRGK040YmgzMnVrSnA0?= =?utf-8?B?WGhpc0dWMjNEVGV1MUpFT0FzQ1ZCdVpSa3VjdkN4alYvYWtRbnRMRUVBZEFF?= =?utf-8?B?MTlIeHVvNTQ5YitoZy9aWUxkOUtualRic050NEV1bXFIaEJEYkJoc3J0U3pS?= =?utf-8?B?TEdvWUJ2OUhGanhRMGZXbEFWamFKK0dNWHRlR1JBN3dGMkZlc1kvSVBNTXJr?= =?utf-8?B?VkV5TWxSM3BsUG15WWlJSUtNU2IxVlJ1OGl6Zld1SXYyM1ZuUUdCSWdoQ0Zr?= =?utf-8?B?d3FHRkF0eGY5TWdMQ1RTazlPTUhVOWZuWDhSeHR4WTlyQXFuNy9rV2ZBcjZI?= =?utf-8?B?Z1FhNmJ2cnBQZFIrNkFoeG1PMDVxNURudFJ6cXIrYVVrSHZLOWxRZVB1RFN2?= =?utf-8?B?VWRuK2w0c05sVjYwYWFnZDc5Qkd5VUxOUnNKVlhqL0VhZjRRL0x6Q3JOTVBJ?= =?utf-8?B?L2lmQlo0V01XT08xZlpVWElJUFAyalZVajBOdmhvSjNCbmpEN1BhbEQwMzNZ?= =?utf-8?Q?WdSVPrVJtVU=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1446;6:Fyi83kGTvU5NEKhx+1dCzsec/PbT7W14npGPqB243cgivxrt4kom4bXojQ528QKQpqu8bwUGdNpLMhUpRCNBUzDl06Wg41fnJmyocg7AVJvrsbhCoDTyBBs7ZMbl1NVa/MqfIDNG5cacMXC2gBnavFieSZH8zXHzJ/4abdSPAOQF/wflCO+F7pEYg5+Hj6Cxnl+zISfMa6t9G0ERQRHtTtahCkySM3+toiKwG0/BmnkhPNADU9NkYbIvlo+IWKi8ySCersv5vvqqwpWslB5x/FOhE9izKuYUsWPoQEIH1L/EO5G7I5QjKgTw9TgYskN2PV9jZdrQY9AUGdAsrVmatWmPawIyb8PKjgvp3vBfJfl1CX4de30bktZv9qU8jNfbQJBHYebO+5h73opI1BMLBDQ4L7g8n4z4Z0mcnALalTQ=;5:KWi/o40MWG3SGgy4RcjRPa6xK9PpWf05O3t4YMfwKS6XrIYeETP9qw9I2Wp091crhLUhLRgyvdZYE06CHr7L2WjFw+TBMvunyPAq/588TR5Myi576PcPsFJeLeLRaP1MZCOD1AlmabL7UT+Np/hEDDyrgbSjm6AaO3nRYIuIlFE=;24:5Q21kN4BJHx26Sp+/TdAYs4aXQ142X3x3JAPNYEjG+eo/f4pjhfLe3EeDt0vy86CmvNVM2fXImbkNr3xftwRWAIPZbmO1DeuW9ys21JmArA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1446;7:TRZaugV07Ua1hO0kTB0GNKlpCi5SF8EMUufMaCvhj7JFGrDodg+oCABlNFbbw+HsbnqTY4tvwtYwpoOdtz0VPG15FkQ2RriJCfSCdD2XMMl17HMWH4UZhVt2IPvt3MzjOgcCAxRe6ALNQbFTMrurrQGgWmzxeUVHA3gESuZM4KnjnTunvp3Cai97JizYa4MvDkgjmQoPu3SWS6aezk4KaBPfJZFPbHThUVzIThP0jEozfwGczJKmas2G0sigN8mxCs9FPEKDYKnKJalKPSUNK6jxXJxwMoIFdf7n3FedTrirFtfSSe6FWCcFx5Jjvb9f24Cu7UF6Z466IpkQccsgU0BlNIvCT1JBRgtpZlCkFs3cu6guvMnl1oWuAoHqdv/5qculCIQw4uwHGINbUBYrAWFWADS5NyiJMFgx89X7BJGaiPCUccMXWs2/fwLD+OzC1RHnsRE6LKIYO49rWYyC/r4z+QSE+dKPL9IaeyhNBiy6xnU2Y4YTXxMNXNzif52dTt1JjpUK0e1K+eFB74egcQ==;20:pHby1l6TdZcQZ4kpAGUlfabHRnIxjQaGgynvqEViiWxXMB38oSQSRMwMjfEN1CIm/v2b6Ihw3nvGp2+/7Fs7vKyO44Jb/VV1wxzcSTG6GKjnvu7MsM8iSFij+lzba4V1JtJ4ajww/jNROtGIKL/3Dvbsop8Ltedy0F5x+XedvZVtnYArf+HU7xWz8MIh9L/FehXe51WvJkpf/5pyG2nwUXCsjH94cIjvbw7OQywFDz+KUAzd0hccr7M1Rk+ihtna X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2017 01:58:48.1450 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1446 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Boris, On 1/25/17 16:55, Borislav Petkov wrote: > On Wed, Jan 25, 2017 at 10:46:53AM +0100, Peter Zijlstra wrote: >> Which is absolutely insane. > > Right, > > IMO, the simplest thing to do for your purposes is to embed a struct > amd_iommu pointer into struct perf_amd_iommu at init time so that you > don't have to do all that crazy dance in the PMU functions and iterate > over the iommus in get_amd_iommu() each time. > > Which would then simplify all your other functions. For example: > > int amd_iommu_pc_get_reg(unsigned int idx, u8 bank, u8 cntr, u8 fxn, u64 *value) > > should be > > int amd_iommu_pc_get_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, u8 fxn, u64 *value) > > and you can save yourself a lot of glue code and get rid of that > get_amd_iommu() thing. > That's a good idea. Thanks. I'll do this in V9. Suravee