]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - lib/libpmc/pmc.corei7uc.3
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / lib / libpmc / pmc.corei7uc.3
1 .\" Copyright (c) 2010 Fabien Thomas.  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 .\" $FreeBSD$
25 .\"
26 .Dd March 24, 2010
27 .Dt PMC.COREI7UC 3
28 .Os
29 .Sh NAME
30 .Nm pmc.corei7uc
31 .Nd uncore measurement events for
32 .Tn Intel
33 .Tn Core i7 and Xeon 5500
34 family CPUs
35 .Sh LIBRARY
36 .Lb libpmc
37 .Sh SYNOPSIS
38 .In pmc.h
39 .Sh DESCRIPTION
40 .Tn Intel
41 .Tn "Core i7"
42 CPUs contain PMCs conforming to version 2 of the
43 .Tn Intel
44 performance measurement architecture.
45 These CPUs contain 2 classes of PMCs:
46 .Bl -tag -width "Li PMC_CLASS_UCP"
47 .It Li PMC_CLASS_UCF
48 Fixed-function counters that count only one hardware event per counter.
49 .It Li PMC_CLASS_UCP
50 Programmable counters that may be configured to count one of a defined
51 set of hardware events.
52 .El
53 .Pp
54 The number of PMCs available in each class and their widths need to be
55 determined at run time by calling
56 .Xr pmc_cpuinfo 3 .
57 .Pp
58 Intel Core i7 and Xeon 5500 PMCs are documented in
59 .Rs
60 .%B "Intel(R) 64 and IA-32 Architectures Software Developes Manual"
61 .%T "Volume 3B: System Programming Guide, Part 2"
62 .%N "Order Number: 253669-033US"
63 .%D December 2009
64 .%Q "Intel Corporation"
65 .Re
66 .Ss COREI7 AND XEON 5500 UNCORE FIXED FUNCTION PMCS
67 These PMCs and their supported events are documented in
68 .Xr pmc.ucf 3 .
69 .Ss COREI7 AND XEON 5500 UNCORE PROGRAMMABLE PMCS
70 The programmable PMCs support the following capabilities:
71 .Bl -column "PMC_CAP_INTERRUPT" "Support"
72 .It Em Capability Ta Em Support
73 .It PMC_CAP_CASCADE Ta \&No
74 .It PMC_CAP_EDGE Ta Yes
75 .It PMC_CAP_INTERRUPT Ta \&No
76 .It PMC_CAP_INVERT Ta Yes
77 .It PMC_CAP_READ Ta Yes
78 .It PMC_CAP_PRECISE Ta \&No
79 .It PMC_CAP_SYSTEM Ta \&No
80 .It PMC_CAP_TAGGING Ta \&No
81 .It PMC_CAP_THRESHOLD Ta Yes
82 .It PMC_CAP_USER Ta \&No
83 .It PMC_CAP_WRITE Ta Yes
84 .El
85 .Ss Event Qualifiers
86 Event specifiers for these PMCs support the following common
87 qualifiers:
88 .Bl -tag -width indent
89 .It Li cmask= Ns Ar value
90 Configure the PMC to increment only if the number of configured
91 events measured in a cycle is greater than or equal to
92 .Ar value .
93 .It Li edge
94 Configure the PMC to count the number of de-asserted to asserted
95 transitions of the conditions expressed by the other qualifiers.
96 If specified, the counter will increment only once whenever a
97 condition becomes true, irrespective of the number of clocks during
98 which the condition remains true.
99 .It Li inv
100 Invert the sense of comparison when the
101 .Dq Li cmask
102 qualifier is present, making the counter increment when the number of
103 events per cycle is less than the value specified by the
104 .Dq Li cmask
105 qualifier.
106 .El
107 .Ss Event Specifiers (Programmable PMCs)
108 Core i7 and Xeon 5500 uncore programmable PMCs support the following events:
109 .Bl -tag -width indent
110 .It Li GQ_CYCLES_FULL.READ_TRACKER
111 .Pq Event 00H , Umask 01H
112 Uncore cycles Global Queue read tracker is full.
113 .It Li GQ_CYCLES_FULL.WRITE_TRACKER
114 .Pq Event 00H , Umask 02H
115 Uncore cycles Global Queue write tracker is full.
116 .It Li GQ_CYCLES_FULL.PEER_PROBE_TRACKER
117 .Pq Event 00H , Umask 04H
118 Uncore cycles Global Queue peer probe tracker is full. The peer probe
119 tracker queue tracks snoops from the IOH and remote sockets.
120 .It Li GQ_CYCLES_NOT_EMPTY.READ_TRACKER
121 .Pq Event 01H , Umask 01H
122 Uncore cycles were Global Queue read tracker has at least one valid entry.
123 .It Li GQ_CYCLES_NOT_EMPTY.WRITE_TRACKER
124 .Pq Event 01H , Umask 02H
125 Uncore cycles were Global Queue write tracker has at least one valid entry.
126 .It Li GQ_CYCLES_NOT_EMPTY.PEER_PROBE_TRACKER
127 .Pq Event 01H , Umask 04H
128 Uncore cycles were Global Queue peer probe tracker has at least one valid
129 entry. The peer probe tracker queue tracks IOH and remote socket snoops.
130 .It Li GQ_ALLOC.READ_TRACKER
131 .Pq Event 03H , Umask 01H
132 Counts the number of tread tracker allocate to deallocate entries. The GQ
133 read tracker allocate to deallocate occupancy count is divided by the count
134 to obtain the average read tracker latency.
135 .It Li GQ_ALLOC.RT_L3_MISS
136 .Pq Event 03H , Umask 02H
137 Counts the number GQ read tracker entries for which a full cache line read
138 has missed the L3. The GQ read tracker L3 miss to fill occupancy count is
139 divided by this count to obtain the average cache line read L3 miss latency.
140 The latency represents the time after which the L3 has determined that the
141 cache line has missed. The time between a GQ read tracker allocation and the
142 L3 determining that the cache line has missed is the average L3 hit latency.
143 The total L3 cache line read miss latency is the hit latency + L3 miss
144 latency.
145 .It Li GQ_ALLOC.RT_TO_L3_RESP
146 .Pq Event 03H , Umask 04H
147 Counts the number of GQ read tracker entries that are allocated in the read
148 tracker queue that hit or miss the L3. The GQ read tracker L3 hit occupancy
149 count is divided by this count to obtain the average L3 hit latency.
150 .It Li GQ_ALLOC.RT_TO_RTID_ACQUIRED
151 .Pq Event 03H , Umask 08H
152 Counts the number of GQ read tracker entries that are allocated in the read
153 tracker, have missed in the L3 and have not acquired a Request Transaction
154 ID. The GQ read tracker L3 miss to RTID acquired occupancy count is
155 divided by this count to obtain the average latency for a read L3 miss to
156 acquire an RTID.
157 .It Li GQ_ALLOC.WT_TO_RTID_ACQUIRED
158 .Pq Event 03H , Umask 10H
159 Counts the number of GQ write tracker entries that are allocated in the
160 write tracker, have missed in the L3 and have not acquired a Request
161 Transaction ID. The GQ write tracker L3 miss to RTID occupancy count is
162 divided by this count to obtain the average latency for a write L3 miss to
163 acquire an RTID.
164 .It Li GQ_ALLOC.WRITE_TRACKER
165 .Pq Event 03H , Umask 20H
166 Counts the number of GQ write tracker entries that are allocated in the
167 write tracker queue that miss the L3. The GQ write tracker occupancy count
168 is divided by the this count to obtain the average L3 write miss latency.
169 .It Li GQ_ALLOC.PEER_PROBE_TRACKER
170 .Pq Event 03H , Umask 40H
171 Counts the number of GQ peer probe tracker (snoop) entries that are
172 allocated in the peer probe tracker queue that miss the L3. The GQ peer
173 probe occupancy count is divided by this count to obtain the average L3 peer
174 probe miss latency.
175 .It Li GQ_DATA.FROM_QPI
176 .Pq Event 04H , Umask 01H
177 Cycles Global Queue Quickpath Interface input data port is busy importing
178 data from the Quickpath Interface. Each cycle the input port can transfer 8
179 or 16 bytes of data.
180 .It Li GQ_DATA.FROM_QMC
181 .Pq Event 04H , Umask 02H
182 Cycles Global Queue Quickpath Memory Interface input data port is busy
183 importing data from the Quickpath Memory Interface. Each cycle the input
184 port can transfer 8 or 16 bytes of data.
185 .It Li GQ_DATA.FROM_L3
186 .Pq Event 04H , Umask 04H
187 Cycles GQ L3 input data port is busy importing data from the Last Level
188 Cache. Each cycle the input port can transfer 32 bytes of data.
189 .It Li GQ_DATA.FROM_CORES_02
190 .Pq Event 04H , Umask 08H
191 Cycles GQ Core 0 and 2 input data port is busy importing data from processor
192 cores 0 and 2. Each cycle the input port can transfer 32 bytes of data.
193 .It Li GQ_DATA.FROM_CORES_13
194 .Pq Event 04H , Umask 10H
195 Cycles GQ Core 1 and 3 input data port is busy importing data from processor
196 cores 1 and 3. Each cycle the input port can transfer 32 bytes of data.
197 .It Li GQ_DATA.TO_QPI_QMC
198 .Pq Event 05H , Umask 01H
199 Cycles GQ QPI and QMC output data port is busy sending data to the Quickpath
200 Interface or Quickpath Memory Interface. Each cycle the output port can
201 transfer 32 bytes of data.
202 .It Li GQ_DATA.TO_L3
203 .Pq Event 05H , Umask 02H
204 Cycles GQ L3 output data port is busy sending data to the Last Level Cache.
205 Each cycle the output port can transfer 32 bytes of data.
206 .It Li GQ_DATA.TO_CORES
207 .Pq Event 05H , Umask 04H
208 Cycles GQ Core output data port is busy sending data to the Cores. Each
209 cycle the output port can transfer 32 bytes of data.
210 .It Li SNP_RESP_TO_LOCAL_HOME.I_STATE
211 .Pq Event 06H , Umask 01H
212 Number of snoop responses to the local home that L3 does not have the
213 referenced cache line.
214 .It Li SNP_RESP_TO_LOCAL_HOME.S_STATE
215 .Pq Event 06H , Umask 02H
216 Number of snoop responses to the local home that L3 has the referenced line
217 cached in the S state.
218 .It Li SNP_RESP_TO_LOCAL_HOME.FWD_S_STATE
219 .Pq Event 06H , Umask 04H
220 Number of responses to code or data read snoops to the local home that the
221 L3 has the referenced cache line in the E state. The L3 cache line state is
222 changed to the S state and the line is forwarded to the local home in the S
223 state.
224 .It Li SNP_RESP_TO_LOCAL_HOME.FWD_I_STATE
225 .Pq Event 06H , Umask 08H
226 Number of responses to read invalidate snoops to the local home that the L3
227 has the referenced cache line in the M state. The L3 cache line state is
228 invalidated and the line is forwarded to the local home in the M state.
229 .It Li SNP_RESP_TO_LOCAL_HOME.CONFLICT
230 .Pq Event 06H , Umask 10H
231 Number of conflict snoop responses sent to the local home.
232 .It Li SNP_RESP_TO_LOCAL_HOME.WB
233 .Pq Event 06H , Umask 20H
234 Number of responses to code or data read snoops to the local home that the
235 L3 has the referenced line cached in the M state.
236 .It Li SNP_RESP_TO_REMOTE_HOME.I_STATE
237 .Pq Event 07H , Umask 01H
238 Number of snoop responses to a remote home that L3 does not have the
239 referenced cache line.
240 .It Li SNP_RESP_TO_REMOTE_HOME.S_STATE
241 .Pq Event 07H , Umask 02H
242 Number of snoop responses to a remote home that L3 has the referenced line
243 cached in the S state.
244 .It Li SNP_RESP_TO_REMOTE_HOME.FWD_S_STATE
245 .Pq Event 07H , Umask 04H
246 Number of responses to code or data read snoops to a remote home that the L3
247 has the referenced cache line in the E state. The L3 cache line state is
248 changed to the S state and the line is forwarded to the remote home in the S
249 state.
250 .It Li SNP_RESP_TO_REMOTE_HOME.FWD_I_STATE
251 .Pq Event 07H , Umask 08H
252 Number of responses to read invalidate snoops to a remote home that the L3
253 has the referenced cache line in the M state. The L3 cache line state is
254 invalidated and the line is forwarded to the remote home in the M state.
255 .It Li SNP_RESP_TO_REMOTE_HOME.CONFLICT
256 .Pq Event 07H , Umask 10H
257 Number of conflict snoop responses sent to the local home.
258 .It Li SNP_RESP_TO_REMOTE_HOME.WB
259 .Pq Event 07H , Umask 20H
260 Number of responses to code or data read snoops to a remote home that the L3
261 has the referenced line cached in the M state.
262 .It Li SNP_RESP_TO_REMOTE_HOME.HITM
263 .Pq Event 07H , Umask 24H
264 Number of HITM snoop responses to a remote home
265 .It Li L3_HITS.READ
266 .Pq Event 08H , Umask 01H
267 Number of code read, data read and RFO requests that hit in the L3
268 .It Li L3_HITS.WRITE
269 .Pq Event 08H , Umask 02H
270 Number of writeback requests that hit in the L3. Writebacks from the cores
271 will always result in L3 hits due to the inclusive property of the L3.
272 .It Li L3_HITS.PROBE
273 .Pq Event 08H , Umask 04H
274 Number of snoops from IOH or remote sockets that hit in the L3.
275 .It Li L3_HITS.ANY
276 .Pq Event 08H , Umask 03H
277 Number of reads and writes that hit the L3.
278 .It Li L3_MISS.READ
279 .Pq Event 09H , Umask 01H
280 Number of code read, data read and RFO requests that miss the L3.
281 .It Li L3_MISS.WRITE
282 .Pq Event 09H , Umask 02H
283 Number of writeback requests that miss the L3. Should always be zero as
284 writebacks from the cores will always result in L3 hits due to the inclusive
285 property of the L3.
286 .It Li L3_MISS.PROBE
287 .Pq Event 09H , Umask 04H
288 Number of snoops from IOH or remote sockets that miss the L3.
289 .It Li L3_MISS.ANY
290 .Pq Event 09H , Umask 03H
291 Number of reads and writes that miss the L3.
292 .It Li L3_LINES_IN.M_STATE
293 .Pq Event 0AH , Umask 01H
294 Counts the number of L3 lines allocated in M state. The only time a cache
295 line is allocated in the M state is when the line was forwarded in M state
296 is forwarded due to a Snoop Read Invalidate Own request.
297 .It Li L3_LINES_IN.E_STATE
298 .Pq Event 0AH , Umask 02H
299 Counts the number of L3 lines allocated in E state.
300 .It Li L3_LINES_IN.S_STATE
301 .Pq Event 0AH , Umask 04H
302 Counts the number of L3 lines allocated in S state.
303 .It Li L3_LINES_IN.F_STATE
304 .Pq Event 0AH , Umask 08H
305 Counts the number of L3 lines allocated in F state.
306 .It Li L3_LINES_IN.ANY
307 .Pq Event 0AH , Umask 0FH
308 Counts the number of L3 lines allocated in any state.
309 .It Li L3_LINES_OUT.M_STATE
310 .Pq Event 0BH , Umask 01H
311 Counts the number of L3 lines victimized that were in the M state. When the
312 victim cache line is in M state, the line is written to its home cache agent
313 which can be either local or remote.
314 .It Li L3_LINES_OUT.E_STATE
315 .Pq Event 0BH , Umask 02H
316 Counts the number of L3 lines victimized that were in the E state.
317 .It Li L3_LINES_OUT.S_STATE
318 .Pq Event 0BH , Umask 04H
319 Counts the number of L3 lines victimized that were in the S state.
320 .It Li L3_LINES_OUT.I_STATE
321 .Pq Event 0BH , Umask 08H
322 Counts the number of L3 lines victimized that were in the I state.
323 .It Li L3_LINES_OUT.F_STATE
324 .Pq Event 0BH , Umask 10H
325 Counts the number of L3 lines victimized that were in the F state.
326 .It Li L3_LINES_OUT.ANY
327 .Pq Event 0BH , Umask 1FH
328 Counts the number of L3 lines victimized in any state.
329 .It Li QHL_REQUESTS.IOH_READS
330 .Pq Event 20H , Umask 01H
331 Counts number of Quickpath Home Logic read requests from the IOH.
332 .It Li QHL_REQUESTS.IOH_WRITES
333 .Pq Event 20H , Umask 02H
334 Counts number of Quickpath Home Logic write requests from the IOH.
335 .It Li QHL_REQUESTS.REMOTE_READS
336 .Pq Event 20H , Umask 04H
337 Counts number of Quickpath Home Logic read requests from a remote socket.
338 .It Li QHL_REQUESTS.REMOTE_WRITES
339 .Pq Event 20H , Umask 08H
340 Counts number of Quickpath Home Logic write requests from a remote socket.
341 .It Li QHL_REQUESTS.LOCAL_READS
342 .Pq Event 20H , Umask 10H
343 Counts number of Quickpath Home Logic read requests from the local socket.
344 .It Li QHL_REQUESTS.LOCAL_WRITES
345 .Pq Event 20H , Umask 20H
346 Counts number of Quickpath Home Logic write requests from the local socket.
347 .It Li QHL_CYCLES_FULL.IOH
348 .Pq Event 21H , Umask 01H
349 Counts uclk cycles all entries in the Quickpath Home Logic IOH are full.
350 .It Li QHL_CYCLES_FULL.REMOTE
351 .Pq Event 21H , Umask 02H
352 Counts uclk cycles all entries in the Quickpath Home Logic remote tracker
353 are full.
354 .It Li QHL_CYCLES_FULL.LOCAL
355 .Pq Event 21H , Umask 04H
356 Counts uclk cycles all entries in the Quickpath Home Logic local tracker are
357 full.
358 .It Li QHL_CYCLES_NOT_EMPTY.IOH
359 .Pq Event 22H , Umask 01H
360 Counts uclk cycles all entries in the Quickpath Home Logic IOH is busy.
361 .It Li QHL_CYCLES_NOT_EMPTY.REMOTE
362 .Pq Event 22H , Umask 02H
363 Counts uclk cycles all entries in the Quickpath Home Logic remote tracker is
364 busy.
365 .It Li QHL_CYCLES_NOT_EMPTY.LOCAL
366 .Pq Event 22H , Umask 04H
367 Counts uclk cycles all entries in the Quickpath Home Logic local tracker is
368 busy.
369 .It Li QHL_OCCUPANCY.IOH
370 .Pq Event 23H , Umask 01H
371 QHL IOH tracker allocate to deallocate read occupancy.
372 .It Li QHL_OCCUPANCY.REMOTE
373 .Pq Event 23H , Umask 02H
374 QHL remote tracker allocate to deallocate read occupancy.
375 .It Li QHL_OCCUPANCY.LOCAL
376 .Pq Event 23H , Umask 04H
377 QHL local tracker allocate to deallocate read occupancy.
378 .It Li QHL_ADDRESS_CONFLICTS.2WAY
379 .Pq Event 24H , Umask 02H
380 Counts number of QHL Active Address Table (AAT) entries that saw a max of 2
381 conflicts. The AAT is a structure that tracks requests that are in conflict.
382 The requests themselves are in the home tracker entries. The count is
383 reported when an AAT entry deallocates.
384 .It Li QHL_ADDRESS_CONFLICTS.3WAY
385 .Pq Event 24H , Umask 04H
386 Counts number of QHL Active Address Table (AAT) entries that saw a max of 3
387 conflicts. The AAT is a structure that tracks requests that are in conflict.
388 The requests themselves are in the home tracker entries. The count is
389 reported when an AAT entry deallocates.
390 .It Li QHL_CONFLICT_CYCLES.IOH
391 .Pq Event 25H , Umask 01H
392 Counts cycles the Quickpath Home Logic IOH Tracker contains two or more
393 requests with an address conflict. A max of 3 requests can be in conflict.
394 .It Li QHL_CONFLICT_CYCLES.REMOTE
395 .Pq Event 25H , Umask 02H
396 Counts cycles the Quickpath Home Logic Remote Tracker contains two or more
397 requests with an address conflict. A max of 3 requests can be in conflict.
398 .It Li QHL_CONFLICT_CYCLES.LOCAL
399 .Pq Event 25H , Umask 04H
400 Counts cycles the Quickpath Home Logic Local Tracker contains two or more
401 requests with an address conflict. A max of 3 requests can be in conflict.
402 .It Li QHL_TO_QMC_BYPASS
403 .Pq Event 26H , Umask 01H
404 Counts number or requests to the Quickpath Memory Controller that bypass the
405 Quickpath Home Logic. All local accesses can be bypassed. For remote
406 requests, only read requests can be bypassed.
407 .It Li QMC_NORMAL_FULL.READ.CH0
408 .Pq Event 27H , Umask 01H
409 Uncore cycles all the entries in the DRAM channel 0 medium or low priority
410 queue are occupied with read requests.
411 .It Li QMC_NORMAL_FULL.READ.CH1
412 .Pq Event 27H , Umask 02H
413 Uncore cycles all the entries in the DRAM channel 1 medium or low priority
414 queue are occupied with read requests.
415 .It Li QMC_NORMAL_FULL.READ.CH2
416 .Pq Event 27H , Umask 04H
417 Uncore cycles all the entries in the DRAM channel 2 medium or low priority
418 queue are occupied with read requests.
419 .It Li QMC_NORMAL_FULL.WRITE.CH0
420 .Pq Event 27H , Umask 08H
421 Uncore cycles all the entries in the DRAM channel 0 medium or low priority
422 queue are occupied with write requests.
423 .It Li QMC_NORMAL_FULL.WRITE.CH1
424 .Pq Event 27H , Umask 10H
425 Counts cycles all the entries in the DRAM channel 1 medium or low priority
426 queue are occupied with write requests.
427 .It Li QMC_NORMAL_FULL.WRITE.CH2
428 .Pq Event 27H , Umask 20H
429 Uncore cycles all the entries in the DRAM channel 2 medium or low priority
430 queue are occupied with write requests.
431 .It Li QMC_ISOC_FULL.READ.CH0
432 .Pq Event 28H , Umask 01H
433 Counts cycles all the entries in the DRAM channel 0 high priority queue are
434 occupied with isochronous read requests.
435 .It Li QMC_ISOC_FULL.READ.CH1
436 .Pq Event 28H , Umask 02H
437 Counts cycles all the entries in the DRAM channel 1 high priority queue are
438 occupied with isochronous read requests.
439 .It Li QMC_ISOC_FULL.READ.CH2
440 .Pq Event 28H , Umask 04H
441 Counts cycles all the entries in the DRAM channel 2 high priority queue are
442 occupied with isochronous read requests.
443 .It Li QMC_ISOC_FULL.WRITE.CH0
444 .Pq Event 28H , Umask 08H
445 Counts cycles all the entries in the DRAM channel 0 high priority queue are
446 occupied with isochronous write requests.
447 .It Li QMC_ISOC_FULL.WRITE.CH1
448 .Pq Event 28H , Umask 10H
449 Counts cycles all the entries in the DRAM channel 1 high priority queue are
450 occupied with isochronous write requests.
451 .It Li QMC_ISOC_FULL.WRITE.CH2
452 .Pq Event 28H , Umask 20H
453 Counts cycles all the entries in the DRAM channel 2 high priority queue are
454 occupied with isochronous write requests.
455 .It Li QMC_BUSY.READ.CH0
456 .Pq Event 29H , Umask 01H
457 Counts cycles where Quickpath Memory Controller has at least 1 outstanding
458 read request to DRAM channel 0.
459 .It Li QMC_BUSY.READ.CH1
460 .Pq Event 29H , Umask 02H
461 Counts cycles where Quickpath Memory Controller has at least 1 outstanding
462 read request to DRAM channel 1.
463 .It Li QMC_BUSY.READ.CH2
464 .Pq Event 29H , Umask 04H
465 Counts cycles where Quickpath Memory Controller has at least 1 outstanding
466 read request to DRAM channel 2.
467 .It Li QMC_BUSY.WRITE.CH0
468 .Pq Event 29H , Umask 08H
469 Counts cycles where Quickpath Memory Controller has at least 1 outstanding
470 write request to DRAM channel 0.
471 .It Li QMC_BUSY.WRITE.CH1
472 .Pq Event 29H , Umask 10H
473 Counts cycles where Quickpath Memory Controller has at least 1 outstanding
474 write request to DRAM channel 1.
475 .It Li QMC_BUSY.WRITE.CH2
476 .Pq Event 29H , Umask 20H
477 Counts cycles where Quickpath Memory Controller has at least 1 outstanding
478 write request to DRAM channel 2.
479 .It Li QMC_OCCUPANCY.CH0
480 .Pq Event 2AH , Umask 01H
481 IMC channel 0 normal read request occupancy.
482 .It Li QMC_OCCUPANCY.CH1
483 .Pq Event 2AH , Umask 02H
484 IMC channel 1 normal read request occupancy.
485 .It Li QMC_OCCUPANCY.CH2
486 .Pq Event 2AH , Umask 04H
487 IMC channel 2 normal read request occupancy.
488 .It Li QMC_ISSOC_OCCUPANCY.CH0
489 .Pq Event 2BH , Umask 01H
490 IMC channel 0 issoc read request occupancy.
491 .It Li QMC_ISSOC_OCCUPANCY.CH1
492 .Pq Event 2BH , Umask 02H
493 IMC channel 1 issoc read request occupancy.
494 .It Li QMC_ISSOC_OCCUPANCY.CH2
495 .Pq Event 2BH , Umask 04H
496 IMC channel 2 issoc read request occupancy.
497 .It Li QMC_ISSOC_READS.ANY
498 .Pq Event 2BH , Umask 07H
499 IMC issoc read request occupancy.
500 .It Li QMC_NORMAL_READS.CH0
501 .Pq Event 2CH , Umask 01H
502 Counts the number of Quickpath Memory Controller channel 0 medium and low
503 priority read requests. The QMC channel 0 normal read occupancy divided by
504 this count provides the average QMC channel 0 read latency.
505 .It Li QMC_NORMAL_READS.CH1
506 .Pq Event 2CH , Umask 02H
507 Counts the number of Quickpath Memory Controller channel 1 medium and low
508 priority read requests. The QMC channel 1 normal read occupancy divided by
509 this count provides the average QMC channel 1 read latency.
510 .It Li QMC_NORMAL_READS.CH2
511 .Pq Event 2CH , Umask 04H
512 Counts the number of Quickpath Memory Controller channel 2 medium and low
513 priority read requests. The QMC channel 2 normal read occupancy divided by
514 this count provides the average QMC channel 2 read latency.
515 .It Li QMC_NORMAL_READS.ANY
516 .Pq Event 2CH , Umask 07H
517 Counts the number of Quickpath Memory Controller medium and low priority
518 read requests. The QMC normal read occupancy divided by this count provides
519 the average QMC read latency.
520 .It Li QMC_HIGH_PRIORITY_READS.CH0
521 .Pq Event 2DH , Umask 01H
522 Counts the number of Quickpath Memory Controller channel 0 high priority
523 isochronous read requests.
524 .It Li QMC_HIGH_PRIORITY_READS.CH1
525 .Pq Event 2DH , Umask 02H
526 Counts the number of Quickpath Memory Controller channel 1 high priority
527 isochronous read requests.
528 .It Li QMC_HIGH_PRIORITY_READS.CH2
529 .Pq Event 2DH , Umask 04H
530 Counts the number of Quickpath Memory Controller channel 2 high priority
531 isochronous read requests.
532 .It Li QMC_HIGH_PRIORITY_READS.ANY
533 .Pq Event 2DH , Umask 07H
534 Counts the number of Quickpath Memory Controller high priority isochronous
535 read requests.
536 .It Li QMC_CRITICAL_PRIORITY_READS.CH0
537 .Pq Event 2EH , Umask 01H
538 Counts the number of Quickpath Memory Controller channel 0 critical priority
539 isochronous read requests.
540 .It Li QMC_CRITICAL_PRIORITY_READS.CH1
541 .Pq Event 2EH , Umask 02H
542 Counts the number of Quickpath Memory Controller channel 1 critical priority
543 isochronous read requests.
544 .It Li QMC_CRITICAL_PRIORITY_READS.CH2
545 .Pq Event 2EH , Umask 04H
546 Counts the number of Quickpath Memory Controller channel 2 critical priority
547 isochronous read requests.
548 .It Li QMC_CRITICAL_PRIORITY_READS.ANY
549 .Pq Event 2EH , Umask 07H
550 Counts the number of Quickpath Memory Controller critical priority
551 isochronous read requests.
552 .It Li QMC_WRITES.FULL.CH0
553 .Pq Event 2FH , Umask 01H
554 Counts number of full cache line writes to DRAM channel 0.
555 .It Li QMC_WRITES.FULL.CH1
556 .Pq Event 2FH , Umask 02H
557 Counts number of full cache line writes to DRAM channel 1.
558 .It Li QMC_WRITES.FULL.CH2
559 .Pq Event 2FH , Umask 04H
560 Counts number of full cache line writes to DRAM channel 2.
561 .It Li QMC_WRITES.FULL.ANY
562 .Pq Event 2FH , Umask 07H
563 Counts number of full cache line writes to DRAM.
564 .It Li QMC_WRITES.PARTIAL.CH0
565 .Pq Event 2FH , Umask 08H
566 Counts number of partial cache line writes to DRAM channel 0.
567 .It Li QMC_WRITES.PARTIAL.CH1
568 .Pq Event 2FH , Umask 10H
569 Counts number of partial cache line writes to DRAM channel 1.
570 .It Li QMC_WRITES.PARTIAL.CH2
571 .Pq Event 2FH , Umask 20H
572 Counts number of partial cache line writes to DRAM channel 2.
573 .It Li QMC_WRITES.PARTIAL.ANY
574 .Pq Event 2FH , Umask 38H
575 Counts number of partial cache line writes to DRAM.
576 .It Li QMC_CANCEL.CH0
577 .Pq Event 30H , Umask 01H
578 Counts number of DRAM channel 0 cancel requests.
579 .It Li QMC_CANCEL.CH1
580 .Pq Event 30H , Umask 02H
581 Counts number of DRAM channel 1 cancel requests.
582 .It Li QMC_CANCEL.CH2
583 .Pq Event 30H , Umask 04H
584 Counts number of DRAM channel 2 cancel requests.
585 .It Li QMC_CANCEL.ANY
586 .Pq Event 30H , Umask 07H
587 Counts number of DRAM cancel requests.
588 .It Li QMC_PRIORITY_UPDATES.CH0
589 .Pq Event 31H , Umask 01H
590 Counts number of DRAM channel 0 priority updates. A priority update occurs
591 when an ISOC high or critical request is received by the QHL and there is a
592 matching request with normal priority that has already been issued to the
593 QMC. In this instance, the QHL will send a priority update to QMC to
594 expedite the request.
595 .It Li QMC_PRIORITY_UPDATES.CH1
596 .Pq Event 31H , Umask 02H
597 Counts number of DRAM channel 1 priority updates. A priority update occurs
598 when an ISOC high or critical request is received by the QHL and there is a
599 matching request with normal priority that has already been issued to the
600 QMC. In this instance, the QHL will send a priority update to QMC to
601 expedite the request.
602 .It Li QMC_PRIORITY_UPDATES.CH2
603 .Pq Event 31H , Umask 04H
604 Counts number of DRAM channel 2 priority updates. A priority update occurs
605 when an ISOC high or critical request is received by the QHL and there is a
606 matching request with normal priority that has already been issued to the
607 QMC. In this instance, the QHL will send a priority update to QMC to
608 expedite the request.
609 .It Li QMC_PRIORITY_UPDATES.ANY
610 .Pq Event 31H , Umask 07H
611 Counts number of DRAM priority updates. A priority update occurs when an
612 ISOC high or critical request is received by the QHL and there is a matching
613 request with normal priority that has already been issued to the QMC. In
614 this instance, the QHL will send a priority update to QMC to expedite the
615 request.
616 .It Li QHL_FRC_ACK_CNFLTS.LOCAL
617 .Pq Event 33H , Umask 04H
618 Counts number of Force Acknowledge Conflict messages sent by the Quickpath
619 Home Logic to the local home.
620 .It Li QPI_TX_STALLED_SINGLE_FLIT.HOME.LINK_0
621 .Pq Event 40H , Umask 01H
622 Counts cycles the Quickpath outbound link 0 HOME virtual channel is stalled
623 due to lack of a VNA and VN0 credit. Note that this event does not filter
624 out when a flit would not have been selected for arbitration because another
625 virtual channel is getting arbitrated.
626 .It Li QPI_TX_STALLED_SINGLE_FLIT.SNOOP.LINK_0
627 .Pq Event 40H , Umask 02H
628 Counts cycles the Quickpath outbound link 0 SNOOP virtual channel is stalled
629 due to lack of a VNA and VN0 credit. Note that this event does not filter
630 out when a flit would not have been selected for arbitration because another
631 virtual channel is getting arbitrated.
632 .It Li QPI_TX_STALLED_SINGLE_FLIT.NDR.LINK_0
633 .Pq Event 40H , Umask 04H
634 Counts cycles the Quickpath outbound link 0 non-data response virtual
635 channel is stalled due to lack of a VNA and VN0 credit. Note that this event
636 does not filter out when a flit would not have been selected for arbitration
637 because another virtual channel is getting arbitrated.
638 .It Li QPI_TX_STALLED_SINGLE_FLIT.HOME.LINK_1
639 .Pq Event 40H , Umask 08H
640 Counts cycles the Quickpath outbound link 1 HOME virtual channel is stalled
641 due to lack of a VNA and VN0 credit. Note that this event does not filter
642 out when a flit would not have been selected for arbitration because another
643 virtual channel is getting arbitrated.
644 .It Li QPI_TX_STALLED_SINGLE_FLIT.SNOOP.LINK_1
645 .Pq Event 40H , Umask 10H
646 Counts cycles the Quickpath outbound link 1 SNOOP virtual channel is stalled
647 due to lack of a VNA and VN0 credit. Note that this event does not filter
648 out when a flit would not have been selected for arbitration because another
649 virtual channel is getting arbitrated.
650 .It Li QPI_TX_STALLED_SINGLE_FLIT.NDR.LINK_1
651 .Pq Event 40H , Umask 20H
652 Counts cycles the Quickpath outbound link 1 non-data response virtual
653 channel is stalled due to lack of a VNA and VN0 credit. Note that this event
654 does not filter out when a flit would not have been selected for arbitration
655 because another virtual channel is getting arbitrated.
656 .It Li QPI_TX_STALLED_SINGLE_FLIT.LINK_0
657 .Pq Event 40H , Umask 07H
658 Counts cycles the Quickpath outbound link 0 virtual channels are stalled due
659 to lack of a VNA and VN0 credit. Note that this event does not filter out
660 when a flit would not have been selected for arbitration because another
661 virtual channel is getting arbitrated.
662 .It Li QPI_TX_STALLED_SINGLE_FLIT.LINK_1
663 .Pq Event 40H , Umask 38H
664 Counts cycles the Quickpath outbound link 1 virtual channels are stalled due
665 to lack of a VNA and VN0 credit. Note that this event does not filter out
666 when a flit would not have been selected for arbitration because another
667 virtual channel is getting arbitrated.
668 .It Li QPI_TX_STALLED_MULTI_FLIT.DRS.LINK_0
669 .Pq Event 41H , Umask 01H
670 Counts cycles the Quickpath outbound link 0 Data ResponSe virtual channel is
671 stalled due to lack of VNA and VN0 credits. Note that this event does not
672 filter out when a flit would not have been selected for arbitration because
673 another virtual channel is getting arbitrated.
674 .It Li QPI_TX_STALLED_MULTI_FLIT.NCB.LINK_0
675 .Pq Event 41H , Umask 02H
676 Counts cycles the Quickpath outbound link 0 Non-Coherent Bypass virtual
677 channel is stalled due to lack of VNA and VN0 credits. Note that this event
678 does not filter out when a flit would not have been selected for arbitration
679 because another virtual channel is getting arbitrated.
680 .It Li QPI_TX_STALLED_MULTI_FLIT.NCS.LINK_0
681 .Pq Event 41H , Umask 04H
682 Counts cycles the Quickpath outbound link 0 Non-Coherent Standard virtual
683 channel is stalled due to lack of VNA and VN0 credits. Note that this event
684 does not filter out when a flit would not have been selected for arbitration
685 because another virtual channel is getting arbitrated.
686 .It Li QPI_TX_STALLED_MULTI_FLIT.DRS.LINK_1
687 .Pq Event 41H , Umask 08H
688 Counts cycles the Quickpath outbound link 1 Data ResponSe virtual channel is
689 stalled due to lack of VNA and VN0 credits. Note that this event does not
690 filter out when a flit would not have been selected for arbitration because
691 another virtual channel is getting arbitrated.
692 .It Li QPI_TX_STALLED_MULTI_FLIT.NCB.LINK_1
693 .Pq Event 41H , Umask 10H
694 Counts cycles the Quickpath outbound link 1 Non-Coherent Bypass virtual
695 channel is stalled due to lack of VNA and VN0 credits. Note that this event
696 does not filter out when a flit would not have been selected for arbitration
697 because another virtual channel is getting arbitrated.
698 .It Li QPI_TX_STALLED_MULTI_FLIT.NCS.LINK_1
699 .Pq Event 41H , Umask 20H
700 Counts cycles the Quickpath outbound link 1 Non-Coherent Standard virtual
701 channel is stalled due to lack of VNA and VN0 credits. Note that this event
702 does not filter out when a flit would not have been selected for arbitration
703 because another virtual channel is getting arbitrated.
704 .It Li QPI_TX_STALLED_MULTI_FLIT.LINK_0
705 .Pq Event 41H , Umask 07H
706 Counts cycles the Quickpath outbound link 0 virtual channels are stalled due
707 to lack of VNA and VN0 credits. Note that this event does not filter out
708 when a flit would not have been selected for arbitration because another
709 virtual channel is getting arbitrated.
710 .It Li QPI_TX_STALLED_MULTI_FLIT.LINK_1
711 .Pq Event 41H , Umask 38H
712 Counts cycles the Quickpath outbound link 1 virtual channels are stalled due
713 to lack of VNA and VN0 credits. Note that this event does not filter out
714 when a flit would not have been selected for arbitration because another
715 virtual channel is getting arbitrated.
716 .It Li QPI_TX_HEADER.BUSY.LINK_0
717 .Pq Event 42H , Umask 02H
718 Number of cycles that the header buffer in the Quickpath Interface outbound
719 link 0 is busy.
720 .It Li QPI_TX_HEADER.BUSY.LINK_1
721 .Pq Event 42H , Umask 08H
722 Number of cycles that the header buffer in the Quickpath Interface outbound
723 link 1 is busy.
724 .It Li QPI_RX_NO_PPT_CREDIT.STALLS.LINK_0
725 .Pq Event 43H , Umask 01H
726 Number of cycles that snoop packets incoming to the Quickpath Interface link
727 0 are stalled and not sent to the GQ because the GQ Peer Probe Tracker (PPT)
728 does not have any available entries.
729 .It Li QPI_RX_NO_PPT_CREDIT.STALLS.LINK_1
730 .Pq Event 43H , Umask 02H
731 Number of cycles that snoop packets incoming to the Quickpath Interface link
732 1 are stalled and not sent to the GQ because the GQ Peer Probe Tracker (PPT)
733 does not have any available entries.
734 .It Li DRAM_OPEN.CH0
735 .Pq Event 60H , Umask 01H
736 Counts number of DRAM Channel 0 open commands issued either for read or
737 write. To read or write data, the referenced DRAM page must first be opened.
738 .It Li DRAM_OPEN.CH1
739 .Pq Event 60H , Umask 02H
740 Counts number of DRAM Channel 1 open commands issued either for read or
741 write. To read or write data, the referenced DRAM page must first be opened.
742 .It Li DRAM_OPEN.CH2
743 .Pq Event 60H , Umask 04H
744 Counts number of DRAM Channel 2 open commands issued either for read or
745 write. To read or write data, the referenced DRAM page must first be opened.
746 .It Li DRAM_PAGE_CLOSE.CH0
747 .Pq Event 61H , Umask 01H
748 DRAM channel 0 command issued to CLOSE a page due to page idle timer
749 expiration. Closing a page is done by issuing a precharge.
750 .It Li DRAM_PAGE_CLOSE.CH1
751 .Pq Event 61H , Umask 02H
752 DRAM channel 1 command issued to CLOSE a page due to page idle timer
753 expiration. Closing a page is done by issuing a precharge.
754 .It Li DRAM_PAGE_CLOSE.CH2
755 .Pq Event 61H , Umask 04H
756 DRAM channel 2 command issued to CLOSE a page due to page idle timer
757 expiration. Closing a page is done by issuing a precharge.
758 .It Li DRAM_PAGE_MISS.CH0
759 .Pq Event 62H , Umask 01H
760 Counts the number of precharges (PRE) that were issued to DRAM channel 0
761 because there was a page miss. A page miss refers to a situation in which a
762 page is currently open and another page from the same bank needs to be
763 opened. The new page experiences a page miss. Closing of the old page is
764 done by issuing a precharge.
765 .It Li DRAM_PAGE_MISS.CH1
766 .Pq Event 62H , Umask 02H
767 Counts the number of precharges (PRE) that were issued to DRAM channel 1
768 because there was a page miss. A page miss refers to a situation in which a
769 page is currently open and another page from the same bank needs to be
770 opened. The new page experiences a page miss. Closing of the old page is
771 done by issuing a precharge.
772 .It Li DRAM_PAGE_MISS.CH2
773 .Pq Event 62H , Umask 04H
774 Counts the number of precharges (PRE) that were issued to DRAM channel 2
775 because there was a page miss. A page miss refers to a situation in which a
776 page is currently open and another page from the same bank needs to be
777 opened. The new page experiences a page miss. Closing of the old page is
778 done by issuing a precharge.
779 .It Li DRAM_READ_CAS.CH0
780 .Pq Event 63H , Umask 01H
781 Counts the number of times a read CAS command was issued on DRAM channel 0.
782 .It Li DRAM_READ_CAS.AUTOPRE_CH0
783 .Pq Event 63H , Umask 02H
784 Counts the number of times a read CAS command was issued on DRAM channel 0
785 where the command issued used the auto-precharge (auto page close) mode.
786 .It Li DRAM_READ_CAS.CH1
787 .Pq Event 63H , Umask 04H
788 Counts the number of times a read CAS command was issued on DRAM channel 1.
789 .It Li DRAM_READ_CAS.AUTOPRE_CH1
790 .Pq Event 63H , Umask 08H
791 Counts the number of times a read CAS command was issued on DRAM channel 1
792 where the command issued used the auto-precharge (auto page close) mode.
793 .It Li DRAM_READ_CAS.CH2
794 .Pq Event 63H , Umask 10H
795 Counts the number of times a read CAS command was issued on DRAM channel 2.
796 .It Li DRAM_READ_CAS.AUTOPRE_CH2
797 .Pq Event 63H , Umask 20H
798 Counts the number of times a read CAS command was issued on DRAM channel 2
799 where the command issued used the auto-precharge (auto page close) mode.
800 .It Li DRAM_WRITE_CAS.CH0
801 .Pq Event 64H , Umask 01H
802 Counts the number of times a write CAS command was issued on DRAM channel 0.
803 .It Li DRAM_WRITE_CAS.AUTOPRE_CH0
804 .Pq Event 64H , Umask 02H
805 Counts the number of times a write CAS command was issued on DRAM channel 0
806 where the command issued used the auto-precharge (auto page close) mode.
807 .It Li DRAM_WRITE_CAS.CH1
808 .Pq Event 64H , Umask 04H
809 Counts the number of times a write CAS command was issued on DRAM channel 1.
810 .It Li DRAM_WRITE_CAS.AUTOPRE_CH1
811 .Pq Event 64H , Umask 08H
812 Counts the number of times a write CAS command was issued on DRAM channel 1
813 where the command issued used the auto-precharge (auto page close) mode.
814 .It Li DRAM_WRITE_CAS.CH2
815 .Pq Event 64H , Umask 10H
816 Counts the number of times a write CAS command was issued on DRAM channel 2.
817 .It Li DRAM_WRITE_CAS.AUTOPRE_CH2
818 .Pq Event 64H , Umask 20H
819 Counts the number of times a write CAS command was issued on DRAM channel 2
820 where the command issued used the auto-precharge (auto page close) mode.
821 .It Li DRAM_REFRESH.CH0
822 .Pq Event 65H , Umask 01H
823 Counts number of DRAM channel 0 refresh commands. DRAM loses data content
824 over time. In order to keep correct data content, the data values have to be
825 refreshed periodically.
826 .It Li DRAM_REFRESH.CH1
827 .Pq Event 65H , Umask 02H
828 Counts number of DRAM channel 1 refresh commands. DRAM loses data content
829 over time. In order to keep correct data content, the data values have to be
830 refreshed periodically.
831 .It Li DRAM_REFRESH.CH2
832 .Pq Event 65H , Umask 04H
833 Counts number of DRAM channel 2 refresh commands. DRAM loses data content
834 over time. In order to keep correct data content, the data values have to be
835 refreshed periodically.
836 .It Li DRAM_PRE_ALL.CH0
837 .Pq Event 66H , Umask 01H
838 Counts number of DRAM Channel 0 precharge-all (PREALL) commands that close
839 all open pages in a rank. PREALL is issued when the DRAM needs to be
840 refreshed or needs to go into a power down mode.
841 .It Li DRAM_PRE_ALL.CH1
842 .Pq Event 66H , Umask 02H
843 Counts number of DRAM Channel 1 precharge-all (PREALL) commands that close
844 all open pages in a rank. PREALL is issued when the DRAM needs to be
845 refreshed or needs to go into a power down mode.
846 .It Li DRAM_PRE_ALL.CH2
847 .Pq Event 66H , Umask 04H
848 Counts number of DRAM Channel 2 precharge-all (PREALL) commands that close
849 all open pages in a rank. PREALL is issued when the DRAM needs to be
850 refreshed or needs to go into a power down mode.
851 .El
852 .Sh SEE ALSO
853 .Xr pmc 3 ,
854 .Xr pmc.atom 3 ,
855 .Xr pmc.core 3 ,
856 .Xr pmc.iaf 3 ,
857 .Xr pmc.ucf 3 ,
858 .Xr pmc.k7 3 ,
859 .Xr pmc.k8 3 ,
860 .Xr pmc.p4 3 ,
861 .Xr pmc.p5 3 ,
862 .Xr pmc.p6 3 ,
863 .Xr pmc.corei7 3 ,
864 .Xr pmc.westmere 3 ,
865 .Xr pmc.westmereuc 3 ,
866 .Xr pmc.soft 3 ,
867 .Xr pmc.tsc 3 ,
868 .Xr pmc_cpuinfo 3 ,
869 .Xr pmclog 3 ,
870 .Xr hwpmc 4
871 .Sh HISTORY
872 The
873 .Nm pmc
874 library first appeared in
875 .Fx 6.0 .
876 .Sh AUTHORS
877 The
878 .Lb libpmc
879 library was written by
880 .An "Joseph Koshy"
881 .Aq jkoshy@FreeBSD.org .