From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752107AbdBOU4s (ORCPT ); Wed, 15 Feb 2017 15:56:48 -0500 Received: from mail-bn3nam01on0049.outbound.protection.outlook.com ([104.47.33.49]:22368 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751338AbdBOU4q (ORCPT ); Wed, 15 Feb 2017 15:56:46 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; From: Suravee Suthikulpanit To: , CC: , , , , Suravee Suthikulpanit Subject: [PATCH v10 0/9] perf/amd/iommu: Enable multi-IOMMU support Date: Wed, 15 Feb 2017 14:56:16 -0600 Message-ID: <1487192185-31272-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: SG2PR01CA0102.apcprd01.prod.exchangelabs.com (10.170.138.156) To BN6PR12MB1444.namprd12.prod.outlook.com (10.172.24.21) X-MS-Office365-Filtering-Correlation-Id: 7a1333d4-d3b2-4787-c086-08d455e52657 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:BN6PR12MB1444; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1444;3:3gtXARyviyBzaPEhHS+II5BJ52ilvg4vEkX2JuBqwe7pJ/BGM5uN80ja48S4ajfGfUMQyzoT0yNUChrQlv/4REGbRlizVNAxCfH8wcv5m0O7xHXffXtw2InqV7TWHwfB+JfcqvpzvE0RwGI5epEN/8EkmUz+JWjZoRc6R++sbJp6Vp66ypg9/IvNHTSlNwPbNQ6ZRPeRQvzg6oCodLujWgWq/4i37+Pjy7n1gxRKTtJZrDZFh5dbbeQ4NrGk3xDYGXBPEPruonoIfik6fdSKixa2bGYdDPFdKKNdAaVHDRw=;25:T9o4f2S+97C9LSsDXBnafIcXVu1Gzxm2Oz49nmsSPwDCiG5FycgPaVbrXqusD4+fCvAnPXXsag1NkusNQOAj/7O7mA7GypuAEpuXe+PmL7K1b55OTBPtXUS7T2lpeobqjfpCdWeJ3Tf0N238pJwu05GMCjwDa2aoO1db987840pJKsziGtyC3CQ0elzlu65Oel+sGFtVy+wcfQQYKK7VbapSVk7b07xyCzji1nsNuefFklz8ND10SvdRmvBAjWTaaj40MqeF4W2AYrRU6dRd7uebXn7bdVd1Xw0KmxsN5UoQzxAsJqFxW2LUByzieXxPL+loA+YHC3qM0SbCs9FRnAsyrdZ/UzdoWTCNIpLAEZpK0hLgmUJyWObC/p63pE5NgI0sllAWc9HT/ePUvHG9AyMRvjNa5Dq5rctTcT82DK5hmTyIQDHcaSHXGhx3SNAECoZez8I3VO+TI8qH7jJHAQ== X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1444;31:QjoCwUA/C8k3Ny+aORIG+z01TYm3xM+1tmUn2rFy3Iah2xD6y0/R4JvWLjqnJZXzXtP2OgTG2kcGsyrShQ7gs9SGBJxgzSRG9SWVi25omhqjcmhRFakr8idmYn5K8hsgvLgRktp65gsnLceJGaHSqknNCDyhve38eU2FfrsrIJq43Lcjt8mNuGAxPlFxO4TWkuOj1mOPlyx3xwpZ2rxfUeIuf0re40jrJKSn0T+ZFB24f9EdYOvl9ZcoE8EApvgA;20:15/ez7P4K6ShYoLJPuxlurXcPAhbbIgIyfoHBE25/bKqspkDC0Vrn7xew8QVBvctbzXotr0dHNzkE/p9om3En+QF+URCSRgAR7E3cCkXv0GfhSRGvmFLfks0nncYDg8ZzWF2/e5e3ognRk7cw7aQgAwQJRpHPuD1j0pz2R/kQ9BZFXGEnOPohlWbIYNcX8feHsAbcSFj3IvAnNe6fwZzYMrLBGJ+NA766xfW4dplAIlkrX9CBCsnTBUQ1+l6rOGF9+eyv6FOKuMx2TXW8k+vIMDUEOqJ6FSyoqyay3B6ieSsuUtXLF+mxD4X1Tq3Uhr/6YuTVZwSh1v918ZWpRjxqGl38MusO/XdE0KLDXoVkpMbRLWMSjDNJ/hV+i9cjZjiXi8DYmLXDlXbevmGoQ1wiELlWbGerwNLTTtX+uYx990jBUvpUM2TE4KxpACeNu4ieV/3mijwgItDLkyJNvj1uNIAubNCczCOJF7W7o3Qw/pM5eYe2qj+nS2pNsvKQ2kz 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)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123558025)(20161123560025)(20161123555025)(6072148);SRVR:BN6PR12MB1444;BCL:0;PCL:0;RULEID:;SRVR:BN6PR12MB1444; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1444;4:1azfg/Gu4OUCwyVJKUmqJngFaI8Mb433hq77ziXpP/kfwd6WKgm8qZBIvWFSu8Y/ksR8I3FOoyvt87HaIaaoeVZGGfeW0G0qPTz1gCpTIzfyZb7EB37+BMuUM5R8MrT41n8BVmGD0PmZS0eYdhofMHhuaoLjMXtZ0JJy7yokyPtz10Ly0fB6jnOsFUt4oNYJOofALmN8Txvz3yFMesqi3aB++Ww42j6z0Zx4KjaKy9KMemad/5ULd9AEIz/kmrUaFUuk3nXUJiri2zhGZsENOsNO+PIApSLzXJnY0n5n0sPrp/hiSzGyp6dTlLP78tW758NW4bP3zINhaVC5Ov247veMp7enj3QjKsc2+Ud4I2MvWDlQdeU0uL1yiMSIJ/VqwZ6u+/nduNj3l6yx3ao4qyt9dG87fT8yhn36Gz/Lb83F0wP6M85b6Vivt5Bad9Ih6Kaxjpu3oI7RU1eoa69a20x0dkQsv4we5tdJPHEZOigQTZy77bby6dB4hjzGPAu19BKbN43x0gown9C9An+epJDTuG8Mulcv/RtlReU6sR4cmcvpf5sFr3JvacOGfkIcF7PqtzSjwe2TnaHQQa0tt/OicTwE8q33tTPsAPuuoT6g5i2ak/6gPjauhmG005eMAil4e2MmGdyrWkl4gwRg4ksouF51OfqVl+/dkQBUV2DUWuXGni8kckx5Wcye0sgiEKXGvR055+QFqcqY+d/2jdRoMKlbeQXIWlYBNKW1bW8= X-Forefront-PRVS: 021975AE46 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39840400002)(39450400003)(39860400002)(39850400002)(39410400002)(189002)(199003)(6486002)(50986999)(54906002)(38730400002)(6306002)(53936002)(86362001)(305945005)(48376002)(25786008)(5003940100001)(7736002)(389900002)(42186005)(106356001)(4720700003)(5660300001)(105586002)(6666003)(6512007)(189998001)(68736007)(47776003)(50226002)(97736004)(101416001)(50466002)(81166006)(66066001)(81156014)(8676002)(36756003)(6506006)(2906002)(3846002)(4326007)(92566002)(6116002)(427584002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1444;H:ssuthiku-rhel73.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN6PR12MB1444;23:tq3HHoQoQP5Mc85+E+NJSq1UW3QroAFSdfJC52NKI?= =?us-ascii?Q?YCAjU98vsC/2nS3YYQVkIAVycxqtYtAWiZFX9OekjzvajL3YrrlHbNySOU13?= =?us-ascii?Q?OXr4aptymJEzft/ri29+1NOBXOaCIZBuNAhiaKb8bTzTQA7Gf7Epcnwm9BMY?= =?us-ascii?Q?atypfWZQRgdcQ6KwJr/T4vWgl61q2OZszYGXH2SnKtsVX9qgIjs/0G3Ke2zD?= =?us-ascii?Q?CW65jGlRmCMuApaRxFBIamARKJ8SCjWvpRbaFod4RW+YqJvAEWoYwpKOR8SV?= =?us-ascii?Q?3AdqUfn9S+No5Q1hIHFSPt8pIO/8p/9Jb8noJjSVkzreoBDIi+HlG4gfH4rc?= =?us-ascii?Q?8+/92XQgVGetm4TdzE9wDyePY1Ta5DgmHzaIkdYhCHK/gAPWOy5u3+OdQjwi?= =?us-ascii?Q?2GVXSW1ALXlp5Obd4Rw1SkDZyRt4QlxPjSHZ4QycSAMAuXZkS1Iqhtlw3q3b?= =?us-ascii?Q?fsByU8oeW8HGLo6fDA2Q5dGBuo27xiszC62tTN8Yh2+Prd/AKFb6cjNkQnTC?= =?us-ascii?Q?EY2rewJzdnZ+ooaE1pq7pjjDO4ICB7YB+bZjeE5dwAEN9J41UC1czCG5T6a/?= =?us-ascii?Q?n9ysSrsBASeQ+2xmpPFZh+FxdUjhG7vv7W2Rmaupw/yPYQhDUzgKadDd9AyW?= =?us-ascii?Q?F9e7wnaRCT5zMw+uDhFjkbI+4sT3GYoOMBeMd05uJFI0HklSUNJjbhQs6CIF?= =?us-ascii?Q?Kkft1tM2p6Jg9bJhMkscfhpCryyEcMe8mglJDgqQQ6WWJlVtz2WlA47QlB3n?= =?us-ascii?Q?Xu+7xIIJOiYmjk6SnRw4TSZNKa/672nSVMm6Op3MUncH186hc7MTF+pFNffr?= =?us-ascii?Q?z6Wq0VgUOCC05xahJRnuo2nGKMmf3fncmqKxSOzK9/js2h6cf/2XdOczIn/3?= =?us-ascii?Q?A+0AA7/i8cRdtuZVb+/zAKCdQMV9awGBU/d+pIrH1u1rBYA+FbRJSNn4szh5?= =?us-ascii?Q?7y3W80+XYEQwwg5PqqkFnIytYgZbw1+7Cj83/XEm+sNrIfIlj4oJT6JzEzXm?= =?us-ascii?Q?P9MFnuN7RZ/bxbopOMJ3Wcjg2o28me6nJCkwUDVQhvblyaLp0LWRjbUVAj5S?= =?us-ascii?Q?QM9B2waBSe3//8vibU7DJ8dfx9ZzgtobcE+TU4knPZdZaHbX5Yzqbsp3jn8u?= =?us-ascii?Q?51MzZyIwx4FXyWMLOzH8fejHur4NEjizpUhQPwQpC0KgMx+lM7gUYg00KsfL?= =?us-ascii?Q?bPMOBWw7mJ33F5h8eIi1zr5ydd5IBIWHVQt?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1444;6:IHm1M+vS/gT4HBkJZVvYXDTtjZHGA4vWrrYKeMJ8BnprLK4O2SvX0wJjV2jAp7yIyWL03BoXuZOaO1R7t6X5JennNSZ/0U8uuD09WMaOBtF3iJjjRhPfkduzadJ/YKLpA70PdQPNTVUjzdl0BmhLgctWVBwhV80+jzqP1NO9MJvlE2CHO0QAkq8+8zjxwUx5yU2ZpkKWjzWmqz9R2/eHCvMl587VAjzbkp58OqJjM1d1+46DbdyLFgrrSMTuyKMJ0NE65gJtvV/9A+yyawCoaKl38F76dtrSM6ra7brdpjdttR8X7EWLiL0bO68Mtgh2O7pMZafBxoSMnLBmJxbR7LIOKq8WkPqjuE+6QoLItCRLOzC5/jQ46i7T9t5TfTzUVTdpa7FuKyaiO7Uz72N7JxxYmBKEKnGKH6ZEqOrSUeo=;5:BO+W2vRItZD0meotIlYtz3qnX3Ore1yDMr0rPWYs8+d1HIULYzEjwjjXgiWruSZBn7JoK4EAZX7vzXXEI56dkOrrgk7o5g69XfIxmCowycvUlnzswPA5QmYl4F1R4+fC7FcC2Dvdyokk1F/GPKwulQ==;24:01EQu2LhDBuqK4JdPQKApYR4JHRDpWgaSwPCUHWjQq2WgR5vS2czuyaE4WxA+adNBgmXrTrT3YlR1JOCS/8tVjlro41Do8JFT6WDDQYayBw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1444;7:mQhrKgthk/gRPZCL2T8L38sx74eC9NS6t7hEz9E7k4vh5Zet/BYWPh1cu4eK00iDi4xsKEngdOQelZGX4pAJj6O+qhIBGd32qNYa+D5A2yfsRaVX+0HV4VbHInVG3FJxLfI3VpjHWklCGIUrTv+TD9G3sUlkdh/g9aKobycGua816VGKIP20A0BKPvbQitVKvoDiq2C13C1XeGZ9mqtBfXZ7kXxLBfCPJN4SICNO9LL0PMIJ8ozhsDVvLeJumOvWaHdEahGHKltOJFCENdEl1zorP9rj8XhgwWwy9L68lu8G3TIgJnUK4zjtXl3Bgb6JYFKnIhKdKuyn1RzRxy+F8g==;20:TsqSTeI4Tk0mywtOPwZtf/+2eBZHustm86sfYybRWvidU6Dbw9sb/7fUuchY2Xkb4i3Hv9l1mplewUvVKAxIb8TxsSScyU7rvVluz59bACGZIbuOBFnXTa3yYudUwiNL14vUTL967S8F/2hfPXwganMv30PKispJlSeqErnQCbL/5hl3gcDTwi+3/RzmFfXF0rWXLWLjqGRkEgBqP4pP4mvULfi8f8pfgjZsT0u+Wzt4WHVe+P4JDKGvlpz/d7fK X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2017 20:56:41.9788 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1444 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-v10 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 (9): 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: Enable support for multiple IOMMUs arch/x86/events/amd/iommu.c | 259 +++++++++++++++++++--------------------- 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 - 6 files changed, 198 insertions(+), 197 deletions(-) -- 1.8.3.1