xref: /freebsd/lib/libpmc/pmc.haswelluc.3 (revision 9f44a47fd07924afc035991af15d84e6585dea4f)
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.
158Must combine with at least one of 01H, 02H, 04H, 08H.
159.It Li UNC_CBO_CACHE_LOOKUP.WRITE_FILTER
160.Pq Event 34H , Umask 20H
161Filter on processor core initiated cacheable write requests.
162Must combine with at least one of 01H, 02H, 04H, 08H.
163.It Li UNC_CBO_CACHE_LOOKUP.EXTSNP_FILTER
164.Pq Event 34H , Umask 40H
165Filter on external snoop requests.
166Must combine with at least one of 01H, 02H, 04H, 08H.
167.It Li UNC_CBO_CACHE_LOOKUP.ANY_REQUEST_FILTER
168.Pq Event 34H , Umask 80H
169Filter on any IRQ or IPQ initiated requests including
170uncacheable, non-coherent requests.
171Must combine with at least one of 01H, 02H, 04H, 08H.
172.It Li UNC_ARB_TRK_OCCUPANCY.ALL
173.Pq Event 80H , Umask 01H
174Counts cycles weighted by the number of requests
175waiting for data returning from the memory controller.
176Accounts for coherent and non-coherent requests
177initiated by IA cores, processor graphic units, or LLC.
178.It Li UNC_ARB_TRK_REQUEST.ALL
179.Pq Event 81H , Umask 01H
180Counts the number of coherent and in-coherent
181requests initiated by IA cores, processor graphic units,
182or LLC.
183.It Li UNC_ARB_TRK_REQUEST.WRITES
184.Pq Event 81H , Umask 20H
185Counts the number of allocated write entries, include
186full, partial, and LLC evictions.
187.It Li UNC_ARB_TRK_REQUEST.EVICTIONS
188.Pq Event 81H , Umask 80H
189Counts the number of LLC evictions allocated.
190.It Li UNC_ARB_COH , Umask TRK_OCCUPANCY.ALL
191.Pq Event 83H , Umask 01H
192Cycles weighted by number of requests pending in
193Coherency Tracker.
194.It Li UNC_ARB_COH , Umask TRK_REQUEST.ALL
195.Pq Event 84H , Umask 01H
196Number of requests allocated in Coherency Tracker.
197.El
198.Sh SEE ALSO
199.Xr pmc 3 ,
200.Xr pmc.atom 3 ,
201.Xr pmc.core 3 ,
202.Xr pmc.corei7 3 ,
203.Xr pmc.corei7uc 3 ,
204.Xr pmc.haswell 3 ,
205.Xr pmc.iaf 3 ,
206.Xr pmc.k7 3 ,
207.Xr pmc.k8 3 ,
208.Xr pmc.sandybridge 3 ,
209.Xr pmc.sandybridgeuc 3 ,
210.Xr pmc.sandybridgexeon 3 ,
211.Xr pmc.soft 3 ,
212.Xr pmc.tsc 3 ,
213.Xr pmc.ucf 3 ,
214.Xr pmc.westmere 3 ,
215.Xr pmc.westmereuc 3 ,
216.Xr pmc_cpuinfo 3 ,
217.Xr pmclog 3 ,
218.Xr hwpmc 4
219.Sh HISTORY
220The
221.Nm pmc
222library first appeared in
223.Fx 6.0 .
224.Sh AUTHORS
225.An -nosplit
226The
227.Lb libpmc
228library was written by
229.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org .
230The support for the Haswell
231microarchitecture was added by
232.An Hiren Panchasara Aq Mt hiren.panchasara@gmail.com .
233