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