From: "Steven L. Kinney" <steven.kin...@amd.com>

These patches implement the AMD IOMMUv2.5 Performance Counter functionality
via custom perf PMU and implement static counting for various IOMMU
translations.  The patches address three areas of functionality:

1)      Add a PCI quirk for the enablement of IOMMUv2 EFR PC within a specific
        AMD family/model in which BIOS has not enabled.  Based on code 
        implemented by Andreas Herrmann at AMD Dresden.
2)      Extend the AMD IOMMU initialization to include IOMMUv2 PC enablement
        and access to IOMMUv2 counter registers.  For all AMD family/models
        that implement IOMMUv2.5 functionality.
3)      Code the perf IOMMUv2 PMU to manage IOMMUv2 perf events, which call
        the function(s) extending the AMD IOMMU core driver.  For all AMD
        family/models that implement IOMMUv2.5 functionality.

The command-line, to invoke the iommuv2 PMU, is:

perf stat -e iommuv2/config=[data],config1=[data]/{u,r} [command]

For information regarding AMD IOMMU v2.5 PC configuration, see the public
specification.

Steven L. Kinney (3):
  AMD x86 quirks: Quirk for enabling IOMMUv2 PC feature
  AMD IOMMUv2 PC resource management hooks
  AMD IOMMUv2 PC perf PMU implementation

 arch/x86/kernel/cpu/Makefile                 |    1 +
 arch/x86/kernel/cpu/perf_event_amd_iommuv2.c |  429 ++++++++++++++++++++++++++
 arch/x86/kernel/cpu/perf_event_amd_iommuv2.h |   42 +++
 arch/x86/kernel/quirks.c                     |   17 +
 drivers/iommu/Kconfig                        |   10 +
 drivers/iommu/amd_iommu_init.c               |   99 ++++++
 drivers/iommu/amd_iommu_types.h              |   12 +
 include/linux/pci_ids.h                      |    2 +
 8 files changed, 612 insertions(+)
 create mode 100644 arch/x86/kernel/cpu/perf_event_amd_iommuv2.c
 create mode 100644 arch/x86/kernel/cpu/perf_event_amd_iommuv2.h

-- 
1.7.9.5


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to