Re: [PATCH] perf/x86: Fix LLC-* and node-* events on Intel SandyBridge

From: Yan, Zheng
Date: Sun Jul 22 2012 - 07:43:37 EST


On Sat, Jul 21, 2012 at 12:48 AM, Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> wrote:
> On Tue, 2012-07-17 at 17:27 +0800, Yan, Zheng wrote:
>> From: "Yan, Zheng" <zheng.z.yan@xxxxxxxxx>
>>
>> LLC-* and node-* events require using the OFFCORE_RESPONSE events
>> on SandyBridge, but the hw_cache_extra_regs is left uninitialized.
>> This patch adds the missing extra register configure table for
>> SandyBridge.
>
> Last time I tried this I couldn't get sane numbers out of it..
>
> Does these encodings work, if so, do explain them.
>

I have tested them and compared the results with Nehalme. I think
they do work.

>> +#define SNB_DMND_READ (SNB_DMND_DATA_RD|SNB_LLC_DATA_RD)
normal LLC reads + LLC reads generated by L2 prefetcher

>> +#define SNB_DMND_WRITE (SNB_DMND_RFO|SNB_LLC_RFO)
normal RFO requests + RFO requests generated by L2 prefetcher

>> +#define SNB_DMND_PREFETCH (SNB_PF_DATA_RD|SNB_PF_RFO)
>> +
>> +#define SNB_SNP_ANY (SNB_SNP_NONE|SNB_SNP_NOT_NEEDED| \
>> + SNB_SNP_MISS|SNB_NO_FWD|SNB_SNP_FWD| \
>> + SNB_HITM)
SNB_SNP_ANY contains all snoop related bits, because we don't care the snoop
information.

>> +
>> +#define SNB_DRAM_ANY (SNB_LOCAL|SNB_REMOTE|SNB_SNP_ANY)
>> +#define SNB_DRAM_REMOTE (SNB_REMOTE|SNB_SNP_ANY)
>> +
>> +#define SNB_L3_ACCESS SNB_RESP_ANY
For LLC access, we don't care the supplier and snoop information.

>> +#define SNB_L3_MISS (SNB_DRAM_ANY|SNB_NON_DRAM)
If the supplier is DRAM, we consider it as LLC miss.

> Also:
>
>> +#define SNB_REMOTE (0xffULL << 23)
>
> I guess I can take this as an 'official' publication of this fact?
>
> (I knew those bits meant this, but I never got a response if I could
> publish that information.)
>
See chapter 18.8.7 of Intel 64 SDM Volume 3 (Order Number 325384)

Regards
Yan, Zheng
--
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/