52 .pme_desc =
"Dispatched FPU Operations",
56 { .pme_uname =
"OPS_ADD",
57 .pme_udesc =
"Add pipe ops",
60 { .pme_uname =
"OPS_MULTIPLY",
61 .pme_udesc =
"Multiply pipe ops",
64 { .pme_uname =
"OPS_STORE",
65 .pme_udesc =
"Store pipe ops",
68 { .pme_uname =
"OPS_ADD_PIPE_LOAD_OPS",
69 .pme_udesc =
"Add pipe load ops",
72 { .pme_uname =
"OPS_MULTIPLY_PIPE_LOAD_OPS",
73 .pme_udesc =
"Multiply pipe load ops",
76 { .pme_uname =
"OPS_STORE_PIPE_LOAD_OPS",
77 .pme_udesc =
"Store pipe load ops",
81 .pme_udesc =
"All sub-events selected",
86{.pme_name =
"CYCLES_NO_FPU_OPS_RETIRED",
88 .pme_desc =
"Cycles with no FPU Ops Retired",
90{.pme_name =
"DISPATCHED_FPU_OPS_FAST_FLAG",
92 .pme_desc =
"Dispatched Fast Flag FPU Operations",
94{.pme_name =
"SEGMENT_REGISTER_LOADS",
96 .pme_desc =
"Segment Register Loads",
128 { .pme_uname =
"ALL",
129 .pme_udesc =
"All segments",
134{.pme_name =
"PIPELINE_RESTART_DUE_TO_SELF_MODIFYING_CODE",
136 .pme_desc =
"Pipeline restart due to self-modifying code",
138{.pme_name =
"PIPELINE_RESTART_DUE_TO_PROBE_HIT",
140 .pme_desc =
"Pipeline restart due to probe hit",
142{.pme_name =
"LS_BUFFER_2_FULL_CYCLES",
144 .pme_desc =
"LS Buffer 2 Full",
146{.pme_name =
"LOCKED_OPS",
148 .pme_desc =
"Locked Operations",
152 { .pme_uname =
"EXECUTED",
153 .pme_udesc =
"The number of locked instructions executed",
156 { .pme_uname =
"CYCLES_SPECULATIVE_PHASE",
157 .pme_udesc =
"The number of cycles spent in speculative phase",
160 { .pme_uname =
"CYCLES_NON_SPECULATIVE_PHASE",
161 .pme_udesc =
"The number of cycles spent in non-speculative phase (including cache miss penalty)",
164 { .pme_uname =
"ALL",
165 .pme_udesc =
"All sub-events selected",
170{.pme_name =
"MEMORY_REQUESTS",
172 .pme_desc =
"Memory Requests by Type",
176 { .pme_uname =
"NON_CACHEABLE",
177 .pme_udesc =
"Requests to non-cacheable (UC) memory",
180 { .pme_uname =
"WRITE_COMBINING",
181 .pme_udesc =
"Requests to write-combining (WC) memory or WC buffer flushes to WB memory",
184 { .pme_uname =
"STREAMING_STORE",
185 .pme_udesc =
"Streaming store (SS) requests",
188 { .pme_uname =
"ALL",
189 .pme_udesc =
"All sub-events selected",
194{.pme_name =
"DATA_CACHE_ACCESSES",
196 .pme_desc =
"Data Cache Accesses",
198{.pme_name =
"DATA_CACHE_MISSES",
200 .pme_desc =
"Data Cache Misses",
202{.pme_name =
"DATA_CACHE_REFILLS",
204 .pme_desc =
"Data Cache Refills from L2 or System",
208 { .pme_uname =
"SYSTEM",
209 .pme_udesc =
"Refill from System",
212 { .pme_uname =
"L2_SHARED",
213 .pme_udesc =
"Shared-state line from L2",
216 { .pme_uname =
"L2_EXCLUSIVE",
217 .pme_udesc =
"Exclusive-state line from L2",
220 { .pme_uname =
"L2_OWNED",
221 .pme_udesc =
"Owned-state line from L2",
224 { .pme_uname =
"L2_MODIFIED",
225 .pme_udesc =
"Modified-state line from L2",
228 { .pme_uname =
"ALL",
229 .pme_udesc =
"Shared, Exclusive, Owned, Modified State Refills",
234{.pme_name =
"DATA_CACHE_REFILLS_FROM_SYSTEM",
236 .pme_desc =
"Data Cache Refills from System",
240 { .pme_uname =
"INVALID",
241 .pme_udesc =
"Invalid",
244 { .pme_uname =
"SHARED",
245 .pme_udesc =
"Shared",
248 { .pme_uname =
"EXCLUSIVE",
249 .pme_udesc =
"Exclusive",
252 { .pme_uname =
"OWNED",
253 .pme_udesc =
"Owned",
256 { .pme_uname =
"MODIFIED",
257 .pme_udesc =
"Modified",
260 { .pme_uname =
"ALL",
261 .pme_udesc =
"Invalid, Shared, Exclusive, Owned, Modified",
266{.pme_name =
"DATA_CACHE_LINES_EVICTED",
268 .pme_desc =
"Data Cache Lines Evicted",
272 { .pme_uname =
"INVALID",
273 .pme_udesc =
"Invalid",
276 { .pme_uname =
"SHARED",
277 .pme_udesc =
"Shared",
280 { .pme_uname =
"EXCLUSIVE",
281 .pme_udesc =
"Exclusive",
284 { .pme_uname =
"OWNED",
285 .pme_udesc =
"Owned",
288 { .pme_uname =
"MODIFIED",
289 .pme_udesc =
"Modified",
292 { .pme_uname =
"ALL",
293 .pme_udesc =
"Invalid, Shared, Exclusive, Owned, Modified",
298{.pme_name =
"L1_DTLB_MISS_AND_L2_DTLB_HIT",
300 .pme_desc =
"L1 DTLB Miss and L2 DTLB Hit",
302{.pme_name =
"L1_DTLB_AND_L2_DTLB_MISS",
304 .pme_desc =
"L1 DTLB and L2 DTLB Miss",
306{.pme_name =
"MISALIGNED_ACCESSES",
308 .pme_desc =
"Misaligned Accesses",
310{.pme_name =
"MICROARCHITECTURAL_LATE_CANCEL_OF_AN_ACCESS",
312 .pme_desc =
"Microarchitectural Late Cancel of an Access",
314{.pme_name =
"MICROARCHITECTURAL_EARLY_CANCEL_OF_AN_ACCESS",
316 .pme_desc =
"Microarchitectural Early Cancel of an Access",
318{.pme_name =
"SCRUBBER_SINGLE_BIT_ECC_ERRORS",
320 .pme_desc =
"Single-bit ECC Errors Recorded by Scrubber",
324 { .pme_uname =
"SCRUBBER_ERROR",
325 .pme_udesc =
"Scrubber error",
328 { .pme_uname =
"PIGGYBACK_ERROR",
329 .pme_udesc =
"Piggyback scrubber errors",
332 { .pme_uname =
"ALL",
333 .pme_udesc =
"All sub-events selected",
338{.pme_name =
"PREFETCH_INSTRUCTIONS_DISPATCHED",
340 .pme_desc =
"Prefetch Instructions Dispatched",
344 { .pme_uname =
"LOAD",
345 .pme_udesc =
"Load (Prefetch, PrefetchT0/T1/T2)",
348 { .pme_uname =
"STORE",
349 .pme_udesc =
"Store (PrefetchW)",
352 { .pme_uname =
"NTA",
353 .pme_udesc =
"NTA (PrefetchNTA)",
356 { .pme_uname =
"ALL",
357 .pme_udesc =
"All sub-events selected",
362{.pme_name =
"DCACHE_MISSES_BY_LOCKED_INSTRUCTIONS",
364 .pme_desc =
"DCACHE Misses by Locked Instructions",
368 { .pme_uname =
"DATA_CACHE_MISSES_BY_LOCKED_INSTRUCTIONS",
369 .pme_udesc =
"Data cache misses by locked instructions",
372 { .pme_uname =
"ALL",
373 .pme_udesc =
"All sub-events selected",
378{.pme_name =
"DATA_PREFETCHES",
380 .pme_desc =
"Data Prefetcher",
384 { .pme_uname =
"CANCELLED",
385 .pme_udesc =
"Cancelled prefetches",
388 { .pme_uname =
"ATTEMPTED",
389 .pme_udesc =
"Prefetch attempts",
392 { .pme_uname =
"ALL",
393 .pme_udesc =
"All sub-events selected",
398{.pme_name =
"SYSTEM_READ_RESPONSES",
400 .pme_desc =
"System Read Responses by Coherency State",
404 { .pme_uname =
"EXCLUSIVE",
405 .pme_udesc =
"Exclusive",
408 { .pme_uname =
"MODIFIED",
409 .pme_udesc =
"Modified",
412 { .pme_uname =
"SHARED",
413 .pme_udesc =
"Shared",
416 { .pme_uname =
"ALL",
417 .pme_udesc =
"Exclusive, Modified, Shared",
422{.pme_name =
"QUADWORDS_WRITTEN_TO_SYSTEM",
424 .pme_desc =
"Quadwords Written to System",
428 { .pme_uname =
"QUADWORD_WRITE_TRANSFER",
429 .pme_udesc =
"Quadword write transfer",
432 { .pme_uname =
"ALL",
433 .pme_udesc =
"All sub-events selected",
438{.pme_name =
"REQUESTS_TO_L2",
440 .pme_desc =
"Requests to L2 Cache",
444 { .pme_uname =
"INSTRUCTIONS",
445 .pme_udesc =
"IC fill",
448 { .pme_uname =
"DATA",
449 .pme_udesc =
"DC fill",
452 { .pme_uname =
"TLB_WALK",
453 .pme_udesc =
"TLB fill (page table walks)",
456 { .pme_uname =
"SNOOP",
457 .pme_udesc =
"Tag snoop request",
460 { .pme_uname =
"CANCELLED",
461 .pme_udesc =
"Cancelled request",
464 { .pme_uname =
"ALL",
465 .pme_udesc =
"All non-cancelled requests",
470{.pme_name =
"L2_CACHE_MISS",
472 .pme_desc =
"L2 Cache Misses",
476 { .pme_uname =
"INSTRUCTIONS",
477 .pme_udesc =
"IC fill",
480 { .pme_uname =
"DATA",
481 .pme_udesc =
"DC fill (includes possible replays, whereas event 41h does not)",
484 { .pme_uname =
"TLB_WALK",
485 .pme_udesc =
"TLB page table walk",
488 { .pme_uname =
"ALL",
489 .pme_udesc =
"Instructions, Data, TLB walk",
494{.pme_name =
"L2_FILL_WRITEBACK",
496 .pme_desc =
"L2 Fill/Writeback",
500 { .pme_uname =
"L2_FILLS",
501 .pme_udesc =
"L2 fills (victims from L1 caches, TLB page table walks and data prefetches)",
504 { .pme_uname =
"ALL",
505 .pme_udesc =
"All sub-events selected",
509 { .pme_uname =
"L2_WRITEBACKS",
510 .pme_udesc =
"L2 Writebacks to system.",
514 { .pme_uname =
"ALL",
515 .pme_udesc =
"All sub-events selected",
521{.pme_name =
"INSTRUCTION_CACHE_FETCHES",
523 .pme_desc =
"Instruction Cache Fetches",
525{.pme_name =
"INSTRUCTION_CACHE_MISSES",
527 .pme_desc =
"Instruction Cache Misses",
529{.pme_name =
"INSTRUCTION_CACHE_REFILLS_FROM_L2",
531 .pme_desc =
"Instruction Cache Refills from L2",
533{.pme_name =
"INSTRUCTION_CACHE_REFILLS_FROM_SYSTEM",
535 .pme_desc =
"Instruction Cache Refills from System",
537{.pme_name =
"L1_ITLB_MISS_AND_L2_ITLB_HIT",
539 .pme_desc =
"L1 ITLB Miss and L2 ITLB Hit",
541{.pme_name =
"L1_ITLB_MISS_AND_L2_ITLB_MISS",
543 .pme_desc =
"L1 ITLB Miss and L2 ITLB Miss",
545{.pme_name =
"PIPELINE_RESTART_DUE_TO_INSTRUCTION_STREAM_PROBE",
547 .pme_desc =
"Pipeline Restart Due to Instruction Stream Probe",
549{.pme_name =
"INSTRUCTION_FETCH_STALL",
551 .pme_desc =
"Instruction Fetch Stall",
553{.pme_name =
"RETURN_STACK_HITS",
555 .pme_desc =
"Return Stack Hits",
557{.pme_name =
"RETURN_STACK_OVERFLOWS",
559 .pme_desc =
"Return Stack Overflows",
561{.pme_name =
"RETIRED_CLFLUSH_INSTRUCTIONS",
563 .pme_desc =
"Retired CLFLUSH Instructions",
565{.pme_name =
"RETIRED_CPUID_INSTRUCTIONS",
567 .pme_desc =
"Retired CPUID Instructions",
569{.pme_name =
"CPU_CLK_UNHALTED",
571 .pme_desc =
"CPU Clocks not Halted",
573{.pme_name =
"RETIRED_INSTRUCTIONS",
575 .pme_desc =
"Retired Instructions",
577{.pme_name =
"RETIRED_UOPS",
579 .pme_desc =
"Retired uops",
581{.pme_name =
"RETIRED_BRANCH_INSTRUCTIONS",
583 .pme_desc =
"Retired Branch Instructions",
585{.pme_name =
"RETIRED_MISPREDICTED_BRANCH_INSTRUCTIONS",
587 .pme_desc =
"Retired Mispredicted Branch Instructions",
589{.pme_name =
"RETIRED_TAKEN_BRANCH_INSTRUCTIONS",
591 .pme_desc =
"Retired Taken Branch Instructions",
593{.pme_name =
"RETIRED_TAKEN_BRANCH_INSTRUCTIONS_MISPREDICTED",
595 .pme_desc =
"Retired Taken Branch Instructions Mispredicted",
597{.pme_name =
"RETIRED_FAR_CONTROL_TRANSFERS",
599 .pme_desc =
"Retired Far Control Transfers",
601{.pme_name =
"RETIRED_BRANCH_RESYNCS",
603 .pme_desc =
"Retired Branch Resyncs",
605{.pme_name =
"RETIRED_NEAR_RETURNS",
607 .pme_desc =
"Retired Near Returns",
609{.pme_name =
"RETIRED_NEAR_RETURNS_MISPREDICTED",
611 .pme_desc =
"Retired Near Returns Mispredicted",
613{.pme_name =
"RETIRED_INDIRECT_BRANCHES_MISPREDICTED",
615 .pme_desc =
"Retired Indirect Branches Mispredicted",
617{.pme_name =
"RETIRED_MMX_AND_FP_INSTRUCTIONS",
619 .pme_desc =
"Retired MMX/FP Instructions",
623 { .pme_uname =
"X87",
624 .pme_udesc =
"x87 instructions",
627 { .pme_uname =
"MMX_AND_3DNOW",
628 .pme_udesc =
"MMX and 3DNow! instructions",
631 { .pme_uname =
"PACKED_SSE_AND_SSE2",
632 .pme_udesc =
"Packed SSE and SSE2 instructions",
635 { .pme_uname =
"SCALAR_SSE_AND_SSE2",
636 .pme_udesc =
"Scalar SSE and SSE2 instructions",
639 { .pme_uname =
"ALL",
640 .pme_udesc =
"X87, MMX(TM), 3DNow!(TM), Scalar and Packed SSE and SSE2 instructions",
645{.pme_name =
"RETIRED_FASTPATH_DOUBLE_OP_INSTRUCTIONS",
647 .pme_desc =
"Retired Fastpath Double Op Instructions",
651 { .pme_uname =
"POSITION_0",
652 .pme_udesc =
"With low op in position 0",
655 { .pme_uname =
"POSITION_1",
656 .pme_udesc =
"With low op in position 1",
659 { .pme_uname =
"POSITION_2",
660 .pme_udesc =
"With low op in position 2",
663 { .pme_uname =
"ALL",
664 .pme_udesc =
"With low op in position 0, 1, or 2",
669{.pme_name =
"INTERRUPTS_MASKED_CYCLES",
671 .pme_desc =
"Interrupts-Masked Cycles",
673{.pme_name =
"INTERRUPTS_MASKED_CYCLES_WITH_INTERRUPT_PENDING",
675 .pme_desc =
"Interrupts-Masked Cycles with Interrupt Pending",
677{.pme_name =
"INTERRUPTS_TAKEN",
679 .pme_desc =
"Interrupts Taken",
681{.pme_name =
"DECODER_EMPTY",
683 .pme_desc =
"Decoder Empty",
685{.pme_name =
"DISPATCH_STALLS",
687 .pme_desc =
"Dispatch Stalls",
689{.pme_name =
"DISPATCH_STALL_FOR_BRANCH_ABORT",
691 .pme_desc =
"Dispatch Stall for Branch Abort to Retire",
693{.pme_name =
"DISPATCH_STALL_FOR_SERIALIZATION",
695 .pme_desc =
"Dispatch Stall for Serialization",
697{.pme_name =
"DISPATCH_STALL_FOR_SEGMENT_LOAD",
699 .pme_desc =
"Dispatch Stall for Segment Load",
701{.pme_name =
"DISPATCH_STALL_FOR_REORDER_BUFFER_FULL",
703 .pme_desc =
"Dispatch Stall for Reorder Buffer Full",
705{.pme_name =
"DISPATCH_STALL_FOR_RESERVATION_STATION_FULL",
707 .pme_desc =
"Dispatch Stall for Reservation Station Full",
709{.pme_name =
"DISPATCH_STALL_FOR_FPU_FULL",
711 .pme_desc =
"Dispatch Stall for FPU Full",
713{.pme_name =
"DISPATCH_STALL_FOR_LS_FULL",
715 .pme_desc =
"Dispatch Stall for LS Full",
717{.pme_name =
"DISPATCH_STALL_WAITING_FOR_ALL_QUIET",
719 .pme_desc =
"Dispatch Stall Waiting for All Quiet",
721{.pme_name =
"DISPATCH_STALL_FOR_FAR_TRANSFER_OR_RSYNC",
723 .pme_desc =
"Dispatch Stall for Far Transfer or Resync to Retire",
725{.pme_name =
"FPU_EXCEPTIONS",
727 .pme_desc =
"FPU Exceptions",
731 { .pme_uname =
"X87_RECLASS_MICROFAULTS",
732 .pme_udesc =
"x87 reclass microfaults",
735 { .pme_uname =
"SSE_RETYPE_MICROFAULTS",
736 .pme_udesc =
"SSE retype microfaults",
739 { .pme_uname =
"SSE_RECLASS_MICROFAULTS",
740 .pme_udesc =
"SSE reclass microfaults",
743 { .pme_uname =
"SSE_AND_X87_MICROTRAPS",
744 .pme_udesc =
"SSE and x87 microtraps",
747 { .pme_uname =
"ALL",
748 .pme_udesc =
"All sub-events selected",
753{.pme_name =
"DR0_BREAKPOINT_MATCHES",
755 .pme_desc =
"DR0 Breakpoint Matches",
757{.pme_name =
"DR1_BREAKPOINT_MATCHES",
759 .pme_desc =
"DR1 Breakpoint Matches",
761{.pme_name =
"DR2_BREAKPOINT_MATCHES",
763 .pme_desc =
"DR2 Breakpoint Matches",
765{.pme_name =
"DR3_BREAKPOINT_MATCHES",
767 .pme_desc =
"DR3 Breakpoint Matches",
769{.pme_name =
"DRAM_ACCESSES_PAGE",
771 .pme_desc =
"DRAM Accesses",
775 { .pme_uname =
"HIT",
776 .pme_udesc =
"Page hit",
779 { .pme_uname =
"MISS",
780 .pme_udesc =
"Page Miss",
783 { .pme_uname =
"CONFLICT",
784 .pme_udesc =
"Page Conflict",
787 { .pme_uname =
"ALL",
788 .pme_udesc =
"Page Hit, Miss, or Conflict",
793{.pme_name =
"MEMORY_CONTROLLER_PAGE_TABLE_OVERFLOWS",
795 .pme_desc =
"Memory Controller Page Table Overflows",
797{.pme_name =
"MEMORY_CONTROLLER_TURNAROUNDS",
799 .pme_desc =
"Memory Controller Turnarounds",
803 { .pme_uname =
"CHIP_SELECT",
804 .pme_udesc =
"DIMM (chip select) turnaround",
807 { .pme_uname =
"READ_TO_WRITE",
808 .pme_udesc =
"Read to write turnaround",
811 { .pme_uname =
"WRITE_TO_READ",
812 .pme_udesc =
"Write to read turnaround",
815 { .pme_uname =
"ALL",
816 .pme_udesc =
"All Memory Controller Turnarounds",
821{.pme_name =
"MEMORY_CONTROLLER_BYPASS",
823 .pme_desc =
"Memory Controller Bypass Counter Saturation",
827 { .pme_uname =
"HIGH_PRIORITY",
828 .pme_udesc =
"Memory controller high priority bypass",
831 { .pme_uname =
"LOW_PRIORITY",
832 .pme_udesc =
"Memory controller low priority bypass",
835 { .pme_uname =
"DRAM_INTERFACE",
836 .pme_udesc =
"DRAM controller interface bypass",
839 { .pme_uname =
"DRAM_QUEUE",
840 .pme_udesc =
"DRAM controller queue bypass",
843 { .pme_uname =
"ALL",
844 .pme_udesc =
"All sub-events selected",
849{.pme_name =
"SIZED_BLOCKS",
851 .pme_desc =
"Sized Blocks",
855 { .pme_uname =
"32_BYTE_WRITES",
856 .pme_udesc =
"32-byte Sized Writes",
859 { .pme_uname =
"64_BYTE_WRITES",
860 .pme_udesc =
"64-byte Sized Writes",
863 { .pme_uname =
"32_BYTE_READS",
864 .pme_udesc =
"32-byte Sized Reads",
867 { .pme_uname =
"64_BYTE_READS",
868 .pme_udesc =
"64-byte Sized Reads",
871 { .pme_uname =
"ALL",
872 .pme_udesc =
"All sub-events selected",
877{.pme_name =
"THERMAL_STATUS_AND_ECC_ERRORS",
879 .pme_desc =
"Thermal Status and ECC Errors",
883 { .pme_uname =
"CLKS_CPU_ACTIVE",
884 .pme_udesc =
"Number of clocks CPU is active when HTC is active",
888 { .pme_uname =
"CLKS_CPU_INACTIVE",
889 .pme_udesc =
"Number of clocks CPU clock is inactive when HTC is active",
893 { .pme_uname =
"CLKS_DIE_TEMP_TOO_HIGH",
894 .pme_udesc =
"Number of clocks when die temperature is higher than the software high temperature threshold",
898 { .pme_uname =
"CLKS_TEMP_THRESHOLD_EXCEEDED",
899 .pme_udesc =
"Number of clocks when high temperature threshold was exceeded",
903 { .pme_uname =
"DRAM_ECC_ERRORS",
904 .pme_udesc =
"Number of correctable and Uncorrectable DRAM ECC errors",
907 { .pme_uname =
"ALL",
908 .pme_udesc =
"All sub-events selected",
912 { .pme_uname =
"ALL",
913 .pme_udesc =
"All sub-events selected",
919{.pme_name =
"CPU_IO_REQUESTS_TO_MEMORY_IO",
921 .pme_desc =
"CPU/IO Requests to Memory/IO",
925 { .pme_uname =
"I_O_TO_I_O",
926 .pme_udesc =
"I/O to I/O",
929 { .pme_uname =
"I_O_TO_MEM",
930 .pme_udesc =
"I/O to Mem",
933 { .pme_uname =
"CPU_TO_I_O",
934 .pme_udesc =
"CPU to I/O",
937 { .pme_uname =
"CPU_TO_MEM",
938 .pme_udesc =
"CPU to Mem",
941 { .pme_uname =
"TO_REMOTE_NODE",
942 .pme_udesc =
"To remote node",
945 { .pme_uname =
"TO_LOCAL_NODE",
946 .pme_udesc =
"To local node",
949 { .pme_uname =
"FROM_REMOTE_NODE",
950 .pme_udesc =
"From remote node",
953 { .pme_uname =
"FROM_LOCAL_NODE",
954 .pme_udesc =
"From local node",
957 { .pme_uname =
"ALL",
958 .pme_udesc =
"All sub-events selected",
963{.pme_name =
"CACHE_BLOCK",
965 .pme_desc =
"Cache Block Commands",
969 { .pme_uname =
"VICTIM_WRITEBACK",
970 .pme_udesc =
"Victim Block (Writeback)",
973 { .pme_uname =
"DCACHE_LOAD_MISS",
974 .pme_udesc =
"Read Block (Dcache load miss refill)",
977 { .pme_uname =
"SHARED_ICACHE_REFILL",
978 .pme_udesc =
"Read Block Shared (Icache refill)",
981 { .pme_uname =
"READ_BLOCK_MODIFIED",
982 .pme_udesc =
"Read Block Modified (Dcache store miss refill)",
985 { .pme_uname =
"READ_TO_DIRTY",
986 .pme_udesc =
"Change to Dirty (first store to clean block already in cache)",
989 { .pme_uname =
"ALL",
990 .pme_udesc =
"All sub-events selected",
995{.pme_name =
"SIZED_COMMANDS",
997 .pme_desc =
"Sized Commands",
1001 { .pme_uname =
"NON_POSTED_WRITE_BYTE",
1002 .pme_udesc =
"NonPosted SzWr Byte (1-32 bytes) Legacy or mapped I/O, typically 1-4 bytes",
1005 { .pme_uname =
"NON_POSTED_WRITE_DWORD",
1006 .pme_udesc =
"NonPosted SzWr Dword (1-16 dwords) Legacy or mapped I/O, typically 1 dword",
1009 { .pme_uname =
"POSTED_WRITE_BYTE",
1010 .pme_udesc =
"Posted SzWr Byte (1-32 bytes) Sub-cache-line DMA writes, size varies; also flushes of partially-filled Write Combining buffer",
1013 { .pme_uname =
"POSTED_WRITE_DWORD",
1014 .pme_udesc =
"Posted SzWr Dword (1-16 dwords) Block-oriented DMA writes, often cache-line sized; also processor Write Combining buffer flushes",
1017 { .pme_uname =
"READ_BYTE_4_BYTES",
1018 .pme_udesc =
"SzRd Byte (4 bytes) Legacy or mapped I/O",
1021 { .pme_uname =
"READ_DWORD_1_16_DWORDS",
1022 .pme_udesc =
"SzRd Dword (1-16 dwords) Block-oriented DMA reads, typically cache-line size",
1025 { .pme_uname =
"READ_MODIFY_WRITE",
1026 .pme_udesc =
"RdModWr",
1029 { .pme_uname =
"ALL",
1030 .pme_udesc =
"All sub-events selected",
1035{.pme_name =
"PROBE",
1037 .pme_desc =
"Probe Responses and Upstream Requests",
1041 { .pme_uname =
"MISS",
1042 .pme_udesc =
"Probe miss",
1045 { .pme_uname =
"HIT_CLEAN",
1046 .pme_udesc =
"Probe hit clean",
1049 { .pme_uname =
"HIT_DIRTY_NO_MEMORY_CANCEL",
1050 .pme_udesc =
"Probe hit dirty without memory cancel (probed by Sized Write or Change2Dirty)",
1053 { .pme_uname =
"HIT_DIRTY_WITH_MEMORY_CANCEL",
1054 .pme_udesc =
"Probe hit dirty with memory cancel (probed by DMA read or cache refill request)",
1057 { .pme_uname =
"UPSTREAM_DISPLAY_REFRESH_READS",
1058 .pme_udesc =
"Upstream display refresh reads",
1061 { .pme_uname =
"UPSTREAM_NON_DISPLAY_REFRESH_READS",
1062 .pme_udesc =
"Upstream non-display refresh reads",
1065 { .pme_uname =
"ALL",
1066 .pme_udesc =
"All sub-events selected",
1070 { .pme_uname =
"UPSTREAM_WRITES",
1071 .pme_udesc =
"Upstream writes",
1075 { .pme_uname =
"ALL",
1076 .pme_udesc =
"All sub-events selected",
1084 .pme_desc =
"GART Events",
1088 { .pme_uname =
"APERTURE_HIT_FROM_CPU",
1089 .pme_udesc =
"GART aperture hit on access from CPU",
1092 { .pme_uname =
"APERTURE_HIT_FROM_IO",
1093 .pme_udesc =
"GART aperture hit on access from I/O",
1096 { .pme_uname =
"MISS",
1097 .pme_udesc =
"GART miss",
1100 { .pme_uname =
"ALL",
1101 .pme_udesc =
"All sub-events selected",
1106{.pme_name =
"HYPERTRANSPORT_LINK0",
1108 .pme_desc =
"HyperTransport Link 0 Transmit Bandwidth",
1112 { .pme_uname =
"COMMAND_DWORD_SENT",
1113 .pme_udesc =
"Command dword sent",
1116 { .pme_uname =
"DATA_DWORD_SENT",
1117 .pme_udesc =
"Data dword sent",
1120 { .pme_uname =
"BUFFER_RELEASE_DWORD_SENT",
1121 .pme_udesc =
"Buffer release dword sent",
1124 { .pme_uname =
"NOP_DWORD_SENT",
1125 .pme_udesc =
"Nop dword sent (idle)",
1128 { .pme_uname =
"ALL",
1129 .pme_udesc =
"All sub-events selected",
1134{.pme_name =
"HYPERTRANSPORT_LINK1",
1136 .pme_desc =
"HyperTransport Link 1 Transmit Bandwidth",
1140 { .pme_uname =
"COMMAND_DWORD_SENT",
1141 .pme_udesc =
"Command dword sent",
1144 { .pme_uname =
"DATA_DWORD_SENT",
1145 .pme_udesc =
"Data dword sent",
1148 { .pme_uname =
"BUFFER_RELEASE_DWORD_SENT",
1149 .pme_udesc =
"Buffer release dword sent",
1152 { .pme_uname =
"NOP_DWORD_SENT",
1153 .pme_udesc =
"Nop dword sent (idle)",
1156 { .pme_uname =
"ALL",
1157 .pme_udesc =
"All sub-events selected",
1162{.pme_name =
"HYPERTRANSPORT_LINK2",
1164 .pme_desc =
"HyperTransport Link 2 Transmit Bandwidth",
1168 { .pme_uname =
"COMMAND_DWORD_SENT",
1169 .pme_udesc =
"Command dword sent",
1172 { .pme_uname =
"DATA_DWORD_SENT",
1173 .pme_udesc =
"Data dword sent",
1176 { .pme_uname =
"BUFFER_RELEASE_DWORD_SENT",
1177 .pme_udesc =
"Buffer release dword sent",
1180 { .pme_uname =
"NOP_DWORD_SENT",
1181 .pme_udesc =
"Nop dword sent (idle)",
1184 { .pme_uname =
"ALL",
1185 .pme_udesc =
"All sub-events selected",
1192#define PME_AMD64_K8_EVENT_COUNT (sizeof(amd64_k8_pe)/sizeof(pme_amd64_entry_t))
1193#define PME_AMD64_K8_CPU_CLK_UNHALTED 40
1194#define PME_AMD64_K8_RETIRED_INSTRUCTIONS 41
static pme_amd64_entry_t amd64_k8_pe[]
#define PFMLIB_AMD64_K8_REV_D
#define PFMLIB_AMD64_UMASK_COMBO
#define PFMLIB_AMD64_K8_REV_F
#define PFMLIB_AMD64_TILL_K8_REV_E
#define PFMLIB_AMD64_K8_REV_E
#define PFMLIB_AMD64_TILL_K8_REV_C