Re: [PATCH V4 5/6] perf/amd/iommu: Enable support for multiple IOMMUs

From: Alex Williamson
Date: Tue Feb 23 2016 - 00:25:07 EST


On Tue, 23 Feb 2016 12:12:42 +0700
Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx> wrote:

> Hi
>
> On 02/22/2016 09:07 PM, Peter Zijlstra wrote:
> > On Mon, Feb 22, 2016 at 03:00:31PM +0700, Suravee Suthikulpanit wrote:
> >>> So I really don't have time to review new muck while I'm hunting perf
> >>> core fail, but Boris made me look at this.
> >>>
> >>> This is crazy, if you have multiple IOMMUs then create an event per
> >>> IOMMU, do _NOT_ fold them all into a single event.
> >>
> >> These are system-wide events, which are programmed on every IOMMU the same
> >> way. I am not sure what you meant by creating an event per IOMMU. Do you
> >> mean I should create internal per-IOMMU struct perf_event for each event?
> >
> > No, I meant to expose each IOMMU individually to userspace, as a
> > separate device.
> >
> > Is there never a case to profile just one of the IOMMUs ?
> >
>
> I see. That's definitely doable and simpler to implement.
>
> I was not sure if making users specify the IOMMU instance (e.g.
> amd_iommu_0/<ev name> , amd_iommu_1/<ev_name>, ....) would be too
> tedious. However, this would actually give users better control of the
> performance events, which is a good trade-off. I think it is acceptable.
>
> I'll make the change and send this out in V5.

We already expose individual IOMMU hardware units in /sys/class/iommu/,
you might consider trying to match the names there for the convenience
of the user. Looks like we use ivhd%d for AMD. Thanks,

Alex