xref: /openbmc/linux/arch/powerpc/perf/hv-gpci-requests.h (revision 9e9f60108423f18a99c9cc93ef7f23490ecc709b)
1*9e9f6010SCody P Schafer 
2*9e9f6010SCody P Schafer #include "req-gen/_begin.h"
3*9e9f6010SCody P Schafer 
4*9e9f6010SCody P Schafer /*
5*9e9f6010SCody P Schafer  * Based on the document "getPerfCountInfo v1.07"
6*9e9f6010SCody P Schafer  */
7*9e9f6010SCody P Schafer 
8*9e9f6010SCody P Schafer /*
9*9e9f6010SCody P Schafer  * #define REQUEST_NAME counter_request_name
10*9e9f6010SCody P Schafer  * #define REQUEST_NUM r_num
11*9e9f6010SCody P Schafer  * #define REQUEST_IDX_KIND starting_index_kind
12*9e9f6010SCody P Schafer  * #include I(REQUEST_BEGIN)
13*9e9f6010SCody P Schafer  * REQUEST(
14*9e9f6010SCody P Schafer  *	__field(...)
15*9e9f6010SCody P Schafer  *	__field(...)
16*9e9f6010SCody P Schafer  *	__array(...)
17*9e9f6010SCody P Schafer  *	__count(...)
18*9e9f6010SCody P Schafer  * )
19*9e9f6010SCody P Schafer  * #include I(REQUEST_END)
20*9e9f6010SCody P Schafer  *
21*9e9f6010SCody P Schafer  * - starting_index_kind is one of the following, depending on the event:
22*9e9f6010SCody P Schafer  *
23*9e9f6010SCody P Schafer  *   chip_id: hardware chip id or -1 for current hw chip
24*9e9f6010SCody P Schafer  *   phys_processor_idx:
25*9e9f6010SCody P Schafer  *   0xffffffffffffffff: or -1, which means it is irrelavant for the event
26*9e9f6010SCody P Schafer  *
27*9e9f6010SCody P Schafer  * __count(offset, bytes, name):
28*9e9f6010SCody P Schafer  *	a counter that should be exposed via perf
29*9e9f6010SCody P Schafer  * __field(offset, bytes, name)
30*9e9f6010SCody P Schafer  *	a normal field
31*9e9f6010SCody P Schafer  * __array(offset, bytes, name)
32*9e9f6010SCody P Schafer  *	an array of bytes
33*9e9f6010SCody P Schafer  *
34*9e9f6010SCody P Schafer  *
35*9e9f6010SCody P Schafer  *	@bytes for __count, and __field _must_ be a numeral token
36*9e9f6010SCody P Schafer  *	in decimal, not an expression and not in hex.
37*9e9f6010SCody P Schafer  *
38*9e9f6010SCody P Schafer  *
39*9e9f6010SCody P Schafer  * TODO:
40*9e9f6010SCody P Schafer  *	- expose secondary index (if any counter ever uses it, only 0xA0
41*9e9f6010SCody P Schafer  *	  appears to use it right now, and it doesn't have any counters)
42*9e9f6010SCody P Schafer  *	- embed versioning info
43*9e9f6010SCody P Schafer  *	- include counter descriptions
44*9e9f6010SCody P Schafer  */
45*9e9f6010SCody P Schafer #define REQUEST_NAME dispatch_timebase_by_processor
46*9e9f6010SCody P Schafer #define REQUEST_NUM 0x10
47*9e9f6010SCody P Schafer #define REQUEST_IDX_KIND "phys_processor_idx=?"
48*9e9f6010SCody P Schafer #include I(REQUEST_BEGIN)
49*9e9f6010SCody P Schafer REQUEST(__count(0,	8,	processor_time_in_timebase_cycles)
50*9e9f6010SCody P Schafer 	__field(0x8,	4,	hw_processor_id)
51*9e9f6010SCody P Schafer 	__field(0xC,	2,	owning_part_id)
52*9e9f6010SCody P Schafer 	__field(0xE,	1,	processor_state)
53*9e9f6010SCody P Schafer 	__field(0xF,	1,	version)
54*9e9f6010SCody P Schafer 	__field(0x10,	4,	hw_chip_id)
55*9e9f6010SCody P Schafer 	__field(0x14,	4,	phys_module_id)
56*9e9f6010SCody P Schafer 	__field(0x18,	4,	primary_affinity_domain_idx)
57*9e9f6010SCody P Schafer 	__field(0x1C,	4,	secondary_affinity_domain_idx)
58*9e9f6010SCody P Schafer 	__field(0x20,	4,	processor_version)
59*9e9f6010SCody P Schafer 	__field(0x24,	2,	logical_processor_idx)
60*9e9f6010SCody P Schafer 	__field(0x26,	2,	reserved)
61*9e9f6010SCody P Schafer 	__field(0x28,	4,	processor_id_register)
62*9e9f6010SCody P Schafer 	__field(0x2C,	4,	phys_processor_idx)
63*9e9f6010SCody P Schafer )
64*9e9f6010SCody P Schafer #include I(REQUEST_END)
65*9e9f6010SCody P Schafer 
66*9e9f6010SCody P Schafer #define REQUEST_NAME system_performance_capabilities
67*9e9f6010SCody P Schafer #define REQUEST_NUM 0x40
68*9e9f6010SCody P Schafer #define REQUEST_IDX_KIND "starting_index=0xffffffffffffffff"
69*9e9f6010SCody P Schafer #include I(REQUEST_BEGIN)
70*9e9f6010SCody P Schafer REQUEST(__field(0,	1,	perf_collect_privileged)
71*9e9f6010SCody P Schafer 	__field(0x1,	1,	capability_mask)
72*9e9f6010SCody P Schafer 	__array(0x2,	0xE,	reserved)
73*9e9f6010SCody P Schafer )
74*9e9f6010SCody P Schafer #include I(REQUEST_END)
75*9e9f6010SCody P Schafer 
76*9e9f6010SCody P Schafer #include "req-gen/_end.h"
77