[PATCH v8 0/9] perf/amd/iommu: Enable multi-IOMMU support

From: Suravee Suthikulpanit
Date: Mon Jan 16 2017 - 02:24:50 EST


From: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>

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-v8

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

Changes from V6 (https://lkml.org/lkml/2016/12/23/134)
* Renamed function parameters from devid to idx (per Joerg).
* Removed unnecessary function declarations from amd_iommu_proto.h
(per Joerg).

Changes from V5 (https://lkml.org/lkml/2016/2/23/370)
* Rebased onto v4.9.
* Remove the patch which consolidates function delclarations since
we have not yet agreed on the appropriate place for the new header file.

Thanks,
Suravee

Suravee Suthikulpanit (9):
perf/amd/iommu: Declare pr_fmt and remove unnecessary pr_debug
perf/amd/iommu: Clean up perf_iommu_enable_event
perf/amd/iommu: Misc fix up perf_iommu_read
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() API to allow
specifying IOMMU index
perf/amd/iommu: Check return value when set and get counter value
perf/amd/iommu: Fix sysfs perf attribute groups
perf/amd/iommu: Enable support for multiple IOMMUs

arch/x86/events/amd/iommu.c | 280 ++++++++++++++++++++--------------------
arch/x86/events/amd/iommu.h | 16 ++-
drivers/iommu/amd_iommu.c | 6 +-
drivers/iommu/amd_iommu_init.c | 100 +++++++++-----
drivers/iommu/amd_iommu_proto.h | 8 +-
drivers/iommu/amd_iommu_types.h | 3 -
6 files changed, 217 insertions(+), 196 deletions(-)

--
1.8.3.1