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 AUTHORS 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 AUTHORS 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.\" $FreeBSD$ 26.\" 27.Dd March 22, 2013 28.Dt PMC.HASWELLUC 3 29.Os 30.Sh NAME 31.Nm pmc.haswelluc 32.Nd uncore measurement events for 33.Tn Intel 34.Tn Haswell 35family CPUs 36.Sh LIBRARY 37.Lb libpmc 38.Sh SYNOPSIS 39.In pmc.h 40.Sh DESCRIPTION 41.Tn Intel 42.Tn "Haswell" 43CPUs contain PMCs conforming to version 3 of the 44.Tn Intel 45performance measurement architecture. 46These CPUs contain two classes of PMCs: 47.Bl -tag -width "Li PMC_CLASS_UCP" 48.It Li PMC_CLASS_UCF 49Fixed-function counters that count only one hardware event per counter. 50.It Li PMC_CLASS_UCP 51Programmable counters that may be configured to count one of a defined 52set of hardware events. 53.El 54.Pp 55The number of PMCs available in each class and their widths need to be 56determined at run time by calling 57.Xr pmc_cpuinfo 3 . 58.Pp 59Intel Haswell PMCs are documented in 60.Rs 61.%B "Intel(R) 64 and IA-32 Architectures Software Developers Manual" 62.%T "Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B and 3C" 63.%N "Order Number: 325462-045US" 64.%D January 2013 65.%Q "Intel Corporation" 66.Re 67.Ss HASWELL UNCORE FIXED FUNCTION PMCS 68These PMCs and their supported events are documented in 69.Xr pmc.ucf 3 . 70Not all CPUs in this family implement fixed-function counters. 71.Ss HASWELL UNCORE PROGRAMMABLE PMCS 72The programmable PMCs support the following capabilities: 73.Bl -column "PMC_CAP_INTERRUPT" "Support" 74.It Em Capability Ta Em Support 75.It PMC_CAP_CASCADE Ta \&No 76.It PMC_CAP_EDGE Ta Yes 77.It PMC_CAP_INTERRUPT Ta \&No 78.It PMC_CAP_INVERT Ta Yes 79.It PMC_CAP_READ Ta Yes 80.It PMC_CAP_PRECISE Ta \&No 81.It PMC_CAP_SYSTEM Ta \&No 82.It PMC_CAP_TAGGING Ta \&No 83.It PMC_CAP_THRESHOLD Ta Yes 84.It PMC_CAP_USER Ta \&No 85.It PMC_CAP_WRITE Ta Yes 86.El 87.Ss Event Qualifiers 88Event specifiers for these PMCs support the following common 89qualifiers: 90.Bl -tag -width indent 91.It Li cmask= Ns Ar value 92Configure the PMC to increment only if the number of configured 93events measured in a cycle is greater than or equal to 94.Ar value . 95.It Li edge 96Configure the PMC to count the number of de-asserted to asserted 97transitions of the conditions expressed by the other qualifiers. 98If specified, the counter will increment only once whenever a 99condition becomes true, irrespective of the number of clocks during 100which the condition remains true. 101.It Li inv 102Invert the sense of comparison when the 103.Dq Li cmask 104qualifier is present, making the counter increment when the number of 105events per cycle is less than the value specified by the 106.Dq Li cmask 107qualifier. 108.El 109.Ss Event Specifiers (Programmable PMCs) 110Haswell programmable PMCs support the following events: 111.Bl -tag -width indent 112.It Li UNC_CBO_XSNP_RESPONSE.MISS 113.Pq Event 22H , Umask 01H 114A snoop misses in some processor core. 115.It Li UNC_CBO_XSNP_RESPONSE.INVAL 116.Pq Event 22H , Umask 02H 117A snoop invalidates a non-modified line in some 118processor core. 119.It Li UNC_CBO_XSNP_RESPONSE.HIT 120.Pq Event 22H , Umask 04H 121A snoop hits a non-modified line in some processor 122core. 123.It Li UNC_CBO_XSNP_RESPONSE.HITM 124.Pq Event 22H , Umask 08H 125A snoop hits a modified line in some processor core. 126.It Li UNC_CBO_XSNP_RESPONSE.INVAL_M 127.Pq Event 22H , Umask 10H 128A snoop invalidates a modified line in some processor 129core. 130.It Li UNC_CBO_XSNP_RESPONSE.EXTERNAL_FILTER 131.Pq Event 22H , Umask 20H 132Filter on cross-core snoops initiated by this Cbox due 133to external snoop request. 134.It Li UNC_CBO_XSNP_RESPONSE.XCORE_FILTER 135.Pq Event 22H , Umask 40H 136Filter on cross-core snoops initiated by this Cbox due 137to processor core memory request. 138.It Li UNC_CBO_XSNP_RESPONSE.EVICTION_FILTER 139.Pq Event 22H , Umask 80H 140Filter on cross-core snoops initiated by this Cbox due 141to LLC eviction. 142.It Li UNC_CBO_CACHE_LOOKUP.M 143.Pq Event 34H , Umask 01H 144LLC lookup request that access cache and found line in 145M-state. 146.It Li UNC_CBO_CACHE_LOOKUP.ES 147.Pq Event 34H , Umask 06H 148LLC lookup request that access cache and found line in 149E or S state. 150.It Li UNC_CBO_CACHE_LOOKUP.I 151.Pq Event 34H , Umask 08H 152LLC lookup request that access cache and found line in 153I-state. 154.It Li UNC_CBO_CACHE_LOOKUP.READ_FILTER 155.Pq Event 34H , Umask 10H 156Filter on processor core initiated cacheable read 157requests. Must combine with at least one of 01H, 02H, 15804H, 08H. 159.It Li UNC_CBO_CACHE_LOOKUP.WRITE_FILTER 160.Pq Event 34H , Umask 20H 161Filter on processor core initiated cacheable write 162requests. Must combine with at least one of 01H, 02H, 16304H, 08H. 164.It Li UNC_CBO_CACHE_LOOKUP.EXTSNP_FILTER 165.Pq Event 34H , Umask 40H 166Filter on external snoop requests. Must combine with 167at least one of 01H, 02H, 04H, 08H. 168.It Li UNC_CBO_CACHE_LOOKUP.ANY_REQUEST_FILTER 169.Pq Event 34H , Umask 80H 170Filter on any IRQ or IPQ initiated requests including 171uncacheable, non-coherent requests. Must combine 172with at least one of 01H, 02H, 04H, 08H. 173.It Li UNC_ARB_TRK_OCCUPANCY.ALL 174.Pq Event 80H , Umask 01H 175Counts cycles weighted by the number of requests 176waiting for data returning from the memory controller. 177Accounts for coherent and non-coherent requests 178initiated by IA cores, processor graphic units, or LLC. 179.It Li UNC_ARB_TRK_REQUEST.ALL 180.Pq Event 81H , Umask 01H 181Counts the number of coherent and in-coherent 182requests initiated by IA cores, processor graphic units, 183or LLC. 184.It Li UNC_ARB_TRK_REQUEST.WRITES 185.Pq Event 81H , Umask 20H 186Counts the number of allocated write entries, include 187full, partial, and LLC evictions. 188.It Li UNC_ARB_TRK_REQUEST.EVICTIONS 189.Pq Event 81H , Umask 80H 190Counts the number of LLC evictions allocated. 191.It Li UNC_ARB_COH , Umask TRK_OCCUPANCY.ALL 192.Pq Event 83H , Umask 01H 193Cycles weighted by number of requests pending in 194Coherency Tracker. 195.It Li UNC_ARB_COH , Umask TRK_REQUEST.ALL 196.Pq Event 84H , Umask 01H 197Number of requests allocated in Coherency Tracker. 198.El 199.Sh SEE ALSO 200.Xr pmc 3 , 201.Xr pmc.atom 3 , 202.Xr pmc.core 3 , 203.Xr pmc.corei7 3 , 204.Xr pmc.corei7uc 3 , 205.Xr pmc.haswell 3 , 206.Xr pmc.iaf 3 , 207.Xr pmc.k7 3 , 208.Xr pmc.k8 3 , 209.Xr pmc.p4 3 , 210.Xr pmc.p5 3 , 211.Xr pmc.p6 3 , 212.Xr pmc.sandybridge 3 , 213.Xr pmc.sandybridgeuc 3 , 214.Xr pmc.sandybridgexeon 3 , 215.Xr pmc.soft 3 , 216.Xr pmc.tsc 3 , 217.Xr pmc.ucf 3 , 218.Xr pmc.westmere 3 , 219.Xr pmc.westmereuc 3 , 220.Xr pmc_cpuinfo 3 , 221.Xr pmclog 3 , 222.Xr hwpmc 4 223.Sh HISTORY 224The 225.Nm pmc 226library first appeared in 227.Fx 6.0 . 228.Sh AUTHORS 229The 230.Lb libpmc 231library was written by 232.An "Joseph Koshy" 233.Aq jkoshy@FreeBSD.org . 234The support for the Haswell 235microarchitecture was added by 236.An "Hiren Panchasara" 237.Aq hiren.panchasara@gmail.com . 238