pmc_events.h (281102) | pmc_events.h (281713) |
---|---|
1/*- 2 * Copyright (c) 2005 Joseph Koshy 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 2005 Joseph Koshy 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $FreeBSD: head/sys/dev/hwpmc/pmc_events.h 281102 2015-04-05 05:14:20Z rpaulo $ | 26 * $FreeBSD: head/sys/dev/hwpmc/pmc_events.h 281713 2015-04-18 21:39:17Z jhibbits $ |
27 */ 28 29#ifndef _DEV_HWPMC_PMC_EVENTS_H_ 30#define _DEV_HWPMC_PMC_EVENTS_H_ 31 32/* 33 * Note: Documentation on adding events can be found both in 34 * the source tree at src/share/doc/papers/hwpmc/hwpmc.ms --- 5339 unchanged lines hidden (view full) --- 5374 __PMC_EV(PPC970, GCT_EMPTY_BY_BRANCH_MISS_PREDICT) \ 5375 __PMC_EV(PPC970, BUS_HIGH) \ 5376 __PMC_EV(PPC970, BUS_LOW) \ 5377 __PMC_EV(PPC970, ADDER) 5378 5379 5380#define PMC_EV_PPC970_FIRST PMC_EV_PPC970_INSTR_COMPLETED 5381#define PMC_EV_PPC970_LAST PMC_EV_PPC970_ADDER | 27 */ 28 29#ifndef _DEV_HWPMC_PMC_EVENTS_H_ 30#define _DEV_HWPMC_PMC_EVENTS_H_ 31 32/* 33 * Note: Documentation on adding events can be found both in 34 * the source tree at src/share/doc/papers/hwpmc/hwpmc.ms --- 5339 unchanged lines hidden (view full) --- 5374 __PMC_EV(PPC970, GCT_EMPTY_BY_BRANCH_MISS_PREDICT) \ 5375 __PMC_EV(PPC970, BUS_HIGH) \ 5376 __PMC_EV(PPC970, BUS_LOW) \ 5377 __PMC_EV(PPC970, ADDER) 5378 5379 5380#define PMC_EV_PPC970_FIRST PMC_EV_PPC970_INSTR_COMPLETED 5381#define PMC_EV_PPC970_LAST PMC_EV_PPC970_ADDER |
5382 5383#define __PMC_EV_E500() \ 5384 __PMC_EV(E500, CYCLES) \ 5385 __PMC_EV(E500, INSTR_COMPLETED) \ 5386 __PMC_EV(E500, UOPS_COMPLETED) \ 5387 __PMC_EV(E500, INSTR_FETCHED) \ 5388 __PMC_EV(E500, UOPS_DECODED) \ 5389 __PMC_EV(E500, PM_EVENT_TRANSITIONS) \ 5390 __PMC_EV(E500, PM_EVENT_CYCLES) \ 5391 __PMC_EV(E500, BRANCH_INSTRS_COMPLETED) \ 5392 __PMC_EV(E500, LOAD_UOPS_COMPLETED) \ 5393 __PMC_EV(E500, STORE_UOPS_COMPLETED) \ 5394 __PMC_EV(E500, CQ_REDIRECTS) \ 5395 __PMC_EV(E500, BRANCHES_FINISHED) \ 5396 __PMC_EV(E500, TAKEN_BRANCHES_FINISHED) \ 5397 __PMC_EV(E500, FINISHED_UNCOND_BRANCHES_MISS_BTB) \ 5398 __PMC_EV(E500, BRANCH_MISPRED) \ 5399 __PMC_EV(E500, BTB_BRANCH_MISPRED_FROM_DIRECTION) \ 5400 __PMC_EV(E500, BTB_HITS_PSEUDO_HITS) \ 5401 __PMC_EV(E500, CYCLES_DECODE_STALLED) \ 5402 __PMC_EV(E500, CYCLES_ISSUE_STALLED) \ 5403 __PMC_EV(E500, CYCLES_BRANCH_ISSUE_STALLED) \ 5404 __PMC_EV(E500, CYCLES_SU1_SCHED_STALLED) \ 5405 __PMC_EV(E500, CYCLES_SU2_SCHED_STALLED) \ 5406 __PMC_EV(E500, CYCLES_MU_SCHED_STALLED) \ 5407 __PMC_EV(E500, CYCLES_LRU_SCHED_STALLED) \ 5408 __PMC_EV(E500, CYCLES_BU_SCHED_STALLED) \ 5409 __PMC_EV(E500, TOTAL_TRANSLATED) \ 5410 __PMC_EV(E500, LOADS_TRANSLATED) \ 5411 __PMC_EV(E500, STORES_TRANSLATED) \ 5412 __PMC_EV(E500, TOUCHES_TRANSLATED) \ 5413 __PMC_EV(E500, CACHEOPS_TRANSLATED) \ 5414 __PMC_EV(E500, CACHE_INHIBITED_ACCESS_TRANSLATED) \ 5415 __PMC_EV(E500, GUARDED_LOADS_TRANSLATED) \ 5416 __PMC_EV(E500, WRITE_THROUGH_STORES_TRANSLATED) \ 5417 __PMC_EV(E500, MISALIGNED_LOAD_STORE_ACCESS_TRANSLATED) \ 5418 __PMC_EV(E500, TOTAL_ALLOCATED_TO_DLFB) \ 5419 __PMC_EV(E500, LOADS_TRANSLATED_ALLOCATED_TO_DLFB) \ 5420 __PMC_EV(E500, STORES_COMPLETED_ALLOCATED_TO_DLFB) \ 5421 __PMC_EV(E500, TOUCHES_TRANSLATED_ALLOCATED_TO_DLFB) \ 5422 __PMC_EV(E500, STORES_COMPLETED) \ 5423 __PMC_EV(E500, DATA_L1_CACHE_LOCKS) \ 5424 __PMC_EV(E500, DATA_L1_CACHE_RELOADS) \ 5425 __PMC_EV(E500, DATA_L1_CACHE_CASTOUTS) \ 5426 __PMC_EV(E500, LOAD_MISS_DLFB_FULL) \ 5427 __PMC_EV(E500, LOAD_MISS_LDQ_FULL) \ 5428 __PMC_EV(E500, LOAD_GUARDED_MISS) \ 5429 __PMC_EV(E500, STORE_TRANSLATE_WHEN_QUEUE_FULL) \ 5430 __PMC_EV(E500, ADDRESS_COLLISION) \ 5431 __PMC_EV(E500, DATA_MMU_MISS) \ 5432 __PMC_EV(E500, DATA_MMU_BUSY) \ 5433 __PMC_EV(E500, PART2_MISALIGNED_CACHE_ACCESS) \ 5434 __PMC_EV(E500, LOAD_MISS_DLFB_FULL_CYCLES) \ 5435 __PMC_EV(E500, LOAD_MISS_LDQ_FULL_CYCLES) \ 5436 __PMC_EV(E500, LOAD_GUARDED_MISS_CYCLES) \ 5437 __PMC_EV(E500, STORE_TRANSLATE_WHEN_QUEUE_FULL_CYCLES) \ 5438 __PMC_EV(E500, ADDRESS_COLLISION_CYCLES) \ 5439 __PMC_EV(E500, DATA_MMU_MISS_CYCLES) \ 5440 __PMC_EV(E500, DATA_MMU_BUSY_CYCLES) \ 5441 __PMC_EV(E500, PART2_MISALIGNED_CACHE_ACCESS_CYCLES) \ 5442 __PMC_EV(E500, INSTR_L1_CACHE_LOCKS) \ 5443 __PMC_EV(E500, INSTR_L1_CACHE_RELOADS) \ 5444 __PMC_EV(E500, INSTR_L1_CACHE_FETCHES) \ 5445 __PMC_EV(E500, INSTR_MMU_TLB4K_RELOADS) \ 5446 __PMC_EV(E500, INSTR_MMU_VSP_RELOADS) \ 5447 __PMC_EV(E500, DATA_MMU_TLB4K_RELOADS) \ 5448 __PMC_EV(E500, DATA_MMU_VSP_RELOADS) \ 5449 __PMC_EV(E500, L2MMU_MISSES) \ 5450 __PMC_EV(E500, BIU_MASTER_REQUESTS) \ 5451 __PMC_EV(E500, BIU_MASTER_INSTR_SIDE_REQUESTS) \ 5452 __PMC_EV(E500, BIU_MASTER_DATA_SIDE_REQUESTS) \ 5453 __PMC_EV(E500, BIU_MASTER_DATA_SIDE_CASTOUT_REQUESTS) \ 5454 __PMC_EV(E500, BIU_MASTER_RETRIES) \ 5455 __PMC_EV(E500, SNOOP_REQUESTS) \ 5456 __PMC_EV(E500, SNOOP_HITS) \ 5457 __PMC_EV(E500, SNOOP_PUSHES) \ 5458 __PMC_EV(E500, SNOOP_RETRIES) \ 5459 __PMC_EV(E500, DLFB_LOAD_MISS_CYCLES) \ 5460 __PMC_EV(E500, ILFB_FETCH_MISS_CYCLES) \ 5461 __PMC_EV(E500, EXT_INPU_INTR_LATENCY_CYCLES) \ 5462 __PMC_EV(E500, CRIT_INPUT_INTR_LATENCY_CYCLES) \ 5463 __PMC_EV(E500, EXT_INPUT_INTR_PENDING_LATENCY_CYCLES) \ 5464 __PMC_EV(E500, CRIT_INPUT_INTR_PENDING_LATENCY_CYCLES) \ 5465 __PMC_EV(E500, PMC0_OVERFLOW) \ 5466 __PMC_EV(E500, PMC1_OVERFLOW) \ 5467 __PMC_EV(E500, PMC2_OVERFLOW) \ 5468 __PMC_EV(E500, PMC3_OVERFLOW) \ 5469 __PMC_EV(E500, INTERRUPTS_TAKEN) \ 5470 __PMC_EV(E500, EXT_INPUT_INTR_TAKEN) \ 5471 __PMC_EV(E500, CRIT_INPUT_INTR_TAKEN) \ 5472 __PMC_EV(E500, SYSCALL_TRAP_INTR) \ 5473 __PMC_EV(E500, TLB_BIT_TRANSITIONS) \ 5474 __PMC_EV(E500, L2_LINEFILL_BUFFER) \ 5475 __PMC_EV(E500, LV2_VS) \ 5476 __PMC_EV(E500, CASTOUTS_RELEASED) \ 5477 __PMC_EV(E500, INTV_ALLOCATIONS) \ 5478 __PMC_EV(E500, DLFB_RETRIES_TO_MBAR) \ 5479 __PMC_EV(E500, STORE_RETRIES) \ 5480 __PMC_EV(E500, STASH_L1_HITS) \ 5481 __PMC_EV(E500, STASH_L2_HITS) \ 5482 __PMC_EV(E500, STASH_BUSY_1) \ 5483 __PMC_EV(E500, STASH_BUSY_2) \ 5484 __PMC_EV(E500, STASH_BUSY_3) \ 5485 __PMC_EV(E500, STASH_HITS) \ 5486 __PMC_EV(E500, STASH_HIT_DLFB) \ 5487 __PMC_EV(E500, STASH_REQUESTS) \ 5488 __PMC_EV(E500, STASH_REQUESTS_L1) \ 5489 __PMC_EV(E500, STASH_REQUESTS_L2) \ 5490 __PMC_EV(E500, STALLS_NO_CAQ_OR_COB) \ 5491 __PMC_EV(E500, L2_CACHE_ACCESSES) \ 5492 __PMC_EV(E500, L2_HIT_CACHE_ACCESSES) \ 5493 __PMC_EV(E500, L2_CACHE_DATA_ACCESSES) \ 5494 __PMC_EV(E500, L2_CACHE_DATA_HITS) \ 5495 __PMC_EV(E500, L2_CACHE_INSTR_ACCESSES) \ 5496 __PMC_EV(E500, L2_CACHE_INSTR_HITS) \ 5497 __PMC_EV(E500, L2_CACHE_ALLOCATIONS) \ 5498 __PMC_EV(E500, L2_CACHE_DATA_ALLOCATIONS) \ 5499 __PMC_EV(E500, L2_CACHE_DIRTY_DATA_ALLOCATIONS) \ 5500 __PMC_EV(E500, L2_CACHE_INSTR_ALLOCATIONS) \ 5501 __PMC_EV(E500, L2_CACHE_UPDATES) \ 5502 __PMC_EV(E500, L2_CACHE_CLEAN_UPDATES) \ 5503 __PMC_EV(E500, L2_CACHE_DIRTY_UPDATES) \ 5504 __PMC_EV(E500, L2_CACHE_CLEAN_REDUNDANT_UPDATES) \ 5505 __PMC_EV(E500, L2_CACHE_DIRTY_REDUNDANT_UPDATES) \ 5506 __PMC_EV(E500, L2_CACHE_LOCKS) \ 5507 __PMC_EV(E500, L2_CACHE_CASTOUTS) \ 5508 __PMC_EV(E500, L2_CACHE_DATA_DIRTY_HITS) \ 5509 __PMC_EV(E500, INSTR_LFB_WENT_HIGH_PRIORITY) \ 5510 __PMC_EV(E500, SNOOP_THROTTLING_TURNED_ON) \ 5511 __PMC_EV(E500, L2_CLEAN_LINE_INVALIDATIONS) \ 5512 __PMC_EV(E500, L2_INCOHERENT_LINE_INVALIDATIONS) \ 5513 __PMC_EV(E500, L2_COHERENT_LINE_INVALIDATIONS) \ 5514 __PMC_EV(E500, COHERENT_LOOKUP_MISS_DUE_TO_VALID_BUT_INCOHERENT_MATCHES) \ 5515 __PMC_EV(E500, IAC1S_DETECTED) \ 5516 __PMC_EV(E500, IAC2S_DETECTED) \ 5517 __PMC_EV(E500, DAC1S_DTECTED) \ 5518 __PMC_EV(E500, DAC2S_DTECTED) \ 5519 __PMC_EV(E500, DVT0_DETECTED) \ 5520 __PMC_EV(E500, DVT1_DETECTED) \ 5521 __PMC_EV(E500, DVT2_DETECTED) \ 5522 __PMC_EV(E500, DVT3_DETECTED) \ 5523 __PMC_EV(E500, DVT4_DETECTED) \ 5524 __PMC_EV(E500, DVT5_DETECTED) \ 5525 __PMC_EV(E500, DVT6_DETECTED) \ 5526 __PMC_EV(E500, DVT7_DETECTED) \ 5527 __PMC_EV(E500, CYCLES_COMPLETION_STALLED_NEXUS_FIFO_FULL) \ 5528 __PMC_EV(E500, FPU_DOUBLE_PUMP) \ 5529 __PMC_EV(E500, FPU_FINISH) \ 5530 __PMC_EV(E500, FPU_DIVIDE_CYCLES) \ 5531 __PMC_EV(E500, FPU_DENORM_INPUT_CYCLES) \ 5532 __PMC_EV(E500, FPU_RESULT_STALL_CYCLES) \ 5533 __PMC_EV(E500, FPU_FPSCR_FULL_STALL) \ 5534 __PMC_EV(E500, FPU_PIPE_SYNC_STALLS) \ 5535 __PMC_EV(E500, FPU_INPUT_DATA_STALLS) \ 5536 __PMC_EV(E500, DECORATED_LOADS) \ 5537 __PMC_EV(E500, DECORATED_STORES) \ 5538 __PMC_EV(E500, LOAD_RETRIES) \ 5539 __PMC_EV(E500, STWCX_SUCCESSES) \ 5540 __PMC_EV(E500, STWCX_FAILURES) \ 5541 5542#define PMC_EV_E500_FIRST PMC_EV_E500_CYCLES 5543#define PMC_EV_E500_LAST PMC_EV_E500_STWCX_FAILURES |
|
5382/* 5383 * All known PMC events. 5384 * 5385 * PMC event numbers are allocated sparsely to allow new PMC events to 5386 * be added to a PMC class without breaking ABI compatibility. The 5387 * current allocation scheme is: 5388 * 5389 * START #EVENTS DESCRIPTION --- 5 unchanged lines hidden (view full) --- 5395 * 0x10080 0x0F80 INTEL architectural programmable events 5396 * 0x11000 0x0080 INTEL Pentium 4 events 5397 * 0x11080 0x0080 INTEL Pentium MMX events 5398 * 0x11100 0x0100 INTEL Pentium Pro/P-II/P-III/Pentium-M events 5399 * 0x11200 0x00FF INTEL XScale events 5400 * 0x11300 0x00FF MIPS 24K events 5401 * 0x11400 0x00FF Octeon events 5402 * 0x11500 0x00FF MIPS 74K events | 5544/* 5545 * All known PMC events. 5546 * 5547 * PMC event numbers are allocated sparsely to allow new PMC events to 5548 * be added to a PMC class without breaking ABI compatibility. The 5549 * current allocation scheme is: 5550 * 5551 * START #EVENTS DESCRIPTION --- 5 unchanged lines hidden (view full) --- 5557 * 0x10080 0x0F80 INTEL architectural programmable events 5558 * 0x11000 0x0080 INTEL Pentium 4 events 5559 * 0x11080 0x0080 INTEL Pentium MMX events 5560 * 0x11100 0x0100 INTEL Pentium Pro/P-II/P-III/Pentium-M events 5561 * 0x11200 0x00FF INTEL XScale events 5562 * 0x11300 0x00FF MIPS 24K events 5563 * 0x11400 0x00FF Octeon events 5564 * 0x11500 0x00FF MIPS 74K events |
5565 * 0x13000 0x00FF MPC7450 events 5566 * 0x13100 0x00FF IBM PPC970 events 5567 * 0x13300 0x00FF Freescale e500 events |
|
5403 * 0x14000 0x0100 ARMv7 events 5404 * 0x20000 0x1000 Software events 5405 */ 5406#define __PMC_EVENTS() \ 5407 __PMC_EV_BLOCK(TSC, 0x01000) \ 5408 __PMC_EV_TSC() \ 5409 __PMC_EV_BLOCK(K7, 0x2000) \ 5410 __PMC_EV_K7() \ --- 20 unchanged lines hidden (view full) --- 5431 __PMC_EV_BLOCK(UCF, 0x12000) \ 5432 __PMC_EV_UCF() \ 5433 __PMC_EV_BLOCK(UCP, 0x12080) \ 5434 __PMC_EV_UCP() \ 5435 __PMC_EV_BLOCK(PPC7450, 0x13000) \ 5436 __PMC_EV_PPC7450() \ 5437 __PMC_EV_BLOCK(PPC970, 0x13100) \ 5438 __PMC_EV_PPC970() \ | 5568 * 0x14000 0x0100 ARMv7 events 5569 * 0x20000 0x1000 Software events 5570 */ 5571#define __PMC_EVENTS() \ 5572 __PMC_EV_BLOCK(TSC, 0x01000) \ 5573 __PMC_EV_TSC() \ 5574 __PMC_EV_BLOCK(K7, 0x2000) \ 5575 __PMC_EV_K7() \ --- 20 unchanged lines hidden (view full) --- 5596 __PMC_EV_BLOCK(UCF, 0x12000) \ 5597 __PMC_EV_UCF() \ 5598 __PMC_EV_BLOCK(UCP, 0x12080) \ 5599 __PMC_EV_UCP() \ 5600 __PMC_EV_BLOCK(PPC7450, 0x13000) \ 5601 __PMC_EV_PPC7450() \ 5602 __PMC_EV_BLOCK(PPC970, 0x13100) \ 5603 __PMC_EV_PPC970() \ |
5604 __PMC_EV_BLOCK(E500, 0x13300) \ 5605 __PMC_EV_E500() \ |
|
5439 __PMC_EV_BLOCK(ARMV7, 0x14000) \ 5440 __PMC_EV_ARMV7() \ 5441 5442#define PMC_EVENT_FIRST PMC_EV_TSC_TSC 5443#define PMC_EVENT_LAST PMC_EV_SOFT_LAST 5444 5445#endif /* _DEV_HWPMC_PMC_EVENTS_H_ */ | 5606 __PMC_EV_BLOCK(ARMV7, 0x14000) \ 5607 __PMC_EV_ARMV7() \ 5608 5609#define PMC_EVENT_FIRST PMC_EV_TSC_TSC 5610#define PMC_EVENT_LAST PMC_EV_SOFT_LAST 5611 5612#endif /* _DEV_HWPMC_PMC_EVENTS_H_ */ |