19e9f6010SCody P Schafer 29e9f6010SCody P Schafer #include "req-gen/_begin.h" 39e9f6010SCody P Schafer 49e9f6010SCody P Schafer /* 59e9f6010SCody P Schafer * Based on the document "getPerfCountInfo v1.07" 69e9f6010SCody P Schafer */ 79e9f6010SCody P Schafer 89e9f6010SCody P Schafer /* 99e9f6010SCody P Schafer * #define REQUEST_NAME counter_request_name 109e9f6010SCody P Schafer * #define REQUEST_NUM r_num 119e9f6010SCody P Schafer * #define REQUEST_IDX_KIND starting_index_kind 129e9f6010SCody P Schafer * #include I(REQUEST_BEGIN) 139e9f6010SCody P Schafer * REQUEST( 149e9f6010SCody P Schafer * __field(...) 159e9f6010SCody P Schafer * __field(...) 169e9f6010SCody P Schafer * __array(...) 179e9f6010SCody P Schafer * __count(...) 189e9f6010SCody P Schafer * ) 199e9f6010SCody P Schafer * #include I(REQUEST_END) 209e9f6010SCody P Schafer * 219e9f6010SCody P Schafer * - starting_index_kind is one of the following, depending on the event: 229e9f6010SCody P Schafer * 239e9f6010SCody P Schafer * chip_id: hardware chip id or -1 for current hw chip 249e9f6010SCody P Schafer * phys_processor_idx: 259e9f6010SCody P Schafer * 0xffffffffffffffff: or -1, which means it is irrelavant for the event 269e9f6010SCody P Schafer * 279e9f6010SCody P Schafer * __count(offset, bytes, name): 289e9f6010SCody P Schafer * a counter that should be exposed via perf 299e9f6010SCody P Schafer * __field(offset, bytes, name) 309e9f6010SCody P Schafer * a normal field 319e9f6010SCody P Schafer * __array(offset, bytes, name) 329e9f6010SCody P Schafer * an array of bytes 339e9f6010SCody P Schafer * 349e9f6010SCody P Schafer * 359e9f6010SCody P Schafer * @bytes for __count, and __field _must_ be a numeral token 369e9f6010SCody P Schafer * in decimal, not an expression and not in hex. 379e9f6010SCody P Schafer * 389e9f6010SCody P Schafer * 399e9f6010SCody P Schafer * TODO: 409e9f6010SCody P Schafer * - expose secondary index (if any counter ever uses it, only 0xA0 419e9f6010SCody P Schafer * appears to use it right now, and it doesn't have any counters) 429e9f6010SCody P Schafer * - embed versioning info 439e9f6010SCody P Schafer * - include counter descriptions 449e9f6010SCody P Schafer */ 459e9f6010SCody P Schafer #define REQUEST_NAME dispatch_timebase_by_processor 469e9f6010SCody P Schafer #define REQUEST_NUM 0x10 479e9f6010SCody P Schafer #define REQUEST_IDX_KIND "phys_processor_idx=?" 489e9f6010SCody P Schafer #include I(REQUEST_BEGIN) 499e9f6010SCody P Schafer REQUEST(__count(0, 8, processor_time_in_timebase_cycles) 509e9f6010SCody P Schafer __field(0x8, 4, hw_processor_id) 519e9f6010SCody P Schafer __field(0xC, 2, owning_part_id) 529e9f6010SCody P Schafer __field(0xE, 1, processor_state) 539e9f6010SCody P Schafer __field(0xF, 1, version) 549e9f6010SCody P Schafer __field(0x10, 4, hw_chip_id) 559e9f6010SCody P Schafer __field(0x14, 4, phys_module_id) 569e9f6010SCody P Schafer __field(0x18, 4, primary_affinity_domain_idx) 579e9f6010SCody P Schafer __field(0x1C, 4, secondary_affinity_domain_idx) 589e9f6010SCody P Schafer __field(0x20, 4, processor_version) 599e9f6010SCody P Schafer __field(0x24, 2, logical_processor_idx) 609e9f6010SCody P Schafer __field(0x26, 2, reserved) 619e9f6010SCody P Schafer __field(0x28, 4, processor_id_register) 629e9f6010SCody P Schafer __field(0x2C, 4, phys_processor_idx) 639e9f6010SCody P Schafer ) 649e9f6010SCody P Schafer #include I(REQUEST_END) 659e9f6010SCody P Schafer 669e9f6010SCody P Schafer #define REQUEST_NAME system_performance_capabilities 679e9f6010SCody P Schafer #define REQUEST_NUM 0x40 689e9f6010SCody P Schafer #define REQUEST_IDX_KIND "starting_index=0xffffffffffffffff" 699e9f6010SCody P Schafer #include I(REQUEST_BEGIN) 709e9f6010SCody P Schafer REQUEST(__field(0, 1, perf_collect_privileged) 719e9f6010SCody P Schafer __field(0x1, 1, capability_mask) 729e9f6010SCody P Schafer __array(0x2, 0xE, reserved) 739e9f6010SCody P Schafer ) 749e9f6010SCody P Schafer #include I(REQUEST_END) 759e9f6010SCody P Schafer 769e9f6010SCody P Schafer #include "req-gen/_end.h" 77