From: Ingo Molnar <mingo@elte.hu>
To: Jaswinder Singh Rajput <jaswinder@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH -tip] perf_counter tools: shorten names for events
Date: Thu, 25 Jun 2009 11:33:46 +0200 [thread overview]
Message-ID: <20090625093346.GD23547@elte.hu> (raw)
In-Reply-To: <1245876060.3038.7.camel@localhost.localdomain>
* Jaswinder Singh Rajput <jaswinder@kernel.org> wrote:
> After :
>
> Performance counter stats for 'ls -lR /usr/include/':
>
> 283542921 dL1-loads (scaled from 23.28%)
> 1848314 dL1-load-misses (scaled from 22.94%)
> 168963 dL1-stores (scaled from 22.94%)
> 739249 dL1-prefetches (scaled from 22.45%)
> 501021 dL1-prefetch-misses (scaled from 22.25%)
> 275037259 iL1-loads (scaled from 23.40%)
> 6030825 iL1-load-misses (scaled from 23.26%)
> 166760 iL1-prefetches (scaled from 24.31%)
> 7224781 LLC-loads (scaled from 24.76%)
> 821097 LLC-load-misses (scaled from 24.07%)
> 7070549 LLC-stores (scaled from 24.45%)
> 251586242 dTLB-loads (scaled from 24.65%)
> 5127780 dTLB-load-misses (scaled from 23.99%)
> 276782014 iTLB-loads (scaled from 23.77%)
> 16787 iTLB-load-misses (scaled from 23.72%)
> 123408502 branches (scaled from 22.88%)
> 5843856 branch-misses (scaled from 22.87%)
>
> 1.417039891 seconds time elapsed.
ok, this output looks pretty good and intuitive to me (please
integrate suggestions from Thomas), but the patch itself needs
another iteration i think:
> static char *hw_cache[][MAX_ALIASES] = {
> - { "L1-data", "l1-d", "l1d" },
> - { "L1-instruction", "l1-i", "l1i" },
> - { "L2", "l2" },
> - { "Data-TLB", "dtlb", "d-tlb" },
> - { "Instruction-TLB", "itlb", "i-tlb" },
> - { "Branch", "bpu" , "btb", "bpc" },
> + { "dL1", "L1-d", "l1d", },
> + { "iL1", "L1-i", "l1i", },
> + { "LLC", "L2", },
> + { "dTLB", "d-tlb", },
> + { "iTLB", "i-tlb", },
> + { "branch", "branches", "bpu", "btb", "bpc", },
> };
>
> static char *hw_cache_op[][MAX_ALIASES] = {
> - { "Load", "read" },
> - { "Store", "write" },
> - { "Prefetch", "speculative-read", "speculative-load" },
> + { "load", "loads", "read", },
> + { "store", "stores", "write", },
> + { "prefetch", "prefetches", "speculative-read", "speculative-load", },
> };
>
> static char *hw_cache_result[][MAX_ALIASES] = {
> - { "Reference", "ops", "access" },
> - { "Miss" },
> + { "refs", "ops", "access", },
> + { "misses", "miss", },
> };
>
> char *event_name(int counter)
> @@ -123,10 +123,25 @@ char *event_name(int counter)
> if (cache_result > PERF_COUNT_HW_CACHE_RESULT_MAX)
> return "unknown-ext-hardware-cache-result";
>
> - sprintf(name, "%s-Cache-%s-%ses",
> - hw_cache[cache_type][0],
> - hw_cache_op[cache_op][0],
> - hw_cache_result[cache_result][0]);
> + /*
> + * special handling for branches
> + * we are only interested in BPU, READ
> + */
> + if (cache_type == PERF_COUNT_HW_CACHE_BPU && cache_op)
> + return "unknown";
> + else if (cache_type == PERF_COUNT_HW_CACHE_BPU) {
> + if (cache_result)
> + sprintf(name, "%s-%s", hw_cache[cache_type][0],
> + hw_cache_result[cache_result][0]);
> + else
> + sprintf(name, "%s", hw_cache[cache_type][1]);
> + } else if (cache_result)
> + sprintf(name, "%s-%s-%s", hw_cache[cache_type][0],
> + hw_cache_op[cache_op][0],
> + hw_cache_result[cache_result][0]);
> + else
> + sprintf(name, "%s-%s", hw_cache[cache_type][0],
> + hw_cache_op[cache_op][1]);
>
> return name;
Firstly, please run your patches through checkpatch - it will report
a real problem in your patch.
Secondly, this special-casing of the BPU isnt very clean in this
form. The BPU isnt 'special' because it deals with instructions -
it's special because it's for all practical purposes read-only.
So we should extend our table with a read-only flag, and the BPU and
the iTLB should be listed as read-only. (iTLB-store-miss is another
thing that makes no sense) For those we should skip the 'store'
bits.
That way the generic code does not have this special-case wart
dependent on PERF_COUNT_HW_CACHE_BPU.
Ingo
next prev parent reply other threads:[~2009-06-25 9:34 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-23 12:28 [PATCH -tip] perf_counter tools: shorten names for events Jaswinder Singh Rajput
2009-06-23 13:52 ` Jaswinder Singh Rajput
2009-06-23 19:56 ` Ingo Molnar
2009-06-23 22:12 ` Jaswinder Singh Rajput
2009-06-23 22:59 ` Jaswinder Singh Rajput
2009-06-24 8:40 ` Ingo Molnar
2009-06-24 17:59 ` Jaswinder Singh Rajput
2009-06-24 18:07 ` Ingo Molnar
2009-06-24 18:18 ` Jaswinder Singh Rajput
2009-06-24 20:41 ` Jaswinder Singh Rajput
2009-06-24 21:00 ` Thomas Gleixner
2009-06-25 4:29 ` Jaswinder Singh Rajput
2009-06-25 4:34 ` Roland Dreier
2009-06-25 9:22 ` Ingo Molnar
2009-06-25 9:24 ` Ingo Molnar
2009-06-25 12:48 ` Thomas Gleixner
2009-06-25 13:23 ` Jaswinder Singh Rajput
2009-06-25 15:05 ` Roland Dreier
2009-06-25 15:11 ` Jaswinder Singh Rajput
2009-06-25 15:03 ` Roland Dreier
2009-06-25 15:24 ` Ingo Molnar
2009-06-25 9:33 ` Ingo Molnar [this message]
2009-06-25 12:55 ` Jaswinder Singh Rajput
2009-06-25 15:09 ` Roland Dreier
2009-06-25 15:26 ` Ingo Molnar
2009-06-25 15:34 ` Ingo Molnar
2009-06-26 16:06 ` Jaswinder Singh Rajput
2009-06-26 18:47 ` Ingo Molnar
2009-07-05 0:25 ` Anton Blanchard
2009-07-05 0:32 ` Ingo Molnar
2009-07-06 12:01 ` [PATCH] perf_counter tools: Rename cache events to remove $ Anton Blanchard
2009-07-10 10:39 ` [tip:perfcounters/core] " tip-bot for Anton Blanchard
2009-06-25 15:33 ` [tip:perfcounters/urgent] perf_counter tools: Shorten names for events tip-bot for Jaswinder Singh Rajput
2009-06-25 15:57 ` Jaswinder Singh Rajput
2009-06-25 19:55 ` Ingo Molnar
2009-06-25 19:57 ` [tip:perfcounters/urgent] perf_counter tools: Add alias for 'l1d' and 'l1i' tip-bot for Jaswinder Singh Rajput
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090625093346.GD23547@elte.hu \
--to=mingo@elte.hu \
--cc=jaswinder@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.