On 2/24/17 01:11, Peter Zijlstra wrote:
However, I have looked into reworking to not use the extra_regs, and I see
that the union in struct hw_perf_event currently contains various PMU-specific
structures (hardware, software, tracepoint, intel_cqm, itrace, amd_power,
and breakpoint).

For amd_iommu PMU, we need additional registers for holding amd_iommu-specific
parameters. So, it seems that we can just introduce amd_iommu-specific struct
instead of re-using the existing structure for hardware events.

I'm planning to add the following structure in the same union:

    union {
        ......
                struct { /* amd_iommu */
                        u8      iommu_csource;
                        u8      iommu_bank;
                        u8      iommu_cntr;
                        u16     iommu_devid;
                        u16     iommu_devid_msk;
                        u16     iommu_domid;
                        u16     iommu_domid_msk;
                        u32     iommu_pasid;
                        u32     iommu_pasid_msk;
                };
    };

Please let me know what you think, of if I am still missing your points.
Yes, adding a struct to that union is fine and clarifies things. And
just because I'm weird like that, there's a u8 hole after iommu_cntr.

Ok, I'll update this in V10 that I'll be sending out this week.

Thanks,
Suravee
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to