Subject: Re: [PATCH v2 00/14] Add support for parameterized events from sysfs

From: Sukadev Bhattiprolu <[email-masked]>
Date: Fri, 22 Aug 2014 17:23:21 -0700

Jiri Olsa [[email-masked]] wrote:

<snip>
| > Description of the sysfs contents when events are parameterized (copied from an
| > included patch):
| > 
| > 	Examples:
| > 
| > 		domain=0x1,offset=0x8,starting_index=phys_cpu
| > 
| > 	In the case of the last example, a value replacing "phys_cpu"
| > 	would need to be provided by the user selecting the particular
| > 	event. This is refered to as "event parameterization". All
| > 	non-numerical values indicate an event parameter.
| > 
| > Notes on how perf-list displays parameterized events (and how to use them,
| > again culled from an included patch):
| > 
| > 	PARAMETERIZED EVENTS
| > 	--------------------
| > 
| > 	Some pmu events listed by 'perf-list' will be displayed with '?' in
| > 	them. For example:
| > 
| > 	  hv_gpci/dtbp_ptitc,phys_processor_idx=?/
| > 
| > 	This means that when provided as an event, a value for
| > 	phys_processor_idx must also be supplied. For example:
| > 
| > 	  perf stat -e 'hv_gpci/dtbp_ptitc,phys_processor_idx=0x2/' ...
| 
| hi,
| is the reason for this to document this field for event
| in "events/<event>" file?

We are trying to document that for the parameters that have the ? in
perf list, the parameter must be specified otherwise the event will
not be recognized.

| 
| Because once you have the field (phys_processor_idx) defined in
| "formats/phys_processor_idx" you should be able to use it as in
| your example:
| 
|    perf stat -e 'hv_gpci/dtbp_ptitc,phys_processor_idx=0x2/'
| 
| without any changes

For some events 'starting_index' refers to physical processor index
as shown in the sysfs entry:

	$ cd /sys/bus/event_source/devices/hv_gpci/events
 	$ cat dispatch_timebase_by_processor_processor_time_in_timebase_cycles
	request=0x10,starting_index=phys_processor_idx,counter_info_version=0x8,length=8,offset=0

and 'perf list' for this entry shows 'starting_index' with a ?
indicating it is a requireed parameter.

IIUC, rather than have the user specify a value for 'phys_processor_idx'

	-e hv_gpci/dtbp_ptitc,phys_processor_idx=4/'

we would use following right ?

	-e hv_gpci/dtbp_ptitc,starting_index=4/'

If so, I think the interface change makes sense.  perf list would also
show 'starting_index=?' for the event. 

But in the sysfs entry, rather than show 'starting_index=?', should we
leave it as:

	'starting_index=phys_processor_idx' 

For some events 'startind_index' refers to a physical processor id
and for others it is virtual processor id. So, showing phys_processor_idx
could serve as a hint.

Michael, Cody, Ingo, Peter, let me know if you agree or have other
comments on the inteface.

Thanks,

Sukadev

| 
| thanks,
| jirka