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