Re: [PATCH 0/7] perf, x86: Implement AMD IBS
From: Robert Richter
Date: Mon Aug 01 2011 - 01:22:35 EST
On 29.07.11 13:07:16, Peter Zijlstra wrote:
> On Thu, 2011-07-28 at 15:46 +0200, Robert Richter wrote:
> > This patch set adds support for AMD IBS to perf.
>
> > The approach is still to collect raw sample data which should be the
> > most important use case for application developers. The data format is
> > the same as described in the IBS register specification.
>
> That makes it hardware dependent right? I take it new hardware with IBS
> extensions adds output MSRs.
IBS is supposed to be architectural spec'ed, meaning there are no
family checks. IBS features are detected using cpuid.
So the version of the raw sampling data format could be specified with
the u32 capability variable. I could put the caps value to the raw
sample data too right after the size field. An additional advantage
would be that 64 bit values are memory alligned then.
The Branch Target Address register that has been added to newer cpus
could simply be extended to the raw data sample, the data would still
be backward compatible. Userland can detect it existence from the
sample size or (better) from the ibs caps.
> Anyway, I'll try and go over it again next week after reading the IBS
> hardware spec (again.. that stuff just won't stick to memory).
>
> I've got the BKDG for Fam10, is there anything more I should read?
Though it is treated architectural, it isn't in the AMD64 Architecture
Programmer's Manual (APM). The 10h BKDG is a good source, but extended
IBS features are described in the family 12h bkdg (same as for 15h)
and the capabilities are in the cpuid spec:
http://support.amd.com/us/Processor_TechDocs/41131.pdf
http://support.amd.com/us/Processor_TechDocs/25481.pdf
-Robert
--
Advanced Micro Devices, Inc.
Operating System Research Center
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/