All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: acme@redhat.com, mingo@elte.hu, paulus@samba.org,
	cjashfor@linux.vnet.ibm.com, linux-kernel@vger.kernel.org
Subject: Re: new syntax for perf event
Date: Mon, 9 Jan 2012 16:28:55 +0100	[thread overview]
Message-ID: <20120109152855.GA1597@m.brq.redhat.com> (raw)
In-Reply-To: <1325772656.2697.57.camel@twins>

On Thu, Jan 05, 2012 at 03:10:56PM +0100, Peter Zijlstra wrote:
> On Wed, 2011-12-21 at 17:16 +0100, Jiri Olsa wrote:
> > grammar
> 
> yacc/bison notation it seems.. lemme get the rules for that.
> 
> > -------
> > events:
> >                 event_mod ',' event_mod | event_mod
> 
> events = event_mod, {',' , event_mod};
> 
> would be the EBNF variant for allowing inf repetition, not sure how to
> express that, it seems to want a recursive rule which I'm not sure I
> see. The way I read your thing it only allows 1 or 2 events.

aargh, sure we want more than 2 events ;)
should have been something like:

events: events ',' event_mod | event_mod


> 
> > 
> > event_mod:
> >                 event | event ':' modifier
> 
> 
> event_mod = event, [':' , modifier];
> 
> Would be the EBNF thing, and I think your rule does indeed match that.
> 
> > event:
> >                 event_symbol |
> >                 event_cache |
> >                 'cpu' '/' event_cpu |
> >                 'tracepoint' '/' event_tracepoint
> >                 'breakpoint' '/' event_breakpoint
> 
> I think I'd like to see something like:
> 
> event   = pmu, '/', event_config 
> 	| event_symbol | event_cache;
> 
> pmu = ? ls /sys/bus/event_source/devices ?;

ok


> (* maybe add some aliasses like you suggest *)
> 
> event_config = (event_predef | event_term), {',', event_term};
> 
> event_predef = ? special name -> raw mapping read from somewhere ?;
> 
> event_term = event_sym, '=', value;
> 
> event_sym = "config" | "config1" | "config2"
> 	  | ? contents of /sys/bus/event_source/devices/$pmu/format ?;

anyone working on the 'format' stuff? ;) I guess thats the place,
where we can stay with hardcoded config[12] so far.. right?


> 
> value = integer | hexint;
> 
> 
> > event_symbol:
> >                 cpu-cycles|cycles
> >                 stalled-cycles-frontend|idle-cycles-frontend
> >                 stalled-cycles-backend|idle-cycles-backend
> >                 instructions
> >                 cache-references
> >                 cache-misses
> >                 branch-instructions|branches
> >                 branch-misses
> >                 bus-cycles
> >                 cpu-clock
> >                 task-clock
> >                 page-faults|faults
> >                 minor-faults
> >                 major-faults
> >                 context-switches|cs
> >                 cpu-migrations|migrations
> >                 alignment-faults
> >                 emulation-faults
> > 
> > event_cache:
> >                 cache_type
> >                 cache_type '-' cache_result_op
> >                 cache_type '-' cache_result_op '-' cache_result_op
> 
> I'd write that as:
> 
> event_cache = cache_type, '-', cache_mod, ['-', cache_xs];
> 
> cache_type = cache_l1d | cache_l1i | cache_llc 
> 	   | cache_dtlb | cache_itlb
> 	   | cache_branch | cache_node;
> 
> cache_mod = cache_load | cache_store | cache_prefetch;
> 
> cache_xs = cache_accesses | cache_misses;
> 
> cache_l1d = "L1-dcache" | ... ;

ok


> 
> etc..
> 
> 
> > event_cpu:
> >                 'raw'    ',' event_cpu_def
> >                 'hw'     ',' event_cpu_def
> >                 'cache'  ',' event_cpu_def
> 
> I think these are superfluous and we could deduce them from the actual
> event_term's used. Something using "config" will be a raw event etc..

ok


> 
> > 
> > event_cpu_def:
> >                 event_cpu_ass ',' event_cpu_ass |
> >                 event_cpu_ass
> > 
> > event_cpu_ass:
> >                 event_cpu_elem '=' value
> 
> Hehehe, you said 'ass', hehe.
eh.. you're seeing things ;) just best fitting abbrev..


> 
> 
> > event_tracepoint:
> >                 system ':' tracepoint
> > 
> > event_breakpoint:
> >                 addr ':' type
> 
> Right, something like that.
> 
> > 
> > modifier:
> >                 [ukhp]{1,4} 
> 
> I think you need at least 5, or you can write it like:
> 
> modifier = ['u'], ['k'], ['h'], [3*'p'];
> 
> Also, I think we grew a few more modifiers with some of the perf kvm
> guest muck.

yep, I'll update it..
I'll prepare another patch version including above changes

thanks,
jirka

  reply	other threads:[~2012-01-09 15:29 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-15 15:30 [RFC 0/3] perf tool: Add new event group management Jiri Olsa
2011-12-15 15:30 ` [PATCH 1/3] perf, tool: Add parser generator for events parsing Jiri Olsa
2011-12-16 14:02   ` Peter Zijlstra
2011-12-16 14:03     ` Peter Zijlstra
2011-12-20 10:31       ` Jiri Olsa
2011-12-20 10:47         ` Peter Zijlstra
2011-12-20 11:30           ` Peter Zijlstra
2011-12-20 11:39             ` Peter Zijlstra
2011-12-21 16:16               ` new syntax for perf event Jiri Olsa
2012-01-05  9:17                 ` Jiri Olsa
2012-01-05 14:10                 ` Peter Zijlstra
2012-01-09 15:28                   ` Jiri Olsa [this message]
2012-01-09 15:43                     ` Peter Zijlstra
2012-01-16 12:31                     ` [RFCv3 0/9] perf tool: parser generator for events parsing Jiri Olsa
2012-01-16 12:31                       ` [PATCH 1/9] perf, tool: Make perf_evlist__splice_list_tail global Jiri Olsa
2012-01-16 12:31                       ` [PATCH 2/9] perf, tool: Remove unused functions from debugfs object Jiri Olsa
2012-01-16 12:31                       ` [PATCH 3/9] perf, tool: Add sysfs mountpoint interface Jiri Olsa
2012-01-16 12:31                       ` [PATCH 4/9] perf, tool: Add bitmap_or function into bitmap object Jiri Olsa
2012-01-16 12:31                       ` [PATCH 5/9] perf: Add sysfs format attribute for pmu device Jiri Olsa
2012-01-23 15:13                         ` Eric W. Biederman
2012-01-23 15:33                           ` Jiri Olsa
2012-01-24 15:22                             ` Peter Zijlstra
2012-01-24 19:40                               ` Eric W. Biederman
2012-01-25  8:54                                 ` Jiri Olsa
2012-01-26 16:26                         ` Peter Zijlstra
2012-01-27 12:32                           ` Jiri Olsa
2012-01-16 12:31                       ` [PATCH 6/9] perf, tool: Add parser generator for events parsing Jiri Olsa
2012-01-24 16:02                         ` Peter Zijlstra
2012-01-25  8:42                           ` Jiri Olsa
2012-01-16 12:31                       ` [PATCH 7/9] perf, tool: Add config options support for event parsing Jiri Olsa
2012-01-16 12:31                       ` [PATCH 8/9] perf, tool: Add perf pmu object to access pmu format definition Jiri Olsa
2012-01-16 12:31                       ` [PATCH 9/9] perf, tool: Add support to specify pmu style event Jiri Olsa
2012-01-24 15:22                       ` [RFCv3 0/9] perf tool: parser generator for events parsing Peter Zijlstra
2012-01-24 16:26                       ` Peter Zijlstra
2012-01-25  0:53                         ` Greg KH
2012-01-25 10:49                           ` Peter Zijlstra
2012-01-25 14:37                             ` Jiri Olsa
2012-01-26 16:23                               ` Peter Zijlstra
2012-01-26 16:27                                 ` Greg KH
2012-01-25 17:01                             ` Greg KH
2012-01-27 14:34                       ` [PATCHv4 " Jiri Olsa
2012-01-27 14:34                         ` [PATCH 1/9] perf, tool: Make perf_evlist__splice_list_tail global Jiri Olsa
2012-02-07 19:31                           ` [tip:perf/core] perf evlist: Make splice_list_tail method public tip-bot for Jiri Olsa
2012-01-27 14:34                         ` [PATCH 2/9] perf, tool: Remove unused functions from debugfs object Jiri Olsa
2012-02-17  9:51                           ` [tip:perf/core] perf tools: " tip-bot for Jiri Olsa
2012-01-27 14:34                         ` [PATCH 3/9] perf, tool: Add sysfs mountpoint interface Jiri Olsa
2012-02-17  9:52                           ` [tip:perf/core] perf tools: " tip-bot for Jiri Olsa
2012-01-27 14:34                         ` [PATCH 4/9] perf, tool: Add bitmap_or function into bitmap object Jiri Olsa
2012-02-17  9:53                           ` [tip:perf/core] perf tools: " tip-bot for Jiri Olsa
2012-01-27 14:34                         ` [PATCH 5/9] perf: Adding sysfs group format attribute for pmu device Jiri Olsa
2012-01-27 21:08                           ` Corey Ashford
2012-01-27 21:19                             ` Peter Zijlstra
2012-02-01  0:47                               ` Corey Ashford
2012-01-30  9:52                             ` Jiri Olsa
2012-02-01  1:25                               ` Corey Ashford
2012-02-01 13:13                                 ` Jiri Olsa
2012-02-01 14:18                                   ` Peter Zijlstra
2012-02-01 14:31                                     ` Jiri Olsa
2012-02-01 14:40                                       ` Peter Zijlstra
2012-02-01 13:36                                 ` Peter Zijlstra
2012-02-02  0:33                                   ` Corey Ashford
2012-01-27 14:34                         ` [PATCH 6/9] perf, tool: Add parser generator for events parsing Jiri Olsa
2012-01-27 14:34                         ` [PATCH 7/9] perf, tool: Add config options support for event parsing Jiri Olsa
2012-01-27 14:34                         ` [PATCH 8/9] perf, tool: Add perf pmu object to access pmu format definition Jiri Olsa
2012-01-27 14:34                         ` [PATCH 9/9] perf, tool: Add support to specify pmu style event Jiri Olsa
2012-02-13 13:13                         ` [PATCHv4 0/9] perf tool: parser generator for events parsing Jiri Olsa
2012-02-14 16:28                         ` Peter Zijlstra
2012-02-14 16:43                           ` Peter Zijlstra
2012-02-14 20:20                             ` Peter Zijlstra
2012-02-14 20:57                               ` Peter Zijlstra
2012-02-14 21:03                                 ` Peter Zijlstra
2012-02-15  9:24                                   ` Jiri Olsa
2012-02-15 11:18                                     ` Peter Zijlstra
2012-02-15 13:32                                       ` Jiri Olsa
2012-02-15 13:39                                         ` Peter Zijlstra
2012-02-15  9:04                                 ` Jiri Olsa
2012-02-15 11:03                                   ` Peter Zijlstra
2011-12-22 19:32             ` [PATCH 1/3] perf, tool: Add " Vince Weaver
2011-12-19 14:37     ` Jiri Olsa
2011-12-20 10:29     ` [PATCHv2 0/2] perf tool: " Jiri Olsa
2011-12-20 10:29       ` [PATCHv2 1/2] perf, tool: Add " Jiri Olsa
2011-12-20 10:29       ` [PATCHv2 2/2] perf, tool: Add more automated tests for event parsing Jiri Olsa
2011-12-20 17:37   ` [PATCH 1/3] perf, tool: Add parser generator for events parsing Arnaldo Carvalho de Melo
2011-12-21  9:55     ` Jiri Olsa
2011-12-15 15:30 ` [PATCH 2/3] perf, tool: Add new event group management Jiri Olsa
2011-12-20 17:47   ` Arnaldo Carvalho de Melo
2011-12-20 21:20     ` Peter Zijlstra
2011-12-21 11:54       ` Arnaldo Carvalho de Melo
2011-12-15 15:30 ` [PATCH 3/3] perf, tool: Add more automated tests for event parsing Jiri Olsa
2011-12-20 17:38   ` Arnaldo Carvalho de Melo
2011-12-21  8:47   ` [tip:perf/core] perf test: " tip-bot for Jiri Olsa

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=20120109152855.GA1597@m.brq.redhat.com \
    --to=jolsa@redhat.com \
    --cc=acme@redhat.com \
    --cc=cjashfor@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    /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.