1.\" Copyright (c) 2013 Hiren Panchasara <hiren.panchasara@gmail.com> 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.Dd March 22, 2013 26.Dt PMC.HASWELL 3 27.Os 28.Sh NAME 29.Nm pmc.haswell 30.Nd measurement events for 31.Tn Intel 32.Tn Haswell 33family CPUs 34.Sh LIBRARY 35.Lb libpmc 36.Sh SYNOPSIS 37.In pmc.h 38.Sh DESCRIPTION 39.Tn Intel 40.Tn "Haswell" 41CPUs contain PMCs conforming to version 2 of the 42.Tn Intel 43performance measurement architecture. 44These CPUs may contain up to two classes of PMCs: 45.Bl -tag -width "Li PMC_CLASS_IAP" 46.It Li PMC_CLASS_IAF 47Fixed-function counters that count only one hardware event per counter. 48.It Li PMC_CLASS_IAP 49Programmable counters that may be configured to count one of a defined 50set of hardware events. 51.El 52.Pp 53The number of PMCs available in each class and their widths need to be 54determined at run time by calling 55.Xr pmc_cpuinfo 3 . 56.Pp 57Intel Haswell PMCs are documented in 58.Rs 59.%B "Intel(R) 64 and IA-32 Architectures Software Developer's Manual" 60.%T "Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B and 3C" 61.%N "Order Number: 325462-045US" 62.%D January 2013 63.%Q "Intel Corporation" 64.Re 65.Ss HASWELL FIXED FUNCTION PMCS 66These PMCs and their supported events are documented in 67.Xr pmc.iaf 3 . 68.Ss HASWELL PROGRAMMABLE PMCS 69The programmable PMCs support the following capabilities: 70.Bl -column "PMC_CAP_INTERRUPT" "Support" 71.It Em Capability Ta Em Support 72.It PMC_CAP_CASCADE Ta \&No 73.It PMC_CAP_EDGE Ta Yes 74.It PMC_CAP_INTERRUPT Ta Yes 75.It PMC_CAP_INVERT Ta Yes 76.It PMC_CAP_READ Ta Yes 77.It PMC_CAP_PRECISE Ta \&No 78.It PMC_CAP_SYSTEM Ta Yes 79.It PMC_CAP_TAGGING Ta \&No 80.It PMC_CAP_THRESHOLD Ta Yes 81.It PMC_CAP_USER Ta Yes 82.It PMC_CAP_WRITE Ta Yes 83.El 84.Ss Event Qualifiers 85Event specifiers for these PMCs support the following common 86qualifiers: 87.Bl -tag -width indent 88.It Li rsp= Ns Ar value 89Configure the Off-core Response bits. 90.Bl -tag -width indent 91.It Li DMND_DATA_RD 92Counts the number of demand and DCU prefetch data reads of full 93and partial cachelines as well as demand data page table entry 94cacheline reads. 95Does not count L2 data read prefetches or instruction fetches. 96.It Li REQ_DMND_RFO 97Counts the number of demand and DCU prefetch reads for ownership (RFO) 98requests generated by a write to data cacheline. 99Does not count L2 RFO prefetches. 100.It Li REQ_DMND_IFETCH 101Counts the number of demand and DCU prefetch instruction cacheline reads. 102Does not count L2 code read prefetches. 103.It Li REQ_WB 104Counts the number of writeback (modified to exclusive) transactions. 105.It Li REQ_PF_DATA_RD 106Counts the number of data cacheline reads generated by L2 prefetchers. 107.It Li REQ_PF_RFO 108Counts the number of RFO requests generated by L2 prefetchers. 109.It Li REQ_PF_IFETCH 110Counts the number of code reads generated by L2 prefetchers. 111.It Li REQ_PF_LLC_DATA_RD 112L2 prefetcher to L3 for loads. 113.It Li REQ_PF_LLC_RFO 114RFO requests generated by L2 prefetcher 115.It Li REQ_PF_LLC_IFETCH 116L2 prefetcher to L3 for instruction fetches. 117.It Li REQ_BUS_LOCKS 118Bus lock and split lock requests. 119.It Li REQ_STRM_ST 120Streaming store requests. 121.It Li REQ_OTHER 122Any other request that crosses IDI, including I/O. 123.It Li RES_ANY 124Catch all value for any response types. 125.It Li RES_SUPPLIER_NO_SUPP 126No Supplier Information available. 127.It Li RES_SUPPLIER_LLC_HITM 128M-state initial lookup stat in L3. 129.It Li RES_SUPPLIER_LLC_HITE 130E-state. 131.It Li RES_SUPPLIER_LLC_HITS 132S-state. 133.It Li RES_SUPPLIER_LLC_HITF 134F-state. 135.It Li RES_SUPPLIER_LOCAL 136Local DRAM Controller. 137.It Li RES_SNOOP_SNP_NONE 138No details on snoop-related information. 139.It Li RES_SNOOP_SNP_NO_NEEDED 140No snoop was needed to satisfy the request. 141.It Li RES_SNOOP_SNP_MISS 142A snoop was needed and it missed all snooped caches: 143-For LLC Hit, ReslHitl was returned by all cores 144-For LLC Miss, Rspl was returned by all sockets and data was returned from 145DRAM. 146.It Li RES_SNOOP_HIT_NO_FWD 147A snoop was needed and it hits in at least one snooped cache. 148Hit denotes a cache-line was valid before snoop effect. 149This includes: 150-Snoop Hit w/ Invalidation (LLC Hit, RFO) 151-Snoop Hit, Left Shared (LLC Hit/Miss, IFetch/Data_RD) 152-Snoop Hit w/ Invalidation and No Forward (LLC Miss, RFO Hit S) 153In the LLC Miss case, data is returned from DRAM. 154.It Li RES_SNOOP_HIT_FWD 155A snoop was needed and data was forwarded from a remote socket. 156This includes: 157-Snoop Forward Clean, Left Shared (LLC Hit/Miss, IFetch/Data_RD/RFT). 158.It Li RES_SNOOP_HITM 159A snoop was needed and it HitM-ed in local or remote cache. 160HitM denotes a cache-line was in modified state before effect as a results of snoop. 161This includes: 162-Snoop HitM w/ WB (LLC miss, IFetch/Data_RD) 163-Snoop Forward Modified w/ Invalidation (LLC Hit/Miss, RFO) 164-Snoop MtoS (LLC Hit, IFetch/Data_RD). 165.It Li RES_NON_DRAM 166Target was non-DRAM system address. 167This includes MMIO transactions. 168.El 169.It Li cmask= Ns Ar value 170Configure the PMC to increment only if the number of configured 171events measured in a cycle is greater than or equal to 172.Ar value . 173.It Li edge 174Configure the PMC to count the number of de-asserted to asserted 175transitions of the conditions expressed by the other qualifiers. 176If specified, the counter will increment only once whenever a 177condition becomes true, irrespective of the number of clocks during 178which the condition remains true. 179.It Li inv 180Invert the sense of comparison when the 181.Dq Li cmask 182qualifier is present, making the counter increment when the number of 183events per cycle is less than the value specified by the 184.Dq Li cmask 185qualifier. 186.It Li os 187Configure the PMC to count events happening at processor privilege 188level 0. 189.It Li usr 190Configure the PMC to count events occurring at privilege levels 1, 2 191or 3. 192.El 193.Pp 194If neither of the 195.Dq Li os 196or 197.Dq Li usr 198qualifiers are specified, the default is to enable both. 199.Ss Event Specifiers (Programmable PMCs) 200Haswell programmable PMCs support the following events: 201.Bl -tag -width indent 202.It Li LD_BLOCKS.STORE_FORWARD 203.Pq Event 03H , Umask 02H 204Loads blocked by overlapping with store buffer that 205cannot be forwarded. 206.It Li MISALIGN_MEM_REF.LOADS 207.Pq Event 05H , Umask 01H 208Speculative cache-line split load uops dispatched to 209L1D. 210.It Li MISALIGN_MEM_REF.STORES 211.Pq Event 05H , Umask 02H 212Speculative cache-line split Store-address uops 213dispatched to L1D. 214.It Li LD_BLOCKS_PARTIAL.ADDRESS_ALIAS 215.Pq Event 07H , Umask 01H 216False dependencies in MOB due to partial compare 217on address. 218.It Li DTLB_LOAD_MISSES.MISS_CAUSES_A_WALK 219.Pq Event 08H , Umask 01H 220Misses in all TLB levels that cause a page walk of any 221page size. 222.It Li DTLB_LOAD_MISSES.WALK_COMPLETED_4K 223.Pq Event 08H , Umask 02H 224Completed page walks due to demand load misses 225that caused 4K page walks in any TLB levels. 226.It Li DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4K 227.Pq Event 08H , Umask 02H 228Completed page walks due to demand load misses 229that caused 2M/4M page walks in any TLB levels. 230.It Li DTLB_LOAD_MISSES.WALK_COMPLETED 231.Pq Event 08H , Umask 0EH 232Completed page walks in any TLB of any page size 233due to demand load misses 234.It Li DTLB_LOAD_MISSES.WALK_DURATION 235.Pq Event 08H , Umask 10H 236Cycle PMH is busy with a walk. 237.It Li DTLB_LOAD_MISSES.STLB_HIT_4K 238.Pq Event 08H , Umask 20H 239Load misses that missed DTLB but hit STLB (4K). 240.It Li DTLB_LOAD_MISSES.STLB_HIT_2M 241.Pq Event 08H , Umask 40H 242Load misses that missed DTLB but hit STLB (2M). 243.It Li DTLB_LOAD_MISSES.STLB_HIT 244.Pq Event 08H , Umask 60H 245Number of cache load STLB hits. 246No page walk. 247.It Li DTLB_LOAD_MISSES.PDE_CACHE_MISS 248.Pq Event 08H , Umask 80H 249DTLB demand load misses with low part of linear-to- 250physical address translation missed 251.It Li INT_MISC.RECOVERY_CYCLES 252.Pq Event 0DH , Umask 03H 253Cycles waiting to recover after Machine Clears 254except JEClear. 255Set Cmask= 1. 256.It Li UOPS_ISSUED.ANY 257.Pq Event 0EH , Umask 01H 258ncrements each cycle the # of Uops issued by the 259RAT to RS. 260Set Cmask = 1, Inv = 1, Any= 1to count stalled cycles 261of this core. 262.It Li UOPS_ISSUED.FLAGS_MERGE 263.Pq Event 0EH , Umask 10H 264Number of flags-merge uops allocated. 265Such uops adds delay. 266.It Li UOPS_ISSUED.SLOW_LEA 267.Pq Event 0EH , Umask 20H 268Number of slow LEA or similar uops allocated. 269Such uop has 3 sources (e.g. 2 sources + immediate) 270regardless if as a result of LEA instruction or not. 271.It Li UOPS_ISSUED.SiNGLE_MUL 272.Pq Event 0EH , Umask 40H 273Number of multiply packed/scalar single precision 274uops allocated. 275.It Li L2_RQSTS.DEMAND_DATA_RD_MISS 276.Pq Event 24H , Umask 21H 277Demand Data Read requests that missed L2, no 278rejects. 279.It Li L2_RQSTS.DEMAND_DATA_RD_HIT 280.Pq Event 24H , Umask 41H 281Demand Data Read requests that hit L2 cache. 282.It Li L2_RQSTS.ALL_DEMAND_DATA_RD 283.Pq Event 24H , Umask E1H 284Counts any demand and L1 HW prefetch data load 285requests to L2. 286.It Li L2_RQSTS.RFO_HIT 287.Pq Event 24H , Umask 42H 288Counts the number of store RFO requests that hit 289the L2 cache. 290.It Li L2_RQSTS.RFO_MISS 291.Pq Event 24H , Umask 22H 292Counts the number of store RFO requests that miss 293the L2 cache. 294.It Li L2_RQSTS.ALL_RFO 295.Pq Event 24H , Umask E2H 296Counts all L2 store RFO requests. 297.It Li L2_RQSTS.CODE_RD_HIT 298.Pq Event 24H , Umask 44H 299Number of instruction fetches that hit the L2 cache. 300.It Li L2_RQSTS.CODE_RD_MISS 301.Pq Event 24H , Umask 24H 302Number of instruction fetches that missed the L2 303cache. 304.It Li L2_RQSTS.ALL_DEMAND_MISS 305.Pq Event 24H , Umask 27H 306Demand requests that miss L2 cache. 307.It Li L2_RQSTS.ALL_DEMAND_REFERENCES 308.Pq Event 24H , Umask E7H 309Demand requests to L2 cache. 310.It Li L2_RQSTS.ALL_CODE_RD 311.Pq Event 24H , Umask E4H 312Counts all L2 code requests. 313.It Li L2_RQSTS.L2_PF_HIT 314.Pq Event 24H , Umask 50H 315Counts all L2 HW prefetcher requests that hit L2. 316.It Li L2_RQSTS.L2_PF_MISS 317.Pq Event 24H , Umask 30H 318Counts all L2 HW prefetcher requests that missed 319L2. 320.It Li L2_RQSTS.ALL_PF 321.Pq Event 24H , Umask F8H 322Counts all L2 HW prefetcher requests. 323.It Li L2_RQSTS.MISS 324.Pq Event 24H , Umask 3FH 325All requests that missed L2. 326.It Li L2_RQSTS.REFERENCES 327.Pq Event 24H , Umask FFH 328All requests to L2 cache. 329.It Li L2_DEMAND_RQSTS.WB_HIT 330.Pq Event 27H , Umask 50H 331Not rejected writebacks that hit L2 cache 332.It Li LONGEST_LAT_CACHE.REFERENCE 333.Pq Event 2EH , Umask 4FH 334This event counts requests originating from the core 335that reference a cache line in the last level cache. 336.It Li LONGEST_LAT_CACHE.MISS 337.Pq Event 2EH , Umask 41H 338This event counts each cache miss condition for 339references to the last level cache. 340.It Li CPU_CLK_UNHALTED.THREAD_P 341.Pq Event 3CH , Umask 00H 342Counts the number of thread cycles while the thread is not in a halt state. 343The thread enters the halt state when it is running the HLT instruction. 344The core frequency may change from time to time due to power or thermal throttling. 345.It Li CPU_CLK_THREAD_UNHALTED.REF_XCLK 346.Pq Event 3CH , Umask 01H 347Increments at the frequency of XCLK (100 MHz) 348when not halted. 349.It Li L1D_PEND_MISS.PENDING 350.Pq Event 48H , Umask 01H 351Increments the number of outstanding L1D misses every cycle. 352Set Cmaks = 1 and Edge =1 to count occurrences. 353.It Li DTLB_STORE_MISSES.MISS_CAUSES_A_WALK 354.Pq Event 49H , Umask 01H 355Miss in all TLB levels causes an page walk of any 356page size (4K/2M/4M/1G). 357.It Li DTLB_STORE_MISSES.WALK_COMPLETED_4K 358.Pq Event 49H , Umask 02H 359Completed page walks due to store misses in one or 360more TLB levels of 4K page structure. 361.It Li DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M 362.Pq Event 49H , Umask 04H 363Completed page walks due to store misses in one or 364more TLB levels of 2M/4M page structure. 365.It Li DTLB_STORE_MISSES.WALK_COMPLETED 366.Pq Event 49H , Umask 0EH 367Completed page walks due to store miss in any TLB 368levels of any page size (4K/2M/4M/1G). 369.It Li DTLB_STORE_MISSES.WALK_DURATION 370.Pq Event 49H , Umask 10H 371Cycles PMH is busy with this walk. 372.It Li DTLB_STORE_MISSES.STLB_HIT_4K 373.Pq Event 49H , Umask 20H 374Store misses that missed DTLB but hit STLB (4K). 375.It Li DTLB_STORE_MISSES.STLB_HIT_2M 376.Pq Event 49H , Umask 40H 377Store misses that missed DTLB but hit STLB (2M). 378.It Li DTLB_STORE_MISSES.STLB_HIT 379.Pq Event 49H , Umask 60H 380Store operations that miss the first TLB level but hit 381the second and do not cause page walks. 382.It Li DTLB_STORE_MISSES.PDE_CACHE_MISS 383.Pq Event 49H , Umask 80H 384DTLB store misses with low part of linear-to-physical 385address translation missed. 386.It Li LOAD_HIT_PRE.SW_PF 387.Pq Event 4CH , Umask 01H 388Non-SW-prefetch load dispatches that hit fill buffer 389allocated for S/W prefetch. 390.It Li LOAD_HIT_PRE.HW_PF 391.Pq Event 4CH , Umask 02H 392Non-SW-prefetch load dispatches that hit fill buffer 393allocated for H/W prefetch. 394.It Li L1D.REPLACEMENT 395.Pq Event 51H , Umask 01H 396Counts the number of lines brought into the L1 data 397cache. 398.It Li MOVE_ELIMINATION.INT_NOT_ELIMINATED 399.Pq Event 58H , Umask 04H 400Number of integer Move Elimination candidate uops 401that were not eliminated. 402.It Li MOVE_ELIMINATION.SMID_NOT_ELIMINATED 403.Pq Event 58H , Umask 08H 404Number of SIMD Move Elimination candidate uops 405that were not eliminated. 406.It Li MOVE_ELIMINATION.INT_ELIMINATED 407.Pq Event 58H , Umask 01H 408Unhalted core cycles when the thread is in ring 0. 409.It Li MOVE_ELIMINATION.SMID_ELIMINATED 410.Pq Event 58H , Umask 02H 411Number of SIMD Move Elimination candidate uops 412that were eliminated. 413.It Li CPL_CYCLES.RING0 414.Pq Event 5CH , Umask 02H 415Unhalted core cycles when the thread is in ring 0. 416.It Li CPL_CYCLES.RING123 417.Pq Event 5CH , Umask 01H 418Unhalted core cycles when the thread is not in ring 0. 419.It Li RS_EVENTS.EMPTY_CYCLES 420.Pq Event 5EH , Umask 01H 421Cycles the RS is empty for the thread. 422.It Li OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD 423.Pq Event 60H , Umask 01H 424Offcore outstanding Demand Data Read transactions in SQ to uncore. 425Set Cmask=1 to count cycles. 426.It Li OFFCORE_REQUESTS_OUTSTANDING.DEMAND_CORE_RD 427.Pq Event 60H , Umask 02H 428Offcore outstanding Demand code Read transactions in SQ to uncore. 429Set Cmask=1 to count cycles. 430.It Li OFFCORE_REQUESTS_OUTSTANDING.DEMAND_RFO 431.Pq Event 60H , Umask 04H 432Offcore outstanding RFO store transactions in SQ to uncore. 433Set Cmask=1 to count cycles. 434.It Li OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD 435.Pq Event 60H , Umask 08H 436Offcore outstanding cacheable data read transactions in SQ to uncore. 437Set Cmask=1 to count cycles. 438.It Li LOCK_CYCLES.SPLIT_LOCK_UC_LOCK_DURATION 439.Pq Event 63H , Umask 01H 440Cycles in which the L1D and L2 are locked, due to a UC lock or split lock. 441.It Li LOCK_CYCLES.CACHE_LOCK_DURATION 442.Pq Event 63H , Umask 02H 443Cycles in which the L1D is locked. 444.It Li IDQ.EMPTY 445.Pq Event 79H , Umask 02H 446Counts cycles the IDQ is empty. 447.It Li IDQ.MITE_UOPS 448.Pq Event 79H , Umask 04H 449Increment each cycle # of uops delivered to IDQ from MITE path. 450Set Cmask = 1 to count cycles. 451.It Li IDQ.DSB_UOPS 452.Pq Event 79H , Umask 08H 453Increment each cycle. # of uops delivered to IDQ 454from DSB path. 455Set Cmask = 1 to count cycles. 456.It Li IDQ.MS_DSB_UOPS 457.Pq Event 79H , Umask 10H 458Increment each cycle # of uops delivered to IDQ when MS_busy by DSB. 459Set Cmask = 1 to count cycles. 460Add Edge=1 to count # of delivery. 461.It Li IDQ.MS_MITE_UOPS 462.Pq Event 79H , Umask 20H 463ncrement each cycle # of uops delivered to IDQ when MS_busy by MITE. 464Set Cmask = 1 to count cycles. 465.It Li IDQ.MS_UOPS 466.Pq Event 79H , Umask 30H 467Increment each cycle # of uops delivered to IDQ from MS by either DSB or MITE. 468Set Cmask = 1 to count cycles. 469.It Li IDQ.ALL_DSB_CYCLES_ANY_UOPS 470.Pq Event 79H , Umask 18H 471Counts cycles DSB is delivered at least one uops. 472Set Cmask = 1. 473.It Li IDQ.ALL_DSB_CYCLES_4_UOPS 474.Pq Event 79H , Umask 18H 475Counts cycles DSB is delivered four uops. 476Set Cmask=4. 477.It Li IDQ.ALL_MITE_CYCLES_ANY_UOPS 478.Pq Event 79H , Umask 24H 479Counts cycles MITE is delivered at least one uops. 480Set Cmask = 1. 481.It Li IDQ.ALL_MITE_CYCLES_4_UOPS 482.Pq Event 79H , Umask 24H 483Counts cycles MITE is delivered four uops. 484Set Cmask =4. 485.It Li IDQ.MITE_ALL_UOPS 486.Pq Event 79H , Umask 3CH 487# of uops delivered to IDQ from any path. 488.It Li ICACHE.MISSES 489.Pq Event 80H , Umask 02H 490Number of Instruction Cache, Streaming Buffer and Victim Cache Misses. 491Includes UC accesses. 492.It Li ITLB_MISSES.MISS_CAUSES_A_WALK 493.Pq Event 85H , Umask 01H 494Misses in ITLB that causes a page walk of any page 495size. 496.It Li ITLB_MISSES.WALK_COMPLETED_4K 497.Pq Event 85H , Umask 02H 498Completed page walks due to misses in ITLB 4K page 499entries. 500.It Li TLB_MISSES.WALK_COMPLETED_2M_4M 501.Pq Event 85H , Umask 04H 502Completed page walks due to misses in ITLB 2M/4M 503page entries. 504.It Li ITLB_MISSES.WALK_COMPLETED 505.Pq Event 85H , Umask 0EH 506Completed page walks in ITLB of any page size. 507.It Li ITLB_MISSES.WALK_DURATION 508.Pq Event 85H , Umask 10H 509Cycle PMH is busy with a walk. 510.It Li ITLB_MISSES.STLB_HIT_4K 511.Pq Event 85H , Umask 20H 512ITLB misses that hit STLB (4K). 513.It Li ITLB_MISSES.STLB_HIT_2M 514.Pq Event 85H , Umask 40H 515ITLB misses that hit STLB (2K). 516.It Li ITLB_MISSES.STLB_HIT 517.Pq Event 85H , Umask 60H 518TLB misses that hit STLB. 519No page walk. 520.It Li ILD_STALL.LCP 521.Pq Event 87H , Umask 01H 522Stalls caused by changing prefix length of the 523instruction. 524.It Li ILD_STALL.IQ_FULL 525.Pq Event 87H , Umask 04H 526Stall cycles due to IQ is full. 527.It Li BR_INST_EXEC.NONTAKEN_COND 528.Pq Event 88H , Umask 41H 529Count conditional near branch instructions that were executed (but not 530necessarily retired) and not taken. 531.It Li BR_INST_EXEC.TAKEN_COND 532.Pq Event 88H , Umask 81H 533Count conditional near branch instructions that were executed (but not 534necessarily retired) and taken. 535.It Li BR_INST_EXEC.DIRECT_JMP 536.Pq Event 88H , Umask 82H 537Count all unconditional near branch instructions excluding calls and 538indirect branches. 539.It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET 540.Pq Event 88H , Umask 84H 541Count executed indirect near branch instructions that are not calls nor 542returns. 543.It Li BR_INST_EXEC.RETURN_NEAR 544.Pq Event 88H , Umask 88H 545Count indirect near branches that have a return mnemonic. 546.It Li BR_INST_EXEC.DIRECT_NEAR_CALL 547.Pq Event 88H , Umask 90H 548Count unconditional near call branch instructions, excluding non call 549branch, executed. 550.It Li BR_INST_EXEC.INDIRECT_NEAR_CALL 551.Pq Event 88H , Umask A0H 552Count indirect near calls, including both register and memory indirect, 553executed. 554.It Li BR_INST_EXEC.ALL_BRANCHES 555.Pq Event 88H , Umask FFH 556Counts all near executed branches (not necessarily retired). 557.It Li BR_MISP_EXEC.NONTAKEN_COND 558.Pq Event 89H , Umask 41H 559Count conditional near branch instructions mispredicted as nontaken. 560.It Li BR_MISP_EXEC.TAKEN_COND 561.Pq Event 89H , Umask 81H 562Count conditional near branch instructions mispredicted as taken. 563.It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET 564.Pq Event 89H , Umask 84H 565Count mispredicted indirect near branch instructions that are not calls 566nor returns. 567.It Li BR_MISP_EXEC.RETURN_NEAR 568.Pq Event 89H , Umask 88H 569Count mispredicted indirect near branches that have a return mnemonic. 570.It Li BR_MISP_EXEC.DIRECT_NEAR_CALL 571.Pq Event 89H , Umask 90H 572Count mispredicted unconditional near call branch instructions, excluding 573non call branch, executed. 574.It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL 575.Pq Event 89H , Umask A0H 576Count mispredicted indirect near calls, including both register and memory 577indirect, executed. 578.It Li BR_MISP_EXEC.ALL_BRANCHES 579.Pq Event 89H , Umask FFH 580Counts all mispredicted near executed branches (not necessarily retired). 581.It Li IDQ_UOPS_NOT_DELIVERED.CORE 582.Pq Event 9CH , Umask 01H 583Count number of non-delivered uops to RAT per 584thread. 585.It Li UOPS_EXECUTED_PORT.PORT_0 586.Pq Event A1H , Umask 01H 587Cycles which a Uop is dispatched on port 0 in this 588thread. 589.It Li UOPS_EXECUTED_PORT.PORT_1 590.Pq Event A1H , Umask 02H 591Cycles which a Uop is dispatched on port 1 in this 592thread. 593.It Li UOPS_EXECUTED_PORT.PORT_2 594.Pq Event A1H , Umask 04H 595Cycles which a Uop is dispatched on port 2 in this 596thread. 597.It Li UOPS_EXECUTED_PORT.PORT_3 598.Pq Event A1H , Umask 08H 599Cycles which a Uop is dispatched on port 3 in this 600thread. 601.It Li UOPS_EXECUTED_PORT.PORT_4 602.Pq Event A1H , Umask 10H 603Cycles which a Uop is dispatched on port 4 in this 604thread. 605.It Li UOPS_EXECUTED_PORT.PORT_5 606.Pq Event A1H , Umask 20H 607Cycles which a Uop is dispatched on port 5 in this 608thread. 609.It Li UOPS_EXECUTED_PORT.PORT_6 610.Pq Event A1H , Umask 40H 611Cycles which a Uop is dispatched on port 6 in this 612thread. 613.It Li UOPS_EXECUTED_PORT.PORT_7 614.Pq Event A1H , Umask 80H 615Cycles which a Uop is dispatched on port 7 in this 616thread. 617.It Li RESOURCE_STALLS.ANY 618.Pq Event A2H , Umask 01H 619Cycles Allocation is stalled due to Resource Related 620reason. 621.It Li RESOURCE_STALLS.RS 622.Pq Event A2H , Umask 04H 623Cycles stalled due to no eligible RS entry available. 624.It Li RESOURCE_STALLS.SB 625.Pq Event A2H , Umask 08H 626Cycles stalled due to no store buffers available (not 627including draining form sync). 628.It Li RESOURCE_STALLS.ROB 629.Pq Event A2H , Umask 10H 630Cycles stalled due to re-order buffer full. 631.It Li CYCLE_ACTIVITY.CYCLES_L2_PENDING 632.Pq Event A3H , Umask 01H 633Cycles with pending L2 miss loads. 634Set Cmask=2 to count cycle. 635.It Li CYCLE_ACTIVITY.CYCLES_LDM_PENDING 636.Pq Event A3H , Umask 02H 637Cycles with pending memory loads. 638Set Cmask=2 to count cycle. 639.It Li CYCLE_ACTIVITY.STALLS_L2_PENDING 640.Pq Event A3H , Umask 05H 641Number of loads missed L2. 642.It Li CYCLE_ACTIVITY.CYCLES_L1D_PENDING 643.Pq Event A3H , Umask 08H 644Cycles with pending L1 cache miss loads. 645Set Cmask=8 to count cycle. 646.It Li ITLB.ITLB_FLUSH 647.Pq Event AEH , Umask 01H 648Counts the number of ITLB flushes, includes 6494k/2M/4M pages. 650.It Li OFFCORE_REQUESTS.DEMAND_DATA_RD 651.Pq Event B0H , Umask 01H 652Demand data read requests sent to uncore. 653.It Li OFFCORE_REQUESTS.DEMAND_CODE_RD 654.Pq Event B0H , Umask 02H 655Demand code read requests sent to uncore. 656.It Li OFFCORE_REQUESTS.DEMAND_RFO 657.Pq Event B0H , Umask 04H 658Demand RFO read requests sent to uncore, including 659regular RFOs, locks, ItoM. 660.It Li OFFCORE_REQUESTS.ALL_DATA_RD 661.Pq Event B0H , Umask 08H 662Data read requests sent to uncore (demand and 663prefetch). 664.It Li UOPS_EXECUTED.CORE 665.Pq Event B1H , Umask 02H 666Counts total number of uops to be executed per-core 667each cycle. 668.It Li OFF_CORE_RESPONSE_0 669.Pq Event B7H , Umask 01H 670Requires MSR 01A6H 671.It Li OFF_CORE_RESPONSE_1 672.Pq Event BBH , Umask 01H 673Requires MSR 01A7H 674.It Li PAGE_WALKER_LOADS.DTLB_L1 675.Pq Event BCH , Umask 11H 676Number of DTLB page walker loads that hit in the 677L1+FB. 678.It Li PAGE_WALKER_LOADS.ITLB_L1 679.Pq Event BCH , Umask 21H 680Number of ITLB page walker loads that hit in the 681L1+FB. 682.It Li PAGE_WALKER_LOADS.DTLB_L2 683.Pq Event BCH , Umask 12H 684Number of DTLB page walker loads that hit in the L2. 685.It Li PAGE_WALKER_LOADS.ITLB_L2 686.Pq Event BCH , Umask 22H 687Number of ITLB page walker loads that hit in the L2. 688.It Li PAGE_WALKER_LOADS.DTLB_L3 689.Pq Event BCH , Umask 14H 690Number of DTLB page walker loads that hit in the L3. 691.It Li PAGE_WALKER_LOADS.ITLB_L3 692.Pq Event BCH , Umask 24H 693Number of ITLB page walker loads that hit in the L3. 694.It Li PAGE_WALKER_LOADS.DTLB_MEMORY 695.Pq Event BCH , Umask 18H 696Number of DTLB page walker loads from memory. 697.It Li PAGE_WALKER_LOADS.ITLB_MEMORY 698.Pq Event BCH , Umask 28H 699Number of ITLB page walker loads from memory. 700.It Li TLB_FLUSH.DTLB_THREAD 701.Pq Event BDH , Umask 01H 702DTLB flush attempts of the thread-specific entries. 703.It Li TLB_FLUSH.STLB_ANY 704.Pq Event BDH , Umask 20H 705Count number of STLB flush attempts. 706.It Li INST_RETIRED.ANY_P 707.Pq Event C0H , Umask 00H 708Number of instructions at retirement. 709.It Li INST_RETIRED.ALL 710.Pq Event C0H , Umask 01H 711Precise instruction retired event with HW to reduce 712effect of PEBS shadow in IP distribution. 713.It Li OTHER_ASSISTS.AVX_TO_SSE 714.Pq Event C1H , Umask 08H 715Number of transitions from AVX-256 to legacy SSE 716when penalty applicable. 717.It Li OTHER_ASSISTS.SSE_TO_AVX 718.Pq Event C1H , Umask 10H 719Number of transitions from SSE to AVX-256 when 720penalty applicable. 721.It Li OTHER_ASSISTS.ANY_WB_ASSIST 722.Pq Event C1H , Umask 40H 723Number of microcode assists invoked by HW upon 724uop writeback. 725.It Li UOPS_RETIRED.ALL 726.Pq Event C2H , Umask 01H 727Counts the number of micro-ops retired, Use 728cmask=1 and invert to count active cycles or stalled 729cycles. 730.It Li UOPS_RETIRED.RETIRE_SLOTS 731.Pq Event C2H , Umask 02H 732Counts the number of retirement slots used each 733cycle. 734.It Li MACHINE_CLEARS.MEMORY_ORDERING 735.Pq Event C3H , Umask 02H 736Counts the number of machine clears due to memory 737order conflicts. 738.It Li MACHINE_CLEARS.SMC 739.Pq Event C3H , Umask 04H 740Number of self-modifying-code machine clears 741detected. 742.It Li MACHINE_CLEARS.MASKMOV 743.Pq Event C3H , Umask 20H 744Counts the number of executed AVX masked load 745operations that refer to an illegal address range with 746the mask bits set to 0. 747.It Li BR_INST_RETIRED.ALL_BRANCHES 748.Pq Event C4H , Umask 00H 749Branch instructions at retirement. 750.It Li BR_INST_RETIRED.CONDITIONAL 751.Pq Event C4H , Umask 01H 752Counts the number of conditional branch instructions Supports PEBS 753retired. 754.It Li BR_INST_RETIRED.NEAR_CALL 755.Pq Event C4H , Umask 02H 756Direct and indirect near call instructions retired. 757.It Li BR_INST_RETIRED.ALL_BRANCHES 758.Pq Event C4H , Umask 04H 759Counts the number of branch instructions retired. 760.It Li BR_INST_RETIRED.NEAR_RETURN 761.Pq Event C4H , Umask 08H 762Counts the number of near return instructions 763retired. 764.It Li BR_INST_RETIRED.NOT_TAKEN 765.Pq Event C4H , Umask 10H 766Counts the number of not taken branch instructions 767retired. 768 It Li BR_INST_RETIRED.NEAR_TAKEN 769.Pq Event C4H , Umask 20H 770Number of near taken branches retired. 771.It Li BR_INST_RETIRED.FAR_BRANCH 772.Pq Event C4H , Umask 40H 773Number of far branches retired. 774.It Li BR_MISP_RETIRED.ALL_BRANCHES 775.Pq Event C5H , Umask 00H 776Mispredicted branch instructions at retirement 777.It Li BR_MISP_RETIRED.CONDITIONAL 778.Pq Event C5H , Umask 01H 779Mispredicted conditional branch instructions retired. 780.It Li BR_MISP_RETIRED.CONDITIONAL 781.Pq Event C5H , Umask 04H 782Mispredicted macro branch instructions retired. 783.It Li FP_ASSIST.X87_OUTPUT 784.Pq Event CAH , Umask 02H 785Number of X87 FP assists due to Output values. 786.It Li FP_ASSIST.X87_INPUT 787.Pq Event CAH , Umask 04H 788Number of X87 FP assists due to input values. 789.It Li FP_ASSIST.SIMD_OUTPUT 790.Pq Event CAH , Umask 08H 791Number of SIMD FP assists due to Output values. 792.It Li FP_ASSIST.SIMD_INPUT 793.Pq Event CAH , Umask 10H 794Number of SIMD FP assists due to input values. 795.It Li FP_ASSIST.ANY 796.Pq Event CAH , Umask 1EH 797Cycles with any input/output SSE* or FP assists. 798.It Li ROB_MISC_EVENTS.LBR_INSERTS 799.Pq Event CCH , Umask 20H 800Count cases of saving new LBR records by hardware. 801.It Li MEM_TRANS_RETIRED.LOAD_LATENCY 802.Pq Event CDH , Umask 01H 803Randomly sampled loads whose latency is above a user defined threshold. 804A small fraction of the overall loads are sampled due to randomization. 805.It Li MEM_UOPS_RETIRED.STLB_MISS_LOADS 806.Pq Event D0H , Umask 11H 807Count retired load uops that missed the STLB. 808.It Li MEM_UOPS_RETIRED.STLB_MISS_STORES 809.Pq Event D0H , Umask 12H 810Count retired store uops that missed the STLB. 811.It Li MEM_UOPS_RETIRED.SPLIT_LOADS 812.Pq Event D0H , Umask 41H 813Count retired load uops that were split across a cache line. 814.It Li MEM_UOPS_RETIRED.SPLIT_STORES 815.Pq Event D0H , Umask 42H 816Count retired store uops that were split across a cache line. 817.It Li MEM_UOPS_RETIRED.ALL_LOADS 818.Pq Event D0H , Umask 81H 819Count all retired load uops. 820.It Li MEM_UOPS_RETIRED.ALL_STORES 821.Pq Event D0H , Umask 82H 822Count all retired store uops. 823.It Li MEM_LOAD_UOPS_RETIRED.L1_HIT 824.Pq Event D1H , Umask 01H 825Retired load uops with L1 cache hits as data sources. 826.It Li MEM_LOAD_UOPS_RETIRED.L2_HIT 827.Pq Event D1H , Umask 02H 828Retired load uops with L2 cache hits as data sources. 829.It Li MEM_LOAD_UOPS_RETIRED.LLC_HIT 830.Pq Event D1H , Umask 04H 831Retired load uops with LLC cache hits as data 832sources. 833.It Li MEM_LOAD_UOPS_RETIRED.L2_MISS 834.Pq Event D1H , Umask 10H 835Retired load uops missed L2. 836Unknown data source excluded. 837.It Li MEM_LOAD_UOPS_RETIRED.HIT_LFB 838.Pq Event D1H , Umask 40H 839Retired load uops which data sources were load uops 840missed L1 but hit FB due to preceding miss to the 841same cache line with data not ready. 842.It Li MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_MISS 843.Pq Event D2H , Umask 01H 844Retired load uops which data sources were LLC hit 845and cross-core snoop missed in on-pkg core cache. 846.It Li MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HIT 847.Pq Event D2H , Umask 02H 848Retired load uops which data sources were LLC and 849cross-core snoop hits in on-pkg core cache. 850.It Li MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM 851.Pq Event D2H , Umask 04H 852Retired load uops which data sources were HitM 853responses from shared LLC. 854.It Li MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_NONE 855.Pq Event D2H , Umask 08H 856Retired load uops which data sources were hits in 857LLC without snoops required. 858.It Li MEM_LOAD_UOPS_LLC_MISS_RETIRED.LOCAL_DRAM 859.Pq Event D3H , Umask 01H 860Retired load uops which data sources missed LLC but 861serviced from local dram. 862.It Li BACLEARS.ANY 863.Pq Event E6H , Umask 1FH 864Number of front end re-steers due to BPU 865misprediction. 866.It Li L2_TRANS.DEMAND_DATA_RD 867.Pq Event F0H , Umask 01H 868Demand Data Read requests that access L2 cache. 869.It Li L2_TRANS.RFO 870.Pq Event F0H , Umask 02H 871RFO requests that access L2 cache. 872.It Li L2_TRANS.CODE_RD 873.Pq Event F0H , Umask 04H 874L2 cache accesses when fetching instructions. 875.It Li L2_TRANS.ALL_PF 876.Pq Event F0H , Umask 08H 877Any MLC or LLC HW prefetch accessing L2, including 878rejects. 879.It Li L2_TRANS.L1D_WB 880.Pq Event F0H , Umask 10H 881L1D writebacks that access L2 cache. 882.It Li L2_TRANS.L2_FILL 883.Pq Event F0H , Umask 20H 884L2 fill requests that access L2 cache. 885.It Li L2_TRANS.L2_WB 886.Pq Event F0H , Umask 40H 887L2 writebacks that access L2 cache. 888.It Li L2_TRANS.ALL_REQUESTS 889.Pq Event F0H , Umask 80H 890Transactions accessing L2 pipe. 891.It Li L2_LINES_IN.I 892.Pq Event F1H , Umask 01H 893L2 cache lines in I state filling L2. 894.It Li L2_LINES_IN.S 895.Pq Event F1H , Umask 02H 896L2 cache lines in S state filling L2. 897.It Li L2_LINES_IN.E 898.Pq Event F1H , Umask 04H 899L2 cache lines in E state filling L2. 900.It Li L2_LINES_IN.ALL 901.Pq Event F1H , Umask 07H 902L2 cache lines filling L2. 903.It Li L2_LINES_OUT.DEMAND_CLEAN 904.Pq Event F2H , Umask 05H 905Clean L2 cache lines evicted by demand. 906.It Li L2_LINES_OUT.DEMAND_DIRTY 907.Pq Event F2H , Umask 06H 908Dirty L2 cache lines evicted by demand. 909.El 910.Sh SEE ALSO 911.Xr pmc 3 , 912.Xr pmc.atom 3 , 913.Xr pmc.core 3 , 914.Xr pmc.corei7 3 , 915.Xr pmc.corei7uc 3 , 916.Xr pmc.haswelluc 3 , 917.Xr pmc.iaf 3 , 918.Xr pmc.ivybridge 3 , 919.Xr pmc.ivybridgexeon 3 , 920.Xr pmc.k8 3 , 921.Xr pmc.sandybridge 3 , 922.Xr pmc.sandybridgeuc 3 , 923.Xr pmc.sandybridgexeon 3 , 924.Xr pmc.soft 3 , 925.Xr pmc.tsc 3 , 926.Xr pmc.ucf 3 , 927.Xr pmc.westmere 3 , 928.Xr pmc.westmereuc 3 , 929.Xr pmc_cpuinfo 3 , 930.Xr pmclog 3 , 931.Xr hwpmc 4 932.Sh HISTORY 933The 934.Nm pmc 935library first appeared in 936.Fx 6.0 . 937.Sh AUTHORS 938.An -nosplit 939The 940.Lb libpmc 941library was written by 942.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org . 943The support for the Haswell 944microarchitecture was written by 945.An Hiren Panchasara Aq Mt hiren.panchasara@gmail.com . 946