1.\" Copyright (c) 2003-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 October 4, 2008 25.Dt PMC.K8 3 26.Os 27.Sh NAME 28.Nm pmc.k8 29.Nd measurement events for 30.Tn AMD 31.Tn Athlon 64 32(K8 family) CPUs 33.Sh LIBRARY 34.Lb libpmc 35.Sh SYNOPSIS 36.In pmc.h 37.Sh DESCRIPTION 38AMD K8 PMCs are present in the 39.Tn "AMD Athlon64" 40and 41.Tn "AMD Opteron" 42series of CPUs. 43They are documented in the 44.Rs 45.%B "BIOS and Kernel Developer's Guide for the AMD Athlon(tm) 64 and AMD Opteron Processors" 46.%N "Publication No. 26094" 47.%D "April 2004" 48.%Q "Advanced Micro Devices, Inc." 49.Re 50.Ss PMC Features 51AMD K8 PMCs are 48 bits wide. 52Each CPU contains 4 PMCs with the following capabilities: 53.Bl -column "PMC_CAP_INTERRUPT" "Support" 54.It Em Capability Ta Em Support 55.It PMC_CAP_CASCADE Ta \&No 56.It PMC_CAP_EDGE Ta Yes 57.It PMC_CAP_INTERRUPT Ta Yes 58.It PMC_CAP_INVERT Ta Yes 59.It PMC_CAP_READ Ta Yes 60.It PMC_CAP_PRECISE Ta \&No 61.It PMC_CAP_SYSTEM Ta Yes 62.It PMC_CAP_TAGGING Ta \&No 63.It PMC_CAP_THRESHOLD Ta Yes 64.It PMC_CAP_USER Ta Yes 65.It PMC_CAP_WRITE Ta Yes 66.El 67.Ss Event Qualifiers 68Event specifiers for AMD K8 PMCs can have the following optional 69qualifiers: 70.Bl -tag -width indent 71.It Li count= Ns Ar value 72Configure the counter to increment only if the number of configured 73events measured in a cycle is greater than or equal to 74.Ar value . 75.It Li edge 76Configure the counter to only count negated-to-asserted transitions 77of the conditions expressed by the other fields. 78In other words, the counter will increment only once whenever a given 79condition becomes true, irrespective of the number of clocks during 80which the condition remains true. 81.It Li inv 82Invert the sense of comparison when the 83.Dq Li count 84qualifier is present, making the counter to increment when the 85number of events per cycle is less than the value specified by 86the 87.Dq Li count 88qualifier. 89.It Li mask= Ns Ar qualifier 90Many event specifiers for AMD K8 PMCs need to be additionally 91qualified using a mask qualifier. 92These additional qualifiers are event-specific and are documented 93along with their associated event specifiers below. 94.It Li os 95Configure the PMC to count events happening at privilege level 0. 96.It Li usr 97Configure the PMC to count events occurring at privilege levels 1, 2 98or 3. 99.El 100.Pp 101If neither of the 102.Dq Li os 103or 104.Dq Li usr 105qualifiers were specified, the default is to enable both. 106.Ss AMD K8 Event Specifiers 107The event specifiers supported on AMD K8 PMCs are: 108.Bl -tag -width indent 109.It Li k8-bu-cpu-clk-unhalted 110.Pq Event 76H 111Count the number of clock cycles when the CPU is not in the HLT or 112STPCLK states. 113.It Li k8-bu-fill-request-l2-miss Op Li ,mask= Ns Ar qualifier 114.Pq Event 7EH 115Count fill requests that missed in the L2 cache. 116This event may be further qualified using 117.Ar qualifier , 118which is a 119.Ql + 120separated set of the following keywords: 121.Pp 122.Bl -tag -width indent -compact 123.It Li dc-fill 124Count data cache fill requests. 125.It Li ic-fill 126Count instruction cache fill requests. 127.It Li tlb-reload 128Count TLB reloads. 129.El 130.Pp 131The default is to count all types of requests. 132.It Li k8-bu-fill-into-l2 Op Li ,mask= Ns Ar qualifier 133.Pq Event 7FH 134The number of lines written to and from the L2 cache. 135The event may be further qualified by using 136.Ar qualifier , 137which is a 138.Ql + 139separated set of the following keywords: 140.Pp 141.Bl -tag -width indent -compact 142.It Li dirty-l2-victim 143Count lines written into L2 cache due to victim writebacks from the 144Icache or Dcache, TLB page table walks or hardware data prefetches. 145.It Li victim-from-l2 146Count writebacks of dirty lines from L2 to the system. 147.El 148.It Li k8-bu-internal-l2-request Op Li ,mask= Ns Ar qualifier 149.Pq Event 7DH 150Count internally generated requests to the L2 cache. 151This event may be further qualified using 152.Ar qualifier , 153which is a 154.Ql + 155separated set of the following keywords: 156.Pp 157.Bl -tag -width indent -compact 158.It Li cancelled 159Count cancelled requests. 160.It Li dc-fill 161Count data cache fill requests. 162.It Li ic-fill 163Count instruction cache fill requests. 164.It Li tag-snoop 165Count tag snoop requests. 166.It Li tlb-reload 167Count TLB reloads. 168.El 169.Pp 170The default is to count all types of requests. 171.It Li k8-dc-access 172.Pq Event 40H 173Count data cache accesses including microcode scratch pad accesses. 174.It Li k8-dc-copyback Op Li ,mask= Ns Ar qualifier 175.Pq Event 44H 176Count data cache copyback operations. 177This event may be further qualified using 178.Ar qualifier , 179which is a 180.Ql + 181separated set of the following keywords: 182.Pp 183.Bl -tag -width indent -compact 184.It Li exclusive 185Count operations for lines in the 186.Dq exclusive 187state. 188.It Li invalid 189Count operations for lines in the 190.Dq invalid 191state. 192.It Li modified 193Count operations for lines in the 194.Dq modified 195state. 196.It Li owner 197Count operations for lines in the 198.Dq owner 199state. 200.It Li shared 201Count operations for lines in the 202.Dq shared 203state. 204.El 205.Pp 206The default is to count operations for lines in all the 207above states. 208.It Li k8-dc-dcache-accesses-by-locks Op Li ,mask= Ns Ar qualifier 209.Pq Event 4CH 210Count data cache accesses by lock instructions. 211This event is only available on processors of revision C or later 212vintage. 213This event may be further qualified using 214.Ar qualifier , 215which is a 216.Ql + 217separated set of the following keywords: 218.Pp 219.Bl -tag -width indent -compact 220.It Li accesses 221Count data cache accesses by lock instructions. 222.It Li misses 223Count data cache misses by lock instructions. 224.El 225.Pp 226The default is to count all accesses. 227.It Li k8-dc-dispatched-prefetch-instructions Op Li ,mask= Ns Ar qualifier 228.Pq Event 4BH 229Count the number of dispatched prefetch instructions. 230This event may be further qualified using 231.Ar qualifier , 232which is a 233.Ql + 234separated set of the following keywords: 235.Pp 236.Bl -tag -width indent -compact 237.It Li load 238Count load operations. 239.It Li nta 240Count non-temporal operations. 241.It Li store 242Count store operations. 243.El 244.Pp 245The default is to count all operations. 246.It Li k8-dc-l1-dtlb-miss-and-l2-dtlb-hit 247.Pq Event 45H 248Count L1 DTLB misses that are L2 DTLB hits. 249.It Li k8-dc-l1-dtlb-miss-and-l2-dtlb-miss 250.Pq Event 46H 251Count L1 DTLB misses that are also misses in the L2 DTLB. 252.It Li k8-dc-microarchitectural-early-cancel-of-an-access 253.Pq Event 49H 254Count microarchitectural early cancels of data cache accesses. 255.It Li k8-dc-microarchitectural-late-cancel-of-an-access 256.Pq Event 48H 257Count microarchitectural late cancels of data cache accesses. 258.It Li k8-dc-misaligned-data-reference 259.Pq Event 47H 260Count misaligned data references. 261.It Li k8-dc-miss 262.Pq Event 41H 263Count data cache misses. 264.It Li k8-dc-one-bit-ecc-error Op Li ,mask= Ns Ar qualifier 265.Pq Event 4AH 266Count one bit ECC errors found by the scrubber. 267This event may be further qualified using 268.Ar qualifier , 269which is a 270.Ql + 271separated set of the following keywords: 272.Pp 273.Bl -tag -width indent -compact 274.It Li scrubber 275Count scrubber detected errors. 276.It Li piggyback 277Count piggyback scrubber errors. 278.El 279.Pp 280The default is to count both kinds of errors. 281.It Li k8-dc-refill-from-l2 Op Li ,mask= Ns Ar qualifier 282.Pq Event 42H 283Count data cache refills from L2 cache. 284This event may be further qualified using 285.Ar qualifier , 286which is a 287.Ql + 288separated set of the following keywords: 289.Pp 290.Bl -tag -width indent -compact 291.It Li exclusive 292Count operations for lines in the 293.Dq exclusive 294state. 295.It Li invalid 296Count operations for lines in the 297.Dq invalid 298state. 299.It Li modified 300Count operations for lines in the 301.Dq modified 302state. 303.It Li owner 304Count operations for lines in the 305.Dq owner 306state. 307.It Li shared 308Count operations for lines in the 309.Dq shared 310state. 311.El 312.Pp 313The default is to count operations for lines in all the 314above states. 315.It Li k8-dc-refill-from-system Op Li ,mask= Ns Ar qualifier 316.Pq Event 43H 317Count data cache refills from system memory. 318This event may be further qualified using 319.Ar qualifier , 320which is a 321.Ql + 322separated set of the following keywords: 323.Pp 324.Bl -tag -width indent -compact 325.It Li exclusive 326Count operations for lines in the 327.Dq exclusive 328state. 329.It Li invalid 330Count operations for lines in the 331.Dq invalid 332state. 333.It Li modified 334Count operations for lines in the 335.Dq modified 336state. 337.It Li owner 338Count operations for lines in the 339.Dq owner 340state. 341.It Li shared 342Count operations for lines in the 343.Dq shared 344state. 345.El 346.Pp 347The default is to count operations for lines in all the 348above states. 349.It Li k8-fp-cycles-with-no-fpu-ops-retired 350.Pq Event 01H 351Count cycles when no FPU ops were retired. 352This event is supported in revision B and later CPUs. 353.It Li k8-fp-dispatched-fpu-fast-flag-ops 354.Pq Event 02H 355Count dispatched FPU ops that use the fast flag interface. 356This event is supported in revision B and later CPUs. 357.It Li k8-fp-dispatched-fpu-ops Op Li ,mask= Ns Ar qualifier 358.Pq Event 00H 359Count the number of dispatched FPU ops. 360This event is supported in revision B and later CPUs. 361This event may be further qualified using 362.Ar qualifier , 363which is a 364.Ql + 365separated set of the following keywords: 366.Pp 367.Bl -tag -width indent -compact 368.It Li add-pipe-excluding-junk-ops 369Count add pipe ops excluding junk ops. 370.It Li add-pipe-junk-ops 371Count junk ops in the add pipe. 372.It Li multiply-pipe-excluding-junk-ops 373Count multiply pipe ops excluding junk ops. 374.It Li multiply-pipe-junk-ops 375Count junk ops in the multiply pipe. 376.It Li store-pipe-excluding-junk-ops 377Count store pipe ops excluding junk ops 378.It Li store-pipe-junk-ops 379Count junk ops in the store pipe. 380.El 381.Pp 382The default is to count all types of ops. 383.It Li k8-fr-decoder-empty 384.Pq Event D0H 385Count cycles when there was nothing to dispatch (i.e., the decoder 386was empty). 387.It Li k8-fr-dispatch-stall-for-segment-load 388.Pq Event D4H 389Count dispatch stalls for segment loads. 390.It Li k8-fr-dispatch-stall-for-serialization 391.Pq Event D3H 392Count dispatch stalls for serialization. 393.It Li k8-fr-dispatch-stall-from-branch-abort-to-retire 394.Pq Event D2H 395Count dispatch stalls from branch abort to retiral. 396.It Li k8-fr-dispatch-stall-when-fpu-is-full 397.Pq Event D7H 398Count dispatch stalls when the FPU is full. 399.It Li k8-fr-dispatch-stall-when-ls-is-full 400.Pq Event D8H 401Count dispatch stalls when the load/store unit is full. 402.It Li k8-fr-dispatch-stall-when-reorder-buffer-is-full 403.Pq Event D5H 404Count dispatch stalls when the reorder buffer is full. 405.It Li k8-fr-dispatch-stall-when-reservation-stations-are-full 406.Pq Event D6H 407Count dispatch stalls when reservation stations are full. 408.It Li k8-fr-dispatch-stall-when-waiting-far-xfer-or-resync-branch-pending 409.Pq Event DAH 410Count dispatch stalls when a far control transfer or a resync branch 411is pending. 412.It Li k8-fr-dispatch-stall-when-waiting-for-all-to-be-quiet 413.Pq Event D9H 414Count dispatch stalls when waiting for all to be quiet. 415.\" XXX What does "waiting for all to be quiet" mean? 416.It Li k8-fr-dispatch-stalls 417.Pq Event D1H 418Count all dispatch stalls. 419.It Li k8-fr-fpu-exceptions Op Li ,mask= Ns Ar qualifier 420.Pq Event DBH 421Count FPU exceptions. 422This event is supported in revision B and later CPUs. 423This event may be further qualified using 424.Ar qualifier , 425which is a 426.Ql + 427separated set of the following keywords: 428.Pp 429.Bl -tag -width indent -compact 430.It Li sse-and-x87-microtraps 431Count SSE and x87 microtraps. 432.It Li sse-reclass-microfaults 433Count SSE reclass microfaults 434.It Li sse-retype-microfaults 435Count SSE retype microfaults 436.It Li x87-reclass-microfaults 437Count x87 reclass microfaults. 438.El 439.Pp 440The default is to count all types of exceptions. 441.It Li k8-fr-interrupts-masked-cycles 442.Pq Event CDH 443Count cycles when interrupts were masked (by CPU RFLAGS field IF was zero). 444.It Li k8-fr-interrupts-masked-while-pending-cycles 445.Pq Event CEH 446Count cycles while interrupts were masked while pending (i.e., cycles 447when INTR was asserted while CPU RFLAGS field IF was zero). 448.It Li k8-fr-number-of-breakpoints-for-dr0 449.Pq Event DCH 450Count the number of breakpoints for DR0. 451.It Li k8-fr-number-of-breakpoints-for-dr1 452.Pq Event DDH 453Count the number of breakpoints for DR1. 454.It Li k8-fr-number-of-breakpoints-for-dr2 455.Pq Event DEH 456Count the number of breakpoints for DR2. 457.It Li k8-fr-number-of-breakpoints-for-dr3 458.Pq Event DFH 459Count the number of breakpoints for DR3. 460.It Li k8-fr-retired-branches 461.Pq Event C2H 462Count retired branches including exceptions and interrupts. 463.It Li k8-fr-retired-branches-mispredicted 464.Pq Event C3H 465Count mispredicted retired branches. 466.It Li k8-fr-retired-far-control-transfers 467.Pq Event C6H 468Count retired far control transfers (which are always mispredicted). 469.It Li k8-fr-retired-fastpath-double-op-instructions Op Li ,mask= Ns Ar qualifier 470.Pq Event CCH 471Count retired fastpath double op instructions. 472This event is supported in revision B and later CPUs. 473This event may be further qualified using 474.Ar qualifier , 475which is a 476.Ql + 477separated set of the following keywords: 478.Pp 479.Bl -tag -width indent -compact 480.It Li low-op-pos-0 481Count instructions with the low op in position 0. 482.It Li low-op-pos-1 483Count instructions with the low op in position 1. 484.It Li low-op-pos-2 485Count instructions with the low op in position 2. 486.El 487.Pp 488The default is to count all types of instructions. 489.It Li k8-fr-retired-fpu-instructions Op Li ,mask= Ns Ar qualifier 490.Pq Event CBH 491Count retired FPU instructions. 492This event is supported in revision B and later CPUs. 493This event may be further qualified using 494.Ar qualifier , 495which is a 496.Ql + 497separated set of the following keywords: 498.Pp 499.Bl -tag -width indent -compact 500.It Li mmx-3dnow 501Count MMX and 3DNow!\& instructions. 502.It Li packed-sse-sse2 503Count packed SSE and SSE2 instructions. 504.It Li scalar-sse-sse2 505Count scalar SSE and SSE2 instructions 506.It Li x87 507Count x87 instructions. 508.El 509.Pp 510The default is to count all types of instructions. 511.It Li k8-fr-retired-near-returns 512.Pq Event C8H 513Count retired near returns. 514.It Li k8-fr-retired-near-returns-mispredicted 515.Pq Event C9H 516Count mispredicted near returns. 517.It Li k8-fr-retired-resyncs 518.Pq Event C7H 519Count retired resyncs (non-control transfer branches). 520.It Li k8-fr-retired-taken-branches 521.Pq Event C4H 522Count retired taken branches. 523.It Li k8-fr-retired-taken-branches-mispredicted 524.Pq Event C5H 525Count retired taken branches that were mispredicted. 526.It Li k8-fr-retired-taken-branches-mispredicted-by-addr-miscompare 527.Pq Event CAH 528Count retired taken branches that were mispredicted only due to an 529address miscompare. 530.It Li k8-fr-retired-taken-hardware-interrupts 531.Pq Event CFH 532Count retired taken hardware interrupts. 533.It Li k8-fr-retired-uops 534.Pq Event C1H 535Count retired uops. 536.It Li k8-fr-retired-x86-instructions 537.Pq Event C0H 538Count retired x86 instructions including exceptions and interrupts. 539.It Li k8-ic-fetch 540.Pq Event 80H 541Count instruction cache fetches. 542.It Li k8-ic-instruction-fetch-stall 543.Pq Event 87H 544Count cycles in stalls due to instruction fetch. 545.It Li k8-ic-l1-itlb-miss-and-l2-itlb-hit 546.Pq Event 84H 547Count L1 ITLB misses that are L2 ITLB hits. 548.It Li k8-ic-l1-itlb-miss-and-l2-itlb-miss 549.Pq Event 85H 550Count ITLB misses that miss in both L1 and L2 ITLBs. 551.It Li k8-ic-microarchitectural-resync-by-snoop 552.Pq Event 86H 553Count microarchitectural resyncs caused by snoops. 554.It Li k8-ic-miss 555.Pq Event 81H 556Count instruction cache misses. 557.It Li k8-ic-refill-from-l2 558.Pq Event 82H 559Count instruction cache refills from L2 cache. 560.It Li k8-ic-refill-from-system 561.Pq Event 83H 562Count instruction cache refills from system memory. 563.It Li k8-ic-return-stack-hits 564.Pq Event 88H 565Count hits to the return stack. 566.It Li k8-ic-return-stack-overflow 567.Pq Event 89H 568Count overflows of the return stack. 569.It Li k8-ls-buffer2-full 570.Pq Event 23H 571Count load/store buffer2 full events. 572.It Li k8-ls-locked-operation Op Li ,mask= Ns Ar qualifier 573.Pq Event 24H 574Count locked operations. 575For revision C and later CPUs, the following qualifiers are supported: 576.Pp 577.Bl -tag -width indent -compact 578.It Li cycles-in-request 579Count the number of cycles in the lock request/grant stage. 580.It Li cycles-to-complete 581Count the number of cycles a lock takes to complete once it is 582non-speculative and is the older load/store operation. 583.It Li locked-instructions 584Count the number of lock instructions executed. 585.El 586.Pp 587The default is to count the number of lock instructions executed. 588.It Li k8-ls-microarchitectural-late-cancel 589.Pq Event 25H 590Count microarchitectural late cancels of operations in the load/store 591unit. 592.It Li k8-ls-microarchitectural-resync-by-self-modifying-code 593.Pq Event 21H 594Count microarchitectural resyncs caused by self-modifying code. 595.It Li k8-ls-microarchitectural-resync-by-snoop 596.Pq Event 22H 597Count microarchitectural resyncs caused by snoops. 598.It Li k8-ls-retired-cflush-instructions 599.Pq Event 26H 600Count retired CFLUSH instructions. 601.It Li k8-ls-retired-cpuid-instructions 602.Pq Event 27H 603Count retired CPUID instructions. 604.It Li k8-ls-segment-register-load Op Li ,mask= Ns Ar qualifier 605.Pq Event 20H 606Count segment register loads. 607This event may be further qualified using 608.Ar qualifier , 609which is a 610.Ql + 611separated set of the following keywords: 612.Bl -tag -width indent -compact 613.It Li cs 614Count CS register loads. 615.It Li ds 616Count DS register loads. 617.It Li es 618Count ES register loads. 619.It Li fs 620Count FS register loads. 621.It Li gs 622Count GS register loads. 623.\" .It Li hs 624.\" Count HS register loads. 625.\" XXX "HS" register? 626.It Li ss 627Count SS register loads. 628.El 629.Pp 630The default is to count all types of loads. 631.It Li k8-nb-ht-bus0-bandwidth Op Li ,mask= Ns Ar qualifier 632.It Li k8-nb-ht-bus1-bandwidth Op Li ,mask= Ns Ar qualifier 633.It Li k8-nb-ht-bus2-bandwidth Op Li ,mask= Ns Ar qualifier 634.Pq Events F6H, F7H and F8H respectively 635Count events on the HyperTransport(tm) buses. 636These events may be further qualified using 637.Ar qualifier , 638which is a 639.Ql + 640separated set of the following keywords: 641.Pp 642.Bl -tag -width indent -compact 643.It Li buffer-release 644Count buffer release messages sent. 645.It Li command 646Count command messages sent. 647.It Li data 648Count data messages sent. 649.It Li nop 650Count nop messages sent. 651.El 652.Pp 653The default is to count all types of messages. 654.It Li k8-nb-memory-controller-bypass-saturation Op Li ,mask= Ns Ar qualifier 655.Pq Event E4H 656Count memory controller bypass counter saturation events. 657This event may be further qualified using 658.Ar qualifier , 659which is a 660.Ql + 661separated set of the following keywords: 662.Pp 663.Bl -tag -width indent -compact 664.It Li dram-controller-interface-bypass 665Count DRAM controller interface bypass. 666.It Li dram-controller-queue-bypass 667Count DRAM controller queue bypass. 668.It Li memory-controller-hi-pri-bypass 669Count memory controller high priority bypasses. 670.It Li memory-controller-lo-pri-bypass 671Count memory controller low priority bypasses. 672.El 673.It Li k8-nb-memory-controller-dram-slots-missed 674.Pq Event E2H 675Count memory controller DRAM command slots missed (in MemClks). 676.It Li k8-nb-memory-controller-page-access-event Op Li ,mask= Ns Ar qualifier 677.Pq Event E0H 678Count memory controller page access events. 679This event may be further qualified using 680.Ar qualifier , 681which is a 682.Ql + 683separated set of the following keywords: 684.Pp 685.Bl -tag -width indent -compact 686.It Li page-conflict 687Count page conflicts. 688.It Li page-hit 689Count page hits. 690.It Li page-miss 691Count page misses. 692.El 693.Pp 694The default is to count all types of events. 695.It Li k8-nb-memory-controller-page-table-overflow 696.Pq Event E1H 697Count memory control page table overflow events. 698.It Li k8-nb-memory-controller-turnaround Op Li ,mask= Ns Ar qualifier 699.Pq Event E3H 700Count memory control turnaround events. 701This event may be further qualified using 702.Ar qualifier , 703which is a 704.Ql + 705separated set of the following keywords: 706.Pp 707.Bl -tag -width indent -compact 708.\" XXX doc is unclear whether these are cycle counts or event counts 709.It Li dimm-turnaround 710Count DIMM turnarounds. 711.It Li read-to-write-turnaround 712Count read to write turnarounds. 713.It Li write-to-read-turnaround 714Count write to read turnarounds. 715.El 716.Pp 717The default is to count all types of events. 718.It Li k8-nb-probe-result Op Li ,mask= Ns Ar qualifier 719.Pq Event ECH 720Count probe events. 721This event may be further qualified using 722.Ar qualifier , 723which is a 724.Ql + 725separated set of the following keywords: 726.Pp 727.Bl -tag -width indent -compact 728.It Li probe-hit 729Count all probe hits. 730.It Li probe-hit-dirty-no-memory-cancel 731Count probe hits without memory cancels. 732.It Li probe-hit-dirty-with-memory-cancel 733Count probe hits with memory cancels. 734.It Li probe-miss 735Count probe misses. 736.El 737.It Li k8-nb-sized-commands Op Li ,mask= Ns Ar qualifier 738.Pq Event EBH 739Count sized commands issued. 740This event may be further qualified using 741.Ar qualifier , 742which is a 743.Ql + 744separated set of the following keywords: 745.Pp 746.Bl -tag -width indent -compact 747.It Li nonpostwrszbyte 748.It Li nonpostwrszdword 749.It Li postwrszbyte 750.It Li postwrszdword 751.It Li rdszbyte 752.It Li rdszdword 753.It Li rdmodwr 754.El 755.Pp 756The default is to count all types of commands. 757.El 758.Ss Event Name Aliases 759The following table shows the mapping between the PMC-independent 760aliases supported by 761.Lb libpmc 762and the underlying hardware events used. 763.Bl -column "branch-mispredicts" "Description" 764.It Em Alias Ta Em Event 765.It Li branches Ta Li k8-fr-retired-taken-branches 766.It Li branch-mispredicts Ta Li k8-fr-retired-taken-branches-mispredicted 767.It Li dc-misses Ta Li k8-dc-miss 768.It Li ic-misses Ta Li k8-ic-miss 769.It Li instructions Ta Li k8-fr-retired-x86-instructions 770.It Li interrupts Ta Li k8-fr-taken-hardware-interrupts 771.It Li unhalted-cycles Ta Li k8-bu-cpu-clk-unhalted 772.El 773.Sh SEE ALSO 774.Xr pmc 3 , 775.Xr pmc.atom 3 , 776.Xr pmc.core 3 , 777.Xr pmc.core2 3 , 778.Xr pmc.iaf 3 , 779.Xr pmc.k7 3 , 780.Xr pmc.soft 3 , 781.Xr pmc.tsc 3 , 782.Xr pmclog 3 , 783.Xr hwpmc 4 784.Sh HISTORY 785The 786.Nm pmc 787library first appeared in 788.Fx 6.0 . 789.Sh AUTHORS 790The 791.Lb libpmc 792library was written by 793.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org . 794