[PATCH REPOST] perf event, POWER 6: L1 cache read and write access event code fix]
Benjamin Herrenschmidt
benh at kernel.crashing.org
Thu Sep 29 17:04:52 EST 2011
On Wed, 2011-09-28 at 14:23 -0700, Carl E. Love wrote:
> Ben, Paul:
>
> I posted this patch to lkml but did not copy the linuxppc-dev at ozlabs.org
> mailing list.
Patch is also completely damaged. I'm fixing it up myself this time
around but by now you should know how to send patches correctly :-(
Ben.
> Carl Love
> ---------------------------------------------------------------------
>
> The current L1 cache read event code 0x80082 only counts for thread 0. The
> event code 0x280030 should be used to count events on thread 0 and 1. The
> patch fixes the event code for the L1 cache read.
>
> The current L1 cache write event code 0x80086 only counts for thread 0. The
> event code 0x180032 should be used to count events on thread 0 and 1. The
> patch fixes the event code for the L1 cache write.
>
> FYI, the documentation lists three event codes for the L1 cache read event
> and three event codes for the L1 cache write event. The event description
> for the event codes is as follows:
>
> L1 cache read requests 0x80082 LSU 0 only
> L1 cache read requests 0x8008A LSU 1 only
> L1 cache read requests 0x80030 LSU 1 or LSU 0, counter 2 only.
>
> L1 cache store requests 0x80086 LSU 0 only
> L1 cache store requests 0x8008E LSU 1 only
> L1 cache store requests 0x80032 LSU 0 or LSU 1, counter 1 only.
>
> There can only be one request from either LSU 0 or 1 active at a time.
>
> Signed-off-by: Carl Love <cel at us.ibm.com>
> ---
> arch/powerpc/kernel/power6-pmu.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/kernel/power6-pmu.c b/arch/powerpc/kernel/power6-pmu.c
> index 03b95e2..0bbc901 100644
> --- a/arch/powerpc/kernel/power6-pmu.c
> +++ b/arch/powerpc/kernel/power6-pmu.c
> @@ -487,8 +487,8 @@ static int power6_generic_events[] = {
> */
> static int power6_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
> [C(L1D)] = { /* RESULT_ACCESS RESULT_MISS */
> - [C(OP_READ)] = { 0x80082, 0x80080 },
> - [C(OP_WRITE)] = { 0x80086, 0x80088 },
> + [C(OP_READ)] = { 0x280030, 0x80080 },
> + [C(OP_WRITE)] = { 0x180032, 0x80088 },
> [C(OP_PREFETCH)] = { 0x810a4, 0 },
> },
> [C(L1I)] = { /* RESULT_ACCESS RESULT_MISS */
>
>
More information about the Linuxppc-dev
mailing list