Deleted Added
full compact
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_ */