From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751661AbdBXIts (ORCPT ); Fri, 24 Feb 2017 03:49:48 -0500 Received: from mail-sn1nam02on0064.outbound.protection.outlook.com ([104.47.36.64]:37728 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751614AbdBXItK (ORCPT ); Fri, 24 Feb 2017 03:49:10 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; From: Suravee Suthikulpanit To: , CC: , , , , Suravee Suthikulpanit Subject: [PATCH v11 00/10] perf/amd/iommu: Enable multi-IOMMU support Date: Fri, 24 Feb 2017 02:48:12 -0600 Message-ID: <1487926102-13073-1-git-send-email-Suravee.Suthikulpanit@amd.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [114.109.128.54] X-ClientProxiedBy: HK2PR02CA0037.apcprd02.prod.outlook.com (10.163.104.175) To CY4PR12MB1447.namprd12.prod.outlook.com (10.172.71.139) X-MS-Office365-Filtering-Correlation-Id: 559960ab-51f3-49a7-1ce6-08d45c91f7a2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:CY4PR12MB1447; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1447;3:qUquHNa/8ZLTNPalHDgez+xTCEbXSd8Wyz9hjW8KGhPAZKxcSGzVr6Y8SWxJ9Yq5WN2UxYQc6k5WeysYKT4/srt8sgiHIP4v1d/xbOa3RK3yKk/o+Cyl7WiTmEzqS7brfPnnLKkv6c8pQvG/tAX5Hg0cqs/rDw4h+f/+Hq8j68WtUmgGUr+gAP0jSVUVbpw/74ivwb6P4DZVOtvLOLWYS5UwTDYam9Mkl+E2m86+WGXj+Vni6L1ttAelVADu8SFkCkoE6AJnT7AMqjVHRyo1JVJ0tC7ARMs5ofA3RJafGY8=;25:RRC7owwthwnfs4XBkT2vELBeKxzRf0Sb1kbbvHlu6RTenIqvVjso8d1YizhVICrNXZkaY6HB6ARar55ZhJY5+HwgIifawoyCdQnO7cPIWsNv4UrEDNGn2huI61jxY0lZgEQWIcrPKGN+azhBffV/zgTNEPKlfCVwQ+YIpW0jwU7GNlOz9iVQDzdVVGOz5QbCVXzUbVlP9Iro5D6HVtnB27qiYq9efo9L2WKtYFM9lS5kexoR56wD2SHZ3kq7TZ+uEdEV9ITfNNAlw4j7zj9xzHADS9rwrrdq6/qkyGKpMi3sSLgVD4RmeuiTQ1Z2wgsYxWbJF7laiKIuvSKzpxxYz/jTjl/Mlz61XVUEHKTCUShcIo5WtZfgFdmwb2WzDJr7CbrnTFsmmXWpeHByisAQ6i96/u0R0IAhfnkz44iTGdafVwBRW9qvwqk6lhvQJr6wI0TQVaxb5KO/jRxgiuxJSw== X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1447;31:eZtXftNSV1rfgBNJIlRBz2rX0rJqHMCr+wRcE9giCuCzQHDIPlbmLecYf06C0DZndIaMFyjXfHW+BoCFGbTzRqB4memVLgcDRQlFN3Gm+u3p+yghNV4yiA+0mn1/U2ocC3CCbnRL9EfuMfRrgWh7oLY1xvw/A1Nqc2ovCKEfntRSKp3J5caGs9RyphAZki/HyPTXODp2LuRcovndI46mgkATSjZKuH87bvo75bJxmsVNLy6Zwqm2xC30OZNkmqjtnQWOjGO6MjnKAU1+281I5Q==;20:UYtPQBwhH14Ft6ATvfEaaa1Bv0rEHtYl0tPIEnoSmA0qCJBhdOWJ3xUfYq/EoZIzP9ZUv4AVEK7iv3DWisLmzxOtFuItmPg1nw+Fq4oLEZTsWC/6m9M5ptpoOnGR0kOjXsg2hHk/k9FkTQjjpHznPbI9R5ta01O9ACeet3bDzDcIiGhUsBh0LABy5zHBxljJbh3bWxAFtelRvtz+sxwI7rtFzw6dhr532bQrWWlfDSQVfpT1IOUD3QjYjBHTkLFkTrsaPj+Ho74S5HZymTKB7o+wSpPQEI7hT2xdJTw0q6d19uBsps8qjcYa2Tf8lBIjtA50dhSqcfdp4IgpPOiY3g4pkOIVv/hs2VP7Pi5ppJeFT5UbvkFRL56SF0D2P296mMP8GfhkMjJrni+Kf7nS2sclZgybDwkRF2iy72bCcFjI2DoK84HQns2elmiLlC2FZPsv3Xyr3MM2qbIm5ckTn51YpImrU2eVFwpi4OmDV6TUwpMLmIgIupzLOHKuzks/ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(158342451672863)(166708455590820)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123558025)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(6072148);SRVR:CY4PR12MB1447;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1447; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1447;4:gTdTpFym4cb0haIfHzbF1iFxZbDtRIOQdvXcPpFrDa8iKa54OC+TqpX24kVLx1vmFmpvOPy4Jeq9J1Y5+YZjaEqWneuoLFd3SXVfhiCdCYqRrrr+VxLRscuv4d9qFlhOp1wYvC5xHymu77j1WIaOfJyrwwXUgjJFntF4KpTYQMNtGBZdzrCGIbZKCxtkBBykvW2u6qIhT6XcgX5FCBlwamD+qL+4HqW77lVotgDeYEaVQ27McUbMDs2g/+vi3Io0RNf5la76ECUl2jE5ycqzBTN503jvXXSaJH/XT28FP1PDXMRFJ2FqsD1fSu9hm/tVVtETyDa4Mv157Bf57TD5nMl80eREJNvBNMSyPp6S4iot8jQmQrjfYzZpLj6VPrrr3/M5MIdvVcbsRQ+jSKKQNAbTY6omckHocbAJUeNvgQ+FDo+IKOcg0eHaaEaYq6wcDLm3fIRaq1Vd8Ycw8qnUbDEZNYo0fQwANffj7WNsRoXjKXxUbAQj80duWJodopsYOQSd+wQPZVwvjt6qAzoFdaFyd6cFUcgwDbNqO1g3//iSaf4GzKCDE68XHKt3vjN01bVuyw/8yAUazxdmvr7JUMBkzdCfTF7bwzmJItYfraWN2dQMHGz52PUOLdOxub8PmKDHubOsnwYufryv3C9t1C3f0rwrprVC8HuyuYeqx225Zja25+G6BKyZbFZUDl8lPxd9haVDPO7wEEDZZHvGLm2Zpd41zxksmdtI1bsEvrY= X-Forefront-PRVS: 0228DDDDD7 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39860400002)(39850400002)(39410400002)(39840400002)(39450400003)(189002)(199003)(3846002)(4326007)(105586002)(47776003)(6116002)(305945005)(36756003)(86362001)(50986999)(6506006)(101416001)(106356001)(38730400002)(53936002)(6486002)(7736002)(66066001)(68736007)(25786008)(8676002)(48376002)(5660300001)(5003940100001)(54906002)(92566002)(6306002)(2906002)(189998001)(50466002)(6666003)(81156014)(4720700003)(50226002)(6512007)(81166006)(97736004)(42186005)(427584002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1447;H:ssuthiku-rhel73.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR12MB1447;23:HjtjvFTUkeka/D+SZxxuhXsVgKMQ06HtPHx33kYdZ?= =?us-ascii?Q?bfklaRtjLcRaUTQRl8cRXYb8LfRZAnGnbpWg/Jkc0Oyak3ofnZ04VAIGZWME?= =?us-ascii?Q?NoMmFqNa2/tliy6rXxOB9ZtrA4bCNtxlNPSH/Z9VHoKZBRLywn/EFq4rhMx8?= =?us-ascii?Q?uFa9FgjnNt/ul9f1KizXAd5A+QiQP+9vjprfgqHEjcyZi4nHyeK03Arld8DD?= =?us-ascii?Q?bq1E5GPOiJHlG3vHhyI3tDf5Z9yUj4VwGbiLfj+vCvwci/E+M6Dsg18pjFYK?= =?us-ascii?Q?rPrF9V4YMi6TPF8CA+stPa9B312HDKF7kR6FvIxXnoJ2etaOj15GcWBEhu2P?= =?us-ascii?Q?+2zoA5i2FEt5txnqHfI2kQc+aYvWsUpgbOzI2ckcMWPwCG7z1AlXLutXyarU?= =?us-ascii?Q?Tjby8E0xzqXQSHDJHdRVKbN7yZIfLgxsvxyBVL4KxycJ7+zJ5zjt5NkUHSeL?= =?us-ascii?Q?I49jlTIng74wds1ZwJ69alp1X/duFfYX68q0WIdtViiO7XggNNL8+BLLJwKJ?= =?us-ascii?Q?5mSu3tmv9JpOGPYTkBrAyhhslzEU5IG4OSKgtw0Ay9GIxlc0qS4v+UwFvme4?= =?us-ascii?Q?rIj7/kZqiPGE8m3rNMpFdw03QqvjOvsqhertU1rRpmLVSNxu6j6rZuahTlYz?= =?us-ascii?Q?MZiEbsG1GQkRqeTvWQtV0JaXvpH44Hf64GunZqCUmFp/yT8zRLTWotkDkeCd?= =?us-ascii?Q?SBPePf+htx0Hc4OLI4rgzN2EtPVtTBaeLwX04P2KCY8hYvlX33Gz1hFnH9d9?= =?us-ascii?Q?frKlJVVlU3pGiOjWJZK2evNY8KUzQ3hOiQB3027hdRfdyxPz5ytAYIVbX3MK?= =?us-ascii?Q?+D5ojriEaM2WKkLz9JTeRCb3VqcXHEqG0MUt+r5f2ajWdTpl8XbvWKBItRwb?= =?us-ascii?Q?Pql6ousTl4MjcY+8AP2Qsw8u/7qCL6/3QdkxEFWVgnVTYOaKZ3/mQdef4iSE?= =?us-ascii?Q?8KAATlI6+QA497cxRiYSEXua5RMTHZslKO/jzkDMQrcI1k+BTmalFqztuGY+?= =?us-ascii?Q?G+snYgUHCU9zJAZvUzRrx0yfd/1HpsX5X6iBpcpi2owcbkD+JbmIR/4R7IX2?= =?us-ascii?Q?mDX4/BhnZQ9tnOPcVlrtmIeUsOYJ9TA/2nhj1tcnYjC34UbSrlTNpeYVVMkR?= =?us-ascii?Q?BdDF8PpDo0OTKFAdncicC6zj//rtaZxk10/5mJTI+qW8hiwbnqiU1IX63EdC?= =?us-ascii?Q?oCk8Vvajo0ed8w=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1447;6:e1JwaZt4hcxnOztoB6jsEU7LVpvfCqaS6EmzRk7O+fLg5gj8a6gq7k1QC43yjoBqCG7JC5RPwn627KpD4yKk7U8fAajmhBbALYX9tBgHub0Fo3/52U9MvI8QLbIUcGnDoopqi6HuDEWb5YeYB+R1QJcoM1KiMMvSKAO5lxLPtFddYiiNYOn+PJYiyAUFJi62wB8w92ASPlSCgctpXD2yhPJk+xkz9Ueo/cSVEvdyWXqfHf+B43m0Ap+D2S5m+25teWsOUPVHcjvTqGFpQHBZYO6jIB1XR61fF5trP0DjptWW7PXKiUuDHyhb/xug6uJkkjvEwzsIG0qHeZEE29L4I8DUtR3U8DvLEjwrC51DN4oaydcTjaNw4/lo6Mmz1NiD03IyerjUKSmKhcWYqfsRkErdkkkf6cBImLmvn5FY2iM=;5:rU3CAHdlKh2cUhQyMwIq3Ly8fqtQJ2cL3x/PuPpd6rB23Ku/p9YRyDzubLDcp3oR6vJgpFrpIUNpIZzkgpYllfc1SGHijeR8JXjj4bTFaP813rCz9qPUputnMy2MdyHdFvFP0hTddJu0Wm02jiAD6qYLxDSJyR8ONRYcHZXcgto=;24:o4lv2oODRSXrfG2LJwCiIuc8qopIqceeAsCBS7V+2Cf/SxrK+LsoC7tdk6kBxaVuB3C+WXXCflTvEL71YJ1Zoi1myZ99qdAMI1pZ+2liH7Q= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1447;7:t2pYwLJVwa1VhkxL6f30Doq9rri/nTRneGGVq7wLrrMiQ88pga+7VoLP/wobSL85JVoSxlrMEhd9dTGUDY6YbmcgoTBtgwpjDQ1z00iC8kO+LpQJ5BJyuZxxtT0SnoYa2iLADJCM9XUHVmKvE3UFwkUwAc452hl71YMTh58rRS34/e1gRnTYZXlD64a+/+ZxlOe8wvVCj8QhihUNDdibtnKh71YuwNGAFxfkalA3JbUETgs20Kq/Kw1Kd9MxpStpHeVDm/9O6y7EX194J0AOImw8YpdHssA0wn3MEKFSYsp7WgO/oJyYj/9PQ3Jq2+RUqz2YsnhevcubwWRxjZIz1g==;20:6l4mv1/Cx/Wv8JM/d26iNniFmVGRzgwvs9nHRgQy0i0agNl4IiXbsn8rtH9oZ22W3x+wEnZ570W/lfk9GxrTLy3lrkCJE7ZysXlZILwLztYxzde7D7l4nO0tqVkVWh9fA5Vf7w71JiHh4e2QrOJfgN1wcVti9dbl0L90HVsdbPp/gecWYRBo6ou4TV1MXRAZ87rCnvED7gYvRsS0mUB+llL9lM3FNoUYjneDY6M3cFvoo5ORUPmebLNnV6TzWdM2 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2017 08:48:53.6482 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1447 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Suravee Suthikulpanit This patch series modifies the existing IOMMU and Perf drivers to support systems with multiple IOMMUs by allocating an amd_iommu PMU per IOMMU instance. This allows users to specify performance events and filters separately for each IOMMU. This has been tested on the new family17h-based server w/ multiple IOMMUs. Git branch containing this patch series is available here: https://github.com/ssuthiku/linux.git perf-iommu-v11 Changes from V10 (https://lkml.org/lkml/2017/2/15/1202) * Introduce amd_iommu specific struct in struct hw_perf_event (patch 9/10). * Minor clean up on pr_info (patch 1/10 per Joe Perches). Changes from V9 (https://lkml.org/lkml/2017/2/7/105) * Since each IOMMU PMU in a system functions independently from one another, the amd_iommu_pc_init() function has been modified to allow certain IOMMU PMU initialization to fail w/o disabling the others (patch 9/9). * Define a static pmu (iommu_pmu), and stuct assignment directly. (per Boris) * Refactor code clean up into a separate patch (4/9) (per Boris) Changes from V8 (https://lkml.org/lkml/2017/1/16/48) * Rebase to v4.10 * Do not use hwc->idx as pmu index. Instead, include pointers to struct amd_iommu in the perf_amd_iommu. * Do not remove local64_cmpxchg() in perf_iommu_read(). * Fix incorrect bitfield when using GENMASK_ULL(). Changes from V7 (https://lkml.org/lkml/2017/1/9/917) * Re-order patches to clean up first before introducing new stuff. * Always use amd_iommu_get_num_iommus() to access amd_iommus_present variable now. * Fix Perf IOMMU sysfs attributes initialization. * Miscellaneous clean up Thanks, Suravee Suravee Suthikulpanit (10): perf/amd/iommu: Declare pr_fmt and remove unnecessary pr_debug perf/amd/iommu: Clean up bitwise operations perf/amd/iommu: Clean up perf_iommu_read() iommu/amd: Clean up iommu_pc_get_set_reg() iommu/amd: Introduce amd_iommu_get_num_iommus() perf/amd/iommu: Modify functions to query max banks and counters perf/amd/iommu: Modify amd_iommu_pc_get_set_reg_val() to allow specifying IOMMU perf/amd/iommu: Fix sysfs perf attribute groups perf/amd/iommu: Introduce amd_iommu-specific struct in struct hw_perf_event perf/amd/iommu: Enable support for multiple IOMMUs arch/x86/events/amd/iommu.c | 326 +++++++++++++++++++--------------------- arch/x86/events/amd/iommu.h | 18 ++- drivers/iommu/amd_iommu.c | 6 +- drivers/iommu/amd_iommu_init.c | 101 ++++++++----- drivers/iommu/amd_iommu_proto.h | 8 +- drivers/iommu/amd_iommu_types.h | 3 - include/linux/perf_event.h | 12 ++ 7 files changed, 247 insertions(+), 227 deletions(-) -- 1.8.3.1