Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758844AbdCVHEU (ORCPT ); Wed, 22 Mar 2017 03:04:20 -0400 Received: from mail-cys01nam02on0048.outbound.protection.outlook.com ([104.47.37.48]:20064 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752115AbdCVHEL (ORCPT ); Wed, 22 Mar 2017 03:04:11 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; From: Suravee Suthikulpanit To: , CC: , , , , Suravee Suthikulpanit Subject: [PATCH v12 00/10] perf/amd/iommu: Enable multi-IOMMU support Date: Wed, 22 Mar 2017 02:02:32 -0500 Message-ID: <1490166162-10002-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: SG2PR01CA0012.apcprd01.prod.exchangelabs.com (10.165.9.150) To MWHPR12MB1454.namprd12.prod.outlook.com (10.172.55.135) X-MS-Office365-Filtering-Correlation-Id: 5bec3280-5128-4414-a6ca-08d470f1825c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:MWHPR12MB1454; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;3:u2/R4AKOq8h8vh/TwubxryapKvH4VmNRIwIWnon930b/h2eozsKkoI8xqhFiQSzpqN58Vd32vy6dq7q1TyP5QtcMZzzZBGbDZFAKYKUHZxmqnQV1n8Sl26vlUntlLCtga9rjL1l5VC+vTYXgDPe7N0aez6pUpQOIYybCVqfhskxes+k9v+b5hWK8LoHEngLf+BAQi2JJLwEPfax1RtHD5VDoNs9IzMNCt0t+PATeG1wFFFO+n0DLvmFiv4pcu50N0ppKh1QJwROGJgiF7jvyeKM3+bOo0TFLWqgqRwPnq80=;25:iXLjlwuHcg2Y9yXN5vSnyJ1JAHI3AqceUgYcAhRWZ6b2X2RH+UPviWeSnBT1a96B0eheS7zFgq8X3sGkVMK6m7Cb1H05acmXfY56/FPZTBw1WoOOi96A9dX6J1F0Ly04ym7ziU29w9wiIc6yd8IjXYGTPXEAKGrkwXHSYBnPuckPP2NzaqlxwvkLaIFeHXeBTxf6/X5m5gRdzGn1If52RYAi+bZ402LzhFIk8Zyn8+oRo2w59cW70DNDwAxCQyAgHjG08ln7SWFhYvcfbvNhxIATxqrz+bRWVfsGCaR373uDQYMOqJzICRm+g2T8wba7ArnlFqZy08GBSrZUMiYWQs4+f+8bYnO95srRjSHNx0cZL/9CVYdFgei5EXfvez0NhyeqTb7LfxbOJ58mMasPUVRP7KBHi7y4UpyET87A2FTlNiRtpx6mGOFaBpIqu4ERPWj1UWtrX6kFDjWrYYbKhw== X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;31:2GWQWQcaxk2tm0xMTqgXHs2gkoCuSar1qpXdmppAvjUSDmmEAoUwxxVzoE8U6XEuEeSFEXyfNZl+9ajABD0VzX5+lGVevxOMLUMasGgIiK5hkeA0ejlR05jPcf3t2hQ1na94d2oRlIhlVv/PZmf9+CtG1zC4T2MtX21e1IxQ7J8hdToaGvaTjSkN9fmCuXn/VazjjOSxR7Gf1yiNLGcN4AA4ytjc4Gu8YsjnD/h7e/g=;20:budNOjQILD2yVJ45F0N3Ymhh22MV5rFcJqDVxCDQP3d3l2aEffMbGYKPlMjxHcyiKz449ThFwm1RH1gp0tEXsRs5EvLLCUrWXkQskX+BQZEBXqz0MMwWB+SVAv56JRvM1ZvgadeG1AT0AVb5cbSNi5fBdmgUWd94863OQeGBrSvATt4l8NGxgjYltN3kD4rj6zfpUIE5ZFEIBVNd9QBknIg8UMynRgmX6LfvJ4NpztAEGWOqK6nQNtEYfSGuYDXnKqA8k00EQ7d8pq/FRz5xDXCPOh4YrRuAKwMhWx8AawabPVsmsOwO0IQHVyRY7dKBgKY/mpuVTdWNY47k9Q59lL22DLLZ2HkJmDDq2TdsuDJJD8V1i2FwEE7U56k8IIO1Umzurofp3dYwEtODkWu0z9z02oaoFC6ybe4+9Ukl0E3I+IZDSN6Vd+1L4PCqHfuXiu7ZyOZWgHUUwoEoEP1xayYoP9IQCkjD/XiDdTR8VbUIR6GRygfmYq26LJ/f4y4r 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)(10201501046)(3002001)(6055026)(6041248)(20161123558025)(20161123562025)(20161123564025)(20161123555025)(20161123560025)(6072148);SRVR:MWHPR12MB1454;BCL:0;PCL:0;RULEID:;SRVR:MWHPR12MB1454; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;4:OrYIbbtS0UVU8XJoMFaCiet71MKNmXD2pNIhMZOohXg/dAFbpmMfxOaOM8SJ508tQf9LBkTHkns8HrIoImV9m7WHX5zJznhJEu4sppy8RtG61CpxQL1lJx+eCMQ7VqJWLPuKxiwWDpsFDsmovN9eYmTDBCjnxqRkvBHL5/8XHb+TIyWMABryhUgRYf+W2AYSCpu1UZ6ZJEr/uASIj1lSwuF9yG975yWISoHaCL2MYc7gyLMNKcKZoZ1/D4Jrea1C5uyjaScMPhrWGsnlFsU2aJ1+FH9Ir2yxO5YjR0TnK1IE+nMJkgS1AogO5IwKzr22rZKzX9k1BRDTbdFnsInhQJkpKvEO0ZBYnsvImaDtRRf6PuisKewQCZHVm3+GWM91JzmIKqQMRGRAl4wixZ7mL+eLVQceCvqORncZHO5PAn9Y0cpMrOp4K9gf9p1Q7ZBDUGAJmjBBYiknBlcu6r6W6v+mIu0ZoY48N3LQrUhhoHPLWBUDEoBrrSpbvRjSzc4x8EGcoQfYtrnP9W75CguEJ88pYT5aHmQgSIW6CEkzBRpof23SZpEWQpFmk1CS4qeAW0NGgVXHs4Pt74RGxemR1kvYBKKT8QPJq2nsWQiW0VB5Lilfbgvek4EELOlCGh1L4dbY3DjUjL2OwtPKaPCQbN9kmaLMbSN8Z0b2gl9T9huz42Tg9UGtXhgDaq6xN+awK3azI3q0MYHSxIEeRwybtCwSEIueSHGxMnWmDqLXLsQ= X-Forefront-PRVS: 02543CD7CD X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39410400002)(39840400002)(39860400002)(39450400003)(39850400002)(50466002)(6306002)(189998001)(4326008)(6666003)(6486002)(5660300001)(50226002)(8676002)(5003940100001)(47776003)(66066001)(81166006)(53936002)(6506006)(50986999)(4720700003)(54906002)(2906002)(42186005)(38730400002)(7736002)(36756003)(305945005)(6512007)(3846002)(6116002)(86362001)(25786009);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1454;H:ssuthiku-rhel73.localdomain;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;23:+e3R2JgTnoXEMsBszfT4o5GWmJWMsav6HYQ3H9oYUQuXUAUegVEE3uB95O6Cam5dCBKOiQHPavtAY3nJ7FUp2VoMVJZs4q8LC7XFFB2qofafnrqh4hV+8WRAOmVj3bM2LVMEE4KEL8+kX8lby1FEPBHCeyQQrEVJTDMGZrGrWuqLUVk7quBDyxLFIhPigpYQN2yKtdtQrvXQfuSXjZfh7VvrCE7MH8DbPPJd2Fy2GNJw4uDKBPAV9WLL2OBUT6rVk/d4AMAQnTW2X9YlSzs0futM9hJsDi4Rl9U76wB4B3lUDdw9ZHVgqKhL9yoOZbqOKRzhD06zSyOFvg6bH2dcMYnHstz9STJL0WT+hftMoQYitqc2Ewn5Mmd5uQIVRnRpIPPBqAhjE0NZ/jP6hYgeBW252xlhQ+Pfn666xIlmFLIpE2clhZKFo23w0gbW5x98ZLN8N2HgK6b0QjxWhbnjcn+BCafd2FWe9AKK02hfirVaAyvkULTxzW/j1ve7ePPKTeQBTfOYF0YiwEupybHPSpCZZ0NoDtsex3c+TjuXC207bZjU7kEho/BTsLCJ8UXmvr86MfkcjipS/7SE7wl/Tm0VTvpLa57Q7wHQatWOFKb1Qp4Z2H0IdYqXyDIYMurC1TlteNIsh8Yfaxg9wMzv/+TAdeYPePCF+79K/fCTRdJBAbQ/mg41y62uqm3Pg3D1gys4H/Gambb6KlDz7wSeCNfSiXCLqsBbtWeasp33hLEKqcuw+8o+bzjc7wdN3Q0uWB9/jp2Nv10FeidlxYRyiPZyCXq7vmrHeluqs2xOKRFEJveMau0IQ5D6yGpUyJEbkOHGiI+TatHGSchezJQqPVpa5xOVnzyMX5JXQSphFzRAdy+hZJf1Avu4ctF4lk4NpvO6WjSyLr2eMiMqUiGQYH+mKM4yNm8pqDp+3joEbc20voQrwVaoMKYs3wOUQYBw X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;6:K6SwkQoDPK2B9YReY3CtjAfE11cp6B4qT5l2OARtsjQWBprGM4vD4yyABH5WC8LJACZjGs64jeKHGqC22+fM8lfLRjf+M0oC9e6z4PlG5E9NfixnzMGtX0xBwXDT3NgetAW7SJE0uU4PpL/d14jf9obOO1CMStqXvVc4cFwX+qEh6/5WT9dMg6G/2j2loNu2H7osvEfBIrqIbb5iVMZJocyeUVzZobT3jkoLearz7EBB+dsvPhZxCWJgDyAbiZ4YnOQ7lNBNRnFEn/PbSqecL9nIbGauIQNA02eC5uMpIlA5m5hcsjpHFBgYx89zF9amlXOk6iCLPVijwnkUijQtk9FfTYtyd6KYRXJlw9rAhiGR97tXBoKagopg444916bHVY5WuSOlYjkIc/fiQI36TXB2/h4i1yv0Yt67HLBEeNQ=;5:03hF9grfdLbEh+ocO4SqRZF88qke8q8CpAgIpo3jUNbRtI24Bbvc9SKGfZAttJSn0W89QgyHPoq5SRnJ2L5TZhTT5sj+UWGGqKxIEFMb57p2xT+aAAVE2wiUlwSHySGGKZbhBH/NMi3sLozNVIcpbA==;24:kDGjnKaVON7J4pEWkfu0uc/8rAVOQzhxyYQYWceuTehzGYTf0k+Dh4y34oMswPTAfXsXc3+O3ISyPqdZalglGcWHql9h1o7gjFlyhZpNgzw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;7:+KiIzIyL4SuxBGId72OGM25ANdQK6E9iWSeyds/VThZ9Rzx/zQYBpg4wMpVwCg4jxddwm+IHYnk/7RltQXwqgW0rFOobdMhDa6U5c/6rKXj7tKVfklLe31407teXES7juPGa5rEyImBKBhsOrryjJ2R2oZf+oIPI4SXpJ21O81XaXU0ZcY+kjnPVfuA6ZTYlvSUY2lKModvWY48ddpLAQd9iRZxUr4zV+b3AwE1QiLkbGcgn0jTCKom7kd34ff1+6jYwGT+kkhI5ble9VGyKCgyGmD6bqm9wrVOZh6cyI//Ak8O07RpMVv5Cx+u9L0HgKNc0fgY2JAA726tW27DSkQ==;20:cH/K5kZAWiI/PhSXK/Fjujg4p+Z6jDhuZNOhFaIqkjRpWoD8eG+Guw7iBZDs4SvdYgZbFONj25rGaIm8BPb/7eqyqEEZSvqnDueSNumcTz4+F1DBS58eeXLT1tbpG9NmTberhbtCVHvEceG3C9ApWg/tD6jCJIhrhekPXnamm5qXfivsAyMqRs1NJVDlX+FlUdWe5JceqZcoj12Y/A4Cw/ClEfrLfl0bss6unRZmRJOLIDh6BGJpEKLV+vnIhECm X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2017 07:03:12.1984 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1454 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2291 Lines: 58 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-v12 Changes from V11 (https://lkml.org/lkml/2017/2/24/114) * Cleaning up in patch 9 and 10 per Boris' suggestions. 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) 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 | 321 +++++++++++++++++++--------------------- 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 | 7 + 7 files changed, 237 insertions(+), 227 deletions(-) -- 1.8.3.1