All of lore.kernel.org
 help / color / mirror / Atom feed
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 2/3 -tip] perf_counter tools: Add support to set of multiple events in one shot
Date: Wed, 1 Jul 2009 00:47:04 +0200	[thread overview]
Message-ID: <20090630224704.GJ1241@elte.hu> (raw)
In-Reply-To: <1246368165.2434.1.camel@ht.satnam>


* Jaswinder Singh Rajput <jaswinder@kernel.org> wrote:

> On Tue, 2009-06-30 at 11:57 +0200, Ingo Molnar wrote:
> > * Jaswinder Singh Rajput <jaswinder@kernel.org> wrote:
> > 
> > > On Mon, 2009-06-29 at 05:57 +0200, Ingo Molnar wrote:
> > > 
> > > > The above patterns i suggested _already cover_ 'multiple events'.
> > > > 
> > > > We might define further aliases like:
> > > > 
> > > > 	all := "*"
> > > >         all-sw := "sw-*"
> > > > 
> > > > but it should all be in terms of patterns and regular 
> > > > expressions, not via some hardcoded special-case thing as your 
> > > > posted patches did.
> > > > 
> > > 
> > > It seems to me very confusing and needs lot of book-keeping and 
> > > need to rewrite whole tools/perf/util/parse-events.c because :
> > > 
> > > * means all perf_event_types :
> > > 	PERF_TYPE_HARDWARE,
> > >         PERF_TYPE_SOFTWARE,
> > >         PERF_TYPE_TRACEPOINT,
> > >         PERF_TYPE_HW_CACHE,
> > >         PERF_TYPE_RAW
> > > 
> > > hw-* means all hardware events :
> > > 	PERF_TYPE_HARDWARE,
> > >         PERF_TYPE_HW_CACHE,
> > >         PERF_TYPE_RAW
> > > 
> > > sw-* means all software events :
> > >         PERF_TYPE_SOFTWARE,
> > >         PERF_TYPE_TRACEPOINT
> > > 
> > > *cache* means all cache based events :
> > > 	PERF_COUNT_CACHE_REFERENCES, 	/* Generalized H/W */
> > > 	PERF_COUNT_CACHE_MISSES,	/* Generalized H/W */
> > >         PERF_TYPE_HW_CACHE,		/* Generalized Cache */
> > > 
> > > *write* means all write based events :
> > > 	(L1D,       WRITE,          ACCESS),
> > > 	(L1D,       WRITE,          MISS),
> > > 	(LL,        WRITE,          ACCESS),
> > > 	(LL,        WRITE,          MISS),
> > > 	(DTLB,      WRITE,          ACCESS),
> > > 	(DTLB,      WRITE,          MISS)
> > > 
> > > Please let me know why it looks complex to me, is it really 
> > > complex or I am going in wrong direction.
> > 
> > It would certainly need some reorganization of the code but the end 
> > result would be more flexible and other places could use it too, for 
> > example:
> > 
> > 	perf test -e hw-*
> > 
> > would test all (known) hardware counters.
> > 
> 
> Its true.
> 
> Can you please verify that the assumptions I made above are 
> correct.

Well, the right way to approach this is to assign each event a "full 
name" and a list of aliases/shortcuts (like we have now), and then 
do pattern matching on the full name.

So we'd have full/long event names like:

  hw-cycles
  hw-instructions
  hw-l1-cache-load-misses
  sw-minor-page-faults
  ...

to implement regex patterns over these, no event specific knowledge 
should be put into the pattern matching engine itself - it just 
blindly goes over the full names as strings.

As long as the full names are unique and structured well, this will 
work fine. The only non-trivial piece of restructuring is to make it 
easy for the pattern matching engine to iterate over all events. 
Right now they are in separate tables - perhaps they should be 
collected into a single table or so.

	Ingo

  reply	other threads:[~2009-06-30 22:47 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-26 21:30 [GIT PULL -tip][PATCH 0/3 -tip] perf stat patches Jaswinder Singh Rajput
2009-06-26 21:32 ` [PATCH 1/3 -tip] perf stat: fix stat output Jaswinder Singh Rajput
2009-06-26 21:33   ` [PATCH 2/3 -tip] perf_counter tools: Add support to set of multiple events in one shot Jaswinder Singh Rajput
2009-06-26 21:35     ` [PATCH 3/3 -tip] perf_counter tools: Add support for all CACHE events Jaswinder Singh Rajput
2009-06-27 16:38     ` [PATCH 2/3 -tip] perf_counter tools: Add support to set of multiple events in one shot Ingo Molnar
2009-06-27 19:04       ` Jaswinder Singh Rajput
2009-06-28 13:29         ` Ingo Molnar
2009-06-28 15:16           ` Jaswinder Singh Rajput
2009-06-29  3:57             ` Ingo Molnar
2009-06-30  8:38               ` Jaswinder Singh Rajput
2009-06-30  9:57                 ` Ingo Molnar
2009-06-30 13:22                   ` Jaswinder Singh Rajput
2009-06-30 22:47                     ` Ingo Molnar [this message]
2009-06-27 17:31   ` [tip:perfcounters/urgent] perf stat: Improve output tip-bot for Jaswinder Singh Rajput
2009-06-29 17:11     ` Peter Zijlstra
2009-06-29 19:52       ` Ingo Molnar

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=20090630224704.GJ1241@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.