1.\" Copyright (c) 2008 Joseph Koshy. All rights reserved. 2.\" 3.\" Redistribution and use in source and binary forms, with or without 4.\" modification, are permitted provided that the following conditions 5.\" are met: 6.\" 1. Redistributions of source code must retain the above copyright 7.\" notice, this list of conditions and the following disclaimer. 8.\" 2. Redistributions in binary form must reproduce the above copyright 9.\" notice, this list of conditions and the following disclaimer in the 10.\" documentation and/or other materials provided with the distribution. 11.\" 12.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 13.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 15.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 22.\" SUCH DAMAGE. 23.\" 24.Dd November 12, 2008 25.Dt PMC.CORE 3 26.Os 27.Sh NAME 28.Nm pmc.core 29.Nd measurement events for 30.Tn Intel 31.Tn Core Solo 32and 33.Tn Core Duo 34family CPUs 35.Sh LIBRARY 36.Lb libpmc 37.Sh SYNOPSIS 38.In pmc.h 39.Sh DESCRIPTION 40.Tn Intel 41.Tn "Core Solo" 42and 43.Tn "Core Duo" 44CPUs contain PMCs conforming to version 1 of the 45.Tn Intel 46performance measurement architecture. 47.Pp 48These PMCs are documented in 49.Rs 50.%B IA-32 Intel\(rg Architecture Software Developer's Manual 51.%T Volume 3: System Programming Guide 52.%N Order Number 253669-027US 53.%D July 2008 54.%Q Intel Corporation 55.Re 56.Ss PMC Features 57CPUs conforming to version 1 of the 58.Tn Intel 59performance measurement architecture contain two programmable PMCs of 60class 61.Li PMC_CLASS_IAP . 62The PMCs are 40 bits width and offer the following capabilities: 63.Bl -column "PMC_CAP_INTERRUPT" "Support" 64.It Em Capability Ta Em Support 65.It PMC_CAP_CASCADE Ta \&No 66.It PMC_CAP_EDGE Ta Yes 67.It PMC_CAP_INTERRUPT Ta Yes 68.It PMC_CAP_INVERT Ta Yes 69.It PMC_CAP_READ Ta Yes 70.It PMC_CAP_PRECISE Ta \&No 71.It PMC_CAP_SYSTEM Ta Yes 72.It PMC_CAP_TAGGING Ta \&No 73.It PMC_CAP_THRESHOLD Ta Yes 74.It PMC_CAP_USER Ta Yes 75.It PMC_CAP_WRITE Ta Yes 76.El 77.Ss Event Qualifiers 78Event specifiers for these PMCs support the following common 79qualifiers: 80.Bl -tag -width indent 81.It Li cmask= Ns Ar value 82Configure the PMC to increment only if the number of configured 83events measured in a cycle is greater than or equal to 84.Ar value . 85.It Li edge 86Configure the PMC to count the number of de-asserted to asserted 87transitions of the conditions expressed by the other qualifiers. 88If specified, the counter will increment only once whenever a 89condition becomes true, irrespective of the number of clocks during 90which the condition remains true. 91.It Li inv 92Invert the sense of comparison when the 93.Dq Li cmask 94qualifier is present, making the counter increment when the number of 95events per cycle is less than the value specified by the 96.Dq Li cmask 97qualifier. 98.It Li os 99Configure the PMC to count events happening at processor privilege 100level 0. 101.It Li usr 102Configure the PMC to count events occurring at privilege levels 1, 2 103or 3. 104.El 105.Pp 106If neither of the 107.Dq Li os 108or 109.Dq Li usr 110qualifiers are specified, the default is to enable both. 111.Pp 112Events that require core-specificity to be specified use a 113additional qualifier 114.Dq Li core= Ns Ar value , 115where argument 116.Ar value 117is one of: 118.Bl -tag -width indent -compact 119.It Li all 120Measure event conditions on all cores. 121.It Li this 122Measure event conditions on this core. 123.El 124The default is 125.Dq Li this . 126.Pp 127Events that require an agent qualifier to be specified use an 128additional qualifier 129.Dq Li agent= Ns value , 130where argument 131.Ar value 132is one of: 133.Bl -tag -width indent -compact 134.It Li this 135Measure events associated with this bus agent. 136.It Li any 137Measure events caused by any bus agent. 138.El 139The default is 140.Dq Li this . 141.Pp 142Events that require a hardware prefetch qualifier to be specified use an 143additional qualifier 144.Dq Li prefetch= Ns Ar value , 145where argument 146.Ar value 147is one of: 148.Bl -tag -width "exclude" -compact 149.It Li both 150Include all prefetches. 151.It Li only 152Only count hardware prefetches. 153.It Li exclude 154Exclude hardware prefetches. 155.El 156The default is 157.Dq Li both . 158.Pp 159Events that require a cache coherence qualifier to be specified use an 160additional qualifier 161.Dq Li cachestate= Ns Ar value , 162where argument 163.Ar value 164contains one or more of the following letters: 165.Bl -tag -width indent -compact 166.It Li e 167Count cache lines in the exclusive state. 168.It Li i 169Count cache lines in the invalid state. 170.It Li m 171Count cache lines in the modified state. 172.It Li s 173Count cache lines in the shared state. 174.El 175The default is 176.Dq Li eims . 177.Ss Event Specifiers 178The following event names are case insensitive. 179Whitespace, hyphens and underscore characters in these names are 180ignored. 181.Pp 182Core PMCs support the following events: 183.Bl -tag -width indent 184.It Li BAClears 185.Pq Event E6H , Umask 00H 186The number of BAClear conditions asserted. 187.It Li BTB_Misses 188.Pq Event E2H , Umask 00H 189The number of branches for which the branch table buffer did not 190produce a prediction. 191.It Li Br_BAC_Missp_Exec 192.Pq Event 8AH , Umask 00H 193The number of branch instructions executed that were mispredicted at 194the front end. 195.It Li Br_Bogus 196.Pq Event E4H , Umask 00H 197The number of bogus branches. 198.It Li Br_Call_Exec 199.Pq Event 92H , Umask 00H 200The number of 201.Li CALL 202instructions executed. 203.It Li Br_Call_Missp_Exec 204.Pq Event 93H , Umask 00H 205The number of 206.Li CALL 207instructions executed that were mispredicted. 208.It Li Br_Cnd_Exec 209.Pq Event 8BH , Umask 00H 210The number of conditional branch instructions executed. 211.It Li Br_Cnd_Missp_Exec 212.Pq Event 8CH , Umask 00H 213The number of conditional branch instructions executed that were mispredicted. 214.It Li Br_Ind_Call_Exec 215.Pq Event 94H , Umask 00H 216The number of indirect 217.Li CALL 218instructions executed. 219.It Li Br_Ind_Exec 220.Pq Event 8DH , Umask 00H 221The number of indirect branches executed. 222.It Li Br_Ind_Missp_Exec 223.Pq Event 8EH , Umask 00H 224The number of indirect branch instructions executed that were mispredicted. 225.It Li Br_Inst_Exec 226.Pq Event 88H , Umask 00H 227The number of branch instructions executed including speculative branches. 228.It Li Br_Instr_Decoded 229.Pq Event E0H , Umask 00H 230The number of branch instructions decoded. 231.It Li Br_Instr_Ret 232.Pq Event C4H , Umask 00H 233.Pq Alias Qq "Branch Instruction Retired" 234The number of branch instructions retired. 235This is an architectural performance event. 236.It Li Br_MisPred_Ret 237.Pq Event C5H , Umask 00H 238.Pq Alias Qq "Branch Misses Retired" 239The number of mispredicted branch instructions retired. 240This is an architectural performance event. 241.It Li Br_MisPred_Taken_Ret 242.Pq Event CAH , Umask 00H 243The number of taken and mispredicted branches retired. 244.It Li Br_Missp_Exec 245.Pq Event 89H , Umask 00H 246The number of branch instructions executed and mispredicted at 247execution including branches that were not predicted. 248.It Li Br_Ret_BAC_Missp_Exec 249.Pq Event 91H , Umask 00H 250The number of return branch instructions that were mispredicted at the 251front end. 252.It Li Br_Ret_Exec 253.Pq Event 8FH , Umask 00H 254The number of return branch instructions executed. 255.It Li Br_Ret_Missp_Exec 256.Pq Event 90H , Umask 00H 257The number of return branch instructions executed that were mispredicted. 258.It Li Br_Taken_Ret 259.Pq Event C9H , Umask 00H 260The number of taken branches retired. 261.It Li Bus_BNR_Clocks 262.Pq Event 61H , Umask 00H 263The number of external bus cycles while BNR (bus not ready) was asserted. 264.It Li Bus_DRDY_Clocks Op ,agent= Ns Ar agent 265.Pq Event 62H , Umask 00H 266The number of external bus cycles while DRDY was asserted. 267.It Li Bus_Data_Rcv 268.Pq Event 64H , Umask 40H 269.\" XXX Using the description in Core2 PMC documentation. 270The number of cycles during which the processor is busy receiving data. 271.It Li Bus_Locks_Clocks Op ,core= Ns Ar core 272.Pq Event 63H 273The number of external bus cycles while the bus lock signal was asserted. 274.It Li Bus_Not_In_Use Op ,core= Ns Ar core 275.Pq Event 7DH 276The number of cycles when there is no transaction from the core. 277.It Li Bus_Req_Outstanding Xo 278.Op ,agent= Ns Ar agent 279.Op ,core= Ns Ar core 280.Xc 281.Pq Event 60H 282The weighted cycles of cacheable bus data read requests 283from the data cache unit or hardware prefetcher. 284.It Li Bus_Snoop_Stall 285.Pq Event 7EH , Umask 00H 286The number bus cycles while a bus snoop is stalled. 287.It Li Bus_Snoops Xo 288.Op ,agent= Ns Ar agent 289.Op ,cachestate= Ns Ar mesi 290.Xc 291.Pq Event 77H 292.\" XXX Using the description in Core2 PMC documentation. 293The number of snoop responses to bus transactions. 294.It Li Bus_Trans_Any Op ,agent= Ns Ar agent 295.Pq Event 70H 296The number of completed bus transactions. 297.It Li Bus_Trans_Brd Op ,core= Ns Ar core 298.Pq Event 65H 299The number of read bus transactions. 300.It Li Bus_Trans_Burst Op ,agent= Ns Ar agent 301.Pq Event 6EH 302The number of completed burst transactions. 303Retried transactions may be counted more than once. 304.It Li Bus_Trans_Def Op ,core= Ns Ar core 305.Pq Event 6DH 306The number of completed deferred transactions. 307.It Li Bus_Trans_IO Xo 308.Op ,agent= Ns Ar agent 309.Op ,core= Ns Ar core 310.Xc 311.Pq Event 6CH 312The number of completed I/O transactions counting both reads and 313writes. 314.It Li Bus_Trans_Ifetch Xo 315.Op ,agent= Ns Ar agent 316.Op ,core= Ns Ar core 317.Xc 318.Pq Event 68H 319Completed instruction fetch transactions. 320.It Li Bus_Trans_Inval Xo 321.Op ,agent= Ns Ar agent 322.Op ,core= Ns Ar core 323.Xc 324.Pq Event 69H 325The number completed invalidate transactions. 326.It Li Bus_Trans_Mem Op ,agent= Ns Ar agent 327.Pq Event 6FH 328The number of completed memory transactions. 329.It Li Bus_Trans_P Xo 330.Op ,agent= Ns Ar agent 331.Op ,core= Ns Ar core 332.Xc 333.Pq Event 6BH 334The number of completed partial transactions. 335.It Li Bus_Trans_Pwr Xo 336.Op ,agent= Ns Ar agent 337.Op ,core= Ns Ar core 338.Xc 339.Pq Event 6AH 340The number of completed partial write transactions. 341.It Li Bus_Trans_RFO Xo 342.Op ,agent= Ns Ar agent 343.Op ,core= Ns Ar core 344.Xc 345.Pq Event 66H 346The number of completed read-for-ownership transactions. 347.It Li Bus_Trans_WB Op ,agent= Ns Ar agent 348.Pq Event 67H 349The number of completed write-back transactions from the data cache 350unit, excluding L2 write-backs. 351.It Li Cycles_Div_Busy 352.Pq Event 14H , Umask 00H 353The number of cycles the divider is busy. 354The event is only available on PMC0. 355.It Li Cycles_Int_Masked 356.Pq Event C6H , Umask 00H 357The number of cycles while interrupts were disabled. 358.It Li Cycles_Int_Pending_Masked 359.Pq Event C7H , Umask 00H 360The number of cycles while interrupts were disabled and interrupts 361were pending. 362.It Li DCU_Snoop_To_Share Op ,core= Ns core 363.Pq Event 78H 364The number of data cache unit snoops to L1 cache lines in the shared 365state. 366.It Li DCache_Cache_Lock Op ,cachestate= Ns Ar mesi 367.\" XXX needs clarification 368.Pq Event 42H 369The number of cacheable locked read operations to invalid state. 370.It Li DCache_Cache_LD Op ,cachestate= Ns Ar mesi 371.Pq Event 40H 372The number of cacheable L1 data read operations. 373.It Li DCache_Cache_ST Op ,cachestate= Ns Ar mesi 374.Pq Event 41H 375The number cacheable L1 data write operations. 376.It Li DCache_M_Evict 377.Pq Event 47H , Umask 00H 378The number of M state data cache lines that were evicted. 379.It Li DCache_M_Repl 380.Pq Event 46H , Umask 00H 381The number of M state data cache lines that were allocated. 382.It Li DCache_Pend_Miss 383.Pq Event 48H , Umask 00H 384The weighted cycles an L1 miss was outstanding. 385.It Li DCache_Repl 386.Pq Event 45H , Umask 0FH 387The number of data cache line replacements. 388.It Li Data_Mem_Cache_Ref 389.Pq Event 44H , Umask 02H 390The number of cacheable read and write operations to L1 data cache. 391.It Li Data_Mem_Ref 392.Pq Event 43H , Umask 01H 393The number of L1 data reads and writes, both cacheable and 394un-cacheable. 395.It Li Dbus_Busy Op ,core= Ns Ar core 396.Pq Event 22H 397The number of core cycles during which the data bus was busy. 398.It Li Dbus_Busy_Rd Op ,core= Ns Ar core 399.Pq Event 23H 400The number of cycles during which the data bus was busy transferring 401data to a core. 402.It Li Div 403.Pq Event 13H , Umask 00H 404The number of divide operations including speculative operations for 405integer and floating point divides. 406This event can only be counted on PMC1. 407.It Li Dtlb_Miss 408.Pq Event 49H , Umask 00H 409The number of data references that missed the TLB. 410.It Li ESP_Uops 411.Pq Event D7H , Umask 00H 412The number of ESP folding instructions decoded. 413.It Li EST_Trans Op ,trans= Ns Ar transition 414.Pq Event 3AH 415Count the number of Intel Enhanced SpeedStep transitions. 416The argument 417.Ar transition 418can be one of the following values: 419.Bl -tag -width indent -compact 420.It Li any 421(Umask 00H) Count all transitions. 422.It Li frequency 423(Umask 01H) Count frequency transitions. 424.El 425The default is 426.Dq Li any . 427.It Li FP_Assist 428.Pq Event 11H , Umask 00H 429The number of floating point operations that required microcode 430assists. 431The event is only available on PMC1. 432.It Li FP_Comp_Instr_Ret 433.Pq Event C1H , Umask 00H 434The number of X87 floating point compute instructions retired. 435The event is only available on PMC0. 436.It Li FP_Comps_Op_Exe 437.Pq Event 10H , Umask 00H 438The number of floating point computational instructions executed. 439.It Li FP_MMX_Trans 440.Pq Event CCH , Umask 01H 441The number of transitions from X87 to MMX. 442.It Li Fused_Ld_Uops_Ret 443.Pq Event DAH , Umask 01H 444The number of fused load uops retired. 445.It Li Fused_St_Uops_Ret 446.Pq Event DAH , Umask 02H 447The number of fused store uops retired. 448.It Li Fused_Uops_Ret 449.Pq Event DAH , Umask 00H 450The number of fused uops retired. 451.It Li HW_Int_Rx 452.Pq Event C8H , Umask 00H 453The number of hardware interrupts received. 454.It Li ICache_Misses 455.Pq Event 81H , Umask 00H 456The number of instruction fetch misses in the instruction cache and 457streaming buffers. 458.It Li ICache_Reads 459.Pq Event 80H , Umask 00H 460The number of instruction fetches from the instruction cache and 461streaming buffers counting both cacheable and un-cacheable fetches. 462.It Li IFU_Mem_Stall 463.Pq Event 86H , Umask 00H 464The number of cycles the instruction fetch unit was stalled while 465waiting for data from memory. 466.It Li ILD_Stall 467.Pq Event 87H , Umask 00H 468The number of instruction length decoder stalls. 469.It Li ITLB_Misses 470.Pq Event 85H , Umask 00H 471The number of instruction TLB misses. 472.It Li Instr_Decoded 473.Pq Event D0H , Umask 00H 474The number of instructions decoded. 475.It Li Instr_Ret 476.Pq Event C0H , Umask 00H 477.Pq Alias Qq "Instruction Retired" 478The number of instructions retired. 479This is an architectural performance event. 480.It Li L1_Pref_Req 481.Pq Event 4FH , Umask 00H 482The number of L1 prefetch request due to data cache misses. 483.It Li L2_ADS Op ,core= Ns core 484.Pq Event 21H 485The number of L2 address strobes. 486.It Li L2_IFetch Xo 487.Op ,cachestate= Ns Ar mesi 488.Op ,core= Ns Ar core 489.Xc 490.Pq Event 28H 491The number of instruction fetches by the instruction fetch unit from 492L2 cache including speculative fetches. 493.It Li L2_LD Xo 494.Op ,cachestate= Ns Ar mesi 495.Op ,core= Ns Ar core 496.Xc 497.Pq Event 29H 498The number of L2 cache reads. 499.It Li L2_Lines_In Xo 500.Op ,core= Ns Ar core 501.Op ,prefetch= Ns Ar prefetch 502.Xc 503.Pq Event 24H 504The number of L2 cache lines allocated. 505.It Li L2_Lines_Out Xo 506.Op ,core= Ns Ar core 507.Op ,prefetch= Ns Ar prefetch 508.Xc 509.Pq Event 26H 510The number of L2 cache lines evicted. 511.It Li L2_M_Lines_In Op ,core= Ns Ar core 512.Pq Event 25H 513The number of L2 M state cache lines allocated. 514.It Li L2_M_Lines_Out Xo 515.Op ,core= Ns Ar core 516.Op ,prefetch= Ns Ar prefetch 517.Xc 518.Pq Event 27H 519The number of L2 M state cache lines evicted. 520.It Li L2_No_Request_Cycles Xo 521.Op ,cachestate= Ns Ar mesi 522.Op ,core= Ns Ar core 523.Op ,prefetch= Ns Ar prefetch 524.Xc 525.Pq Event 32H 526The number of cycles there was no request to access L2 cache. 527.It Li L2_Reject_Cycles Xo 528.Op ,cachestate= Ns Ar mesi 529.Op ,core= Ns Ar core 530.Op ,prefetch= Ns Ar prefetch 531.Xc 532.Pq Event 30H 533The number of cycles the L2 cache was busy and rejecting new requests. 534.It Li L2_Rqsts Xo 535.Op ,cachestate= Ns Ar mesi 536.Op ,core= Ns Ar core 537.Op ,prefetch= Ns Ar prefetch 538.Xc 539.Pq Event 2EH 540The number of L2 cache requests. 541.It Li L2_ST Xo 542.Op ,cachestate= Ns Ar mesi 543.Op ,core= Ns Ar core 544.Xc 545.Pq Event 2AH 546The number of L2 cache writes including speculative writes. 547.It Li LD_Blocks 548.Pq Event 03H , Umask 00H 549The number of load operations delayed due to store buffer blocks. 550.It Li LLC_Misses 551.Pq Event 2EH , Umask 41H 552The number of cache misses for references to the last level cache, 553excluding misses due to hardware prefetches. 554This is an architectural performance event. 555.It Li LLC_Reference 556The number of references to the last level cache, 557excluding those due to hardware prefetches. 558This is an architectural performance event. 559.Pq Event 2EH , Umask 4FH 560This is an architectural performance event. 561.It Li MMX_Assist 562.Pq Event CDH , Umask 00H 563The number of EMMX instructions executed. 564.It Li MMX_FP_Trans 565.Pq Event CCH , Umask 00H 566The number of transitions from MMX to X87. 567.It Li MMX_Instr_Exec 568.Pq Event B0H , Umask 00H 569The number of MMX instructions executed excluding 570.Li MOVQ 571and 572.Li MOVD 573stores. 574.It Li MMX_Instr_Ret 575.Pq Event CEH , Umask 00H 576The number of MMX instructions retired. 577.It Li Misalign_Mem_Ref 578.Pq Event 05H , Umask 00H 579The number of misaligned data memory references, counting loads and 580stores. 581.It Li Mul 582.Pq Event 12H , Umask 00H 583The number of multiply operations include speculative floating point 584and integer multiplies. 585This event is available on PMC1 only. 586.It Li NonHlt_Ref_Cycles 587.Pq Event 3CH , Umask 01H 588.Pq Alias Qq "Unhalted Reference Cycles" 589The number of non-halted bus cycles. 590This is an architectural performance event. 591.It Li Pref_Rqsts_Dn 592.Pq Event F8H , Umask 00H 593The number of hardware prefetch requests issued in backward streams. 594.It Li Pref_Rqsts_Up 595.Pq Event F0H , Umask 00H 596The number of hardware prefetch requests issued in forward streams. 597.It Li Resource_Stall 598.Pq Event A2H , Umask 00H 599The number of cycles where there is a resource related stall. 600.It Li SD_Drains 601.Pq Event 04H , Umask 00H 602The number of cycles while draining store buffers. 603.It Li SIMD_FP_DP_P_Ret 604.Pq Event D8H , Umask 02H 605The number of SSE/SSE2 packed double precision instructions retired. 606.It Li SIMD_FP_DP_P_Comp_Ret 607.Pq Event D9H , Umask 02H 608The number of SSE/SSE2 packed double precision compute instructions 609retired. 610.It Li SIMD_FP_DP_S_Ret 611.Pq Event D8H , Umask 03H 612The number of SSE/SSE2 scalar double precision instructions retired. 613.It Li SIMD_FP_DP_S_Comp_Ret 614.Pq Event D9H , Umask 03H 615The number of SSE/SSE2 scalar double precision compute instructions 616retired. 617.It Li SIMD_FP_SP_P_Comp_Ret 618.Pq Event D9H , Umask 00H 619The number of SSE/SSE2 packed single precision compute instructions 620retired. 621.It Li SIMD_FP_SP_Ret 622.Pq Event D8H , Umask 00H 623The number of SSE/SSE2 scalar single precision instructions retired, 624both packed and scalar. 625.It Li SIMD_FP_SP_S_Ret 626.Pq Event D8H , Umask 01H 627The number of SSE/SSE2 scalar single precision instructions retired. 628.It Li SIMD_FP_SP_S_Comp_Ret 629.Pq Event D9H , Umask 01H 630The number of SSE/SSE2 single precision compute instructions retired. 631.It Li SIMD_Int_128_Ret 632.Pq Event D8H , Umask 04H 633The number of SSE2 128-bit integer instructions retired. 634.It Li SIMD_Int_Pari_Exec 635.Pq Event B3H , Umask 20H 636The number of SIMD integer packed arithmetic instructions executed. 637.It Li SIMD_Int_Pck_Exec 638.Pq Event B3H , Umask 04H 639The number of SIMD integer pack operations instructions executed. 640.It Li SIMD_Int_Plog_Exec 641.Pq Event B3H , Umask 10H 642The number of SIMD integer packed logical instructions executed. 643.It Li SIMD_Int_Pmul_Exec 644.Pq Event B3H , Umask 01H 645The number of SIMD integer packed multiply instructions executed. 646.It Li SIMD_Int_Psft_Exec 647.Pq Event B3H , Umask 02H 648The number of SIMD integer packed shift instructions executed. 649.It Li SIMD_Int_Sat_Exec 650.Pq Event B1H , Umask 00H 651The number of SIMD integer saturating instructions executed. 652.It Li SIMD_Int_Upck_Exec 653.Pq Event B3H , Umask 08H 654The number of SIMD integer unpack instructions executed. 655.It Li SMC_Detected 656.Pq Event C3H , Umask 00H 657The number of times self-modifying code was detected. 658.It Li SSE_NTStores_Miss 659.Pq Event 4BH , Umask 03H 660The number of times an SSE streaming store instruction missed all caches. 661.It Li SSE_NTStores_Ret 662.Pq Event 07H , Umask 03H 663The number of SSE streaming store instructions executed. 664.It Li SSE_PrefNta_Miss 665.Pq Event 4BH , Umask 00H 666The number of times 667.Li PREFETCHNTA 668missed all caches. 669.It Li SSE_PrefNta_Ret 670.Pq Event 07H , Umask 00H 671The number of 672.Li PREFETCHNTA 673instructions retired. 674.It Li SSE_PrefT1_Miss 675.Pq Event 4BH , Umask 01H 676The number of times 677.Li PREFETCHT1 678missed all caches. 679.It Li SSE_PrefT1_Ret 680.Pq Event 07H , Umask 01H 681The number of 682.Li PREFETCHT1 683instructions retired. 684.It Li SSE_PrefT2_Miss 685.Pq Event 4BH , Umask 02H 686The number of times 687.Li PREFETCHNT2 688missed all caches. 689.It Li SSE_PrefT2_Ret 690.Pq Event 07H , Umask 02H 691The number of 692.Li PREFETCHT2 693instructions retired. 694.It Li Seg_Reg_Loads 695.Pq Event 06H , Umask 00H 696The number of segment register loads. 697.It Li Serial_Execution_Cycles 698.Pq Event 3CH , Umask 02H 699The number of non-halted bus cycles of this code while the other core 700was halted. 701.It Li Thermal_Trip 702.Pq Event 3BH , Umask C0H 703The duration in a thermal trip based on the current core clock. 704.It Li Unfusion 705.Pq Event DBH , Umask 00H 706The number of unfusion events. 707.It Li Unhalted_Core_Cycles 708.Pq Event 3CH , Umask 00H 709The number of core clock cycles when the clock signal on a specific 710core is not halted. 711This is an architectural performance event. 712.It Li Uops_Ret 713.Pq Event C2H , Umask 00H 714The number of micro-ops retired. 715.El 716.Ss Event Name Aliases 717The following table shows the mapping between the PMC-independent 718aliases supported by 719.Lb libpmc 720and the underlying hardware events used. 721.Bl -column "branch-mispredicts" "Description" 722.It Em Alias Ta Em Event 723.It Li branches Ta Li Br_Instr_Ret 724.It Li branch-mispredicts Ta Li Br_MisPred_Ret 725.It Li dc-misses Ta (unsupported) 726.It Li ic-misses Ta Li ICache_Misses 727.It Li instructions Ta Li Instr_Ret 728.It Li interrupts Ta Li HW_Int_Rx 729.It Li unhalted-cycles Ta (unsupported) 730.El 731.Sh PROCESSOR ERRATA 732The following errata affect performance measurement on these 733processors. 734These errata are documented in 735.Rs 736.%B Specification Update 737.%T Intel\(rg CoreTM Duo Processor and Intel\(rg CoreTM Solo Processor on 65 nm Process 738.%N Order Number 309222-017 739.%D July 2008 740.%Q Intel Corporation 741.Re 742.Bl -tag -width indent -compact 743.It AE19 744Data prefetch performance monitoring events can only be enabled 745on a single core. 746.It AE25 747Performance monitoring counters that count external bus events 748may report incorrect values after processor power state transitions. 749.It AE28 750Performance monitoring events for retired floating point operations 751(C1H) may not be accurate. 752.It AE29 753DR3 address match on MOVD/MOVQ/MOVNTQ memory store 754instruction may incorrectly increment performance monitoring count 755for saturating SIMD instructions retired (Event CFH). 756.It AE33 757Hardware prefetch performance monitoring events may be counted 758inaccurately. 759.It AE36 760The 761.Li CPU_CLK_UNHALTED 762performance monitoring event (Event 3CH) counts 763clocks when the processor is in the C1/C2 processor power states. 764.It AE39 765Certain performance monitoring counters related to bus, L2 cache 766and power management are inaccurate. 767.It AE51 768Performance monitoring events for retired instructions (Event C0H) may 769not be accurate. 770.It AE67 771Performance monitoring event 772.Li FP_ASSIST 773may not be accurate. 774.It AE78 775Performance monitoring event for hardware prefetch requests (Event 7764EH) and hardware prefetch request cache misses (Event 4FH) may not be 777accurate. 778.It AE82 779Performance monitoring event 780.Li FP_MMX_TRANS_TO_MMX 781may not count some transitions. 782.El 783.Sh SEE ALSO 784.Xr pmc 3 , 785.Xr pmc.atom 3 , 786.Xr pmc.core2 3 , 787.Xr pmc.iaf 3 , 788.Xr pmc.k8 3 , 789.Xr pmc.soft 3 , 790.Xr pmc.tsc 3 , 791.Xr pmclog 3 , 792.Xr hwpmc 4 793.Sh HISTORY 794The 795.Nm pmc 796library first appeared in 797.Fx 6.0 . 798.Sh AUTHORS 799The 800.Lb libpmc 801library was written by 802.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org . 803