]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - lib/libpmc/pmc.westmere.3
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / lib / libpmc / pmc.westmere.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 February 25, 2012
27 .Dt PMC.WESTMERE 3
28 .Os
29 .Sh NAME
30 .Nm pmc.westmere
31 .Nd measurement events for
32 .Tn Intel
33 .Tn Westmere
34 family CPUs
35 .Sh LIBRARY
36 .Lb libpmc
37 .Sh SYNOPSIS
38 .In pmc.h
39 .Sh DESCRIPTION
40 .Tn Intel
41 .Tn "Westmere"
42 CPUs contain PMCs conforming to version 2 of the
43 .Tn Intel
44 performance measurement architecture.
45 These CPUs may contain up to three classes of PMCs:
46 .Bl -tag -width "Li PMC_CLASS_IAP"
47 .It Li PMC_CLASS_IAF
48 Fixed-function counters that count only one hardware event per counter.
49 .It Li PMC_CLASS_IAP
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 Westmere 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 WESTMERE FIXED FUNCTION PMCS
67 These PMCs and their supported events are documented in
68 .Xr pmc.iaf 3 .
69 .Ss WESTMERE 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 Yes
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 Yes
80 .It PMC_CAP_TAGGING Ta \&No
81 .It PMC_CAP_THRESHOLD Ta Yes
82 .It PMC_CAP_USER Ta Yes
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 rsp= Ns Ar value
90 Configure the Off-core Response bits.
91 .Bl -tag -width indent
92 .It Li DMND_DATA_RD
93 Counts the number of demand and DCU prefetch data reads of full
94 and partial cachelines as well as demand data page table entry
95 cacheline reads.
96 Does not count L2 data read prefetches or
97 instruction fetches.
98 .It Li DMND_RFO
99 Counts the number of demand and DCU prefetch reads for ownership
100 (RFO) requests generated by a write to data cacheline.
101 Does not count L2 RFO.
102 .It Li DMND_IFETCH
103 Counts the number of demand and DCU prefetch instruction cacheline
104 reads.
105 Does not count L2 code read prefetches.
106 WB
107 Counts the number of writeback (modified to exclusive) transactions.
108 .It Li PF_DATA_RD
109 Counts the number of data cacheline reads generated by L2 prefetchers.
110 .It Li PF_RFO
111 Counts the number of RFO requests generated by L2 prefetchers.
112 .It Li PF_IFETCH
113 Counts the number of code reads generated by L2 prefetchers.
114 .It Li OTHER
115 Counts one of the following transaction types, including L3 invalidate,
116 I/O, full or partial writes, WC or non-temporal stores, CLFLUSH, Fences,
117 lock, unlock, split lock.
118 .It Li UNCORE_HIT
119 L3 Hit: local or remote home requests that hit L3 cache in the uncore
120 with no coherency actions required (snooping).
121 .It Li OTHER_CORE_HIT_SNP
122 L3 Hit: local or remote home requests that hit L3 cache in the uncore
123 and was serviced by another core with a cross core snoop where no modified
124 copies were found (clean).
125 .It Li OTHER_CORE_HITM
126 L3 Hit: local or remote home requests that hit L3 cache in the uncore
127 and was serviced by another core with a cross core snoop where modified
128 copies were found (HITM).
129 .It Li REMOTE_CACHE_FWD
130 L3 Miss: local homed requests that missed the L3 cache and was serviced
131 by forwarded data following a cross package snoop where no modified
132 copies found. (Remote home requests are not counted)
133 .It Li REMOTE_DRAM
134 L3 Miss: remote home requests that missed the L3 cache and were serviced
135 by remote DRAM.
136 .It Li LOCAL_DRAM
137 L3 Miss: local home requests that missed the L3 cache and were serviced
138 by local DRAM.
139 .It Li NON_DRAM
140 Non-DRAM requests that were serviced by IOH.
141 .El
142 .It Li cmask= Ns Ar value
143 Configure the PMC to increment only if the number of configured
144 events measured in a cycle is greater than or equal to
145 .Ar value .
146 .It Li edge
147 Configure the PMC to count the number of de-asserted to asserted
148 transitions of the conditions expressed by the other qualifiers.
149 If specified, the counter will increment only once whenever a
150 condition becomes true, irrespective of the number of clocks during
151 which the condition remains true.
152 .It Li inv
153 Invert the sense of comparison when the
154 .Dq Li cmask
155 qualifier is present, making the counter increment when the number of
156 events per cycle is less than the value specified by the
157 .Dq Li cmask
158 qualifier.
159 .It Li os
160 Configure the PMC to count events happening at processor privilege
161 level 0.
162 .It Li usr
163 Configure the PMC to count events occurring at privilege levels 1, 2
164 or 3.
165 .El
166 .Pp
167 If neither of the
168 .Dq Li os
169 or
170 .Dq Li usr
171 qualifiers are specified, the default is to enable both.
172 .Ss Event Specifiers (Programmable PMCs)
173 Westmere programmable PMCs support the following events:
174 .Bl -tag -width indent
175 .It Li LOAD_BLOCK.OVERLAP_STORE
176 .Pq Event 03H , Umask 02H
177 Loads that partially overlap an earlier store
178 .It Li SB_DRAIN.ANY
179 .Pq Event 04H , Umask 07H
180 All Store buffer stall cycles
181 .It Li MISALIGN_MEMORY.STORE
182 .Pq Event 05H , Umask 02H
183 All store referenced with misaligned address
184 .It Li STORE_BLOCKS.AT_RET
185 .Pq Event 06H , Umask 04H
186 Counts number of loads delayed with at-Retirement block code.
187 The following
188 loads need to be executed at retirement and wait for all senior stores on
189 the same thread to be drained: load splitting across 4K boundary (page
190 split), load accessing uncacheable (UC or USWC) memory, load lock, and load
191 with page table in UC or USWC memory region.
192 .It Li STORE_BLOCKS.L1D_BLOCK
193 .Pq Event 06H , Umask 08H
194 Cacheable loads delayed with L1D block code
195 .It Li PARTIAL_ADDRESS_ALIAS
196 .Pq Event 07H , Umask 01H
197 Counts false dependency due to partial address aliasing
198 .It Li DTLB_LOAD_MISSES.ANY
199 .Pq Event 08H , Umask 01H
200 Counts all load misses that cause a page walk
201 .It Li DTLB_LOAD_MISSES.WALK_COMPLETED
202 .Pq Event 08H , Umask 02H
203 Counts number of completed page walks due to load miss in the STLB.
204 .It Li DTLB_LOAD_MISSES.WALK_CYCLES
205 .Pq Event 08H , Umask 04H
206 Cycles PMH is busy with a page walk due to a load miss in the STLB.
207 .It Li DTLB_LOAD_MISSES.STLB_HIT
208 .Pq Event 08H , Umask 10H
209 Number of cache load STLB hits
210 .It Li DTLB_LOAD_MISSES.PDE_MISS
211 .Pq Event 08H , Umask 20H
212 Number of DTLB cache load misses where the low part of the linear to
213 physical address translation was missed.
214 .It Li MEM_INST_RETIRED.LOADS
215 .Pq Event 0BH , Umask 01H
216 Counts the number of instructions with an architecturally-visible store
217 retired on the architected path.
218 In conjunction with ld_lat facility
219 .It Li MEM_INST_RETIRED.STORES
220 .Pq Event 0BH , Umask 02H
221 Counts the number of instructions with an architecturally-visible store
222 retired on the architected path.
223 In conjunction with ld_lat facility
224 .It Li MEM_INST_RETIRED.LATENCY_ABOVE_THRESHOLD
225 .Pq Event 0BH , Umask 10H
226 Counts the number of instructions exceeding the latency specified with
227 ld_lat facility.
228 In conjunction with ld_lat facility
229 .It Li MEM_STORE_RETIRED.DTLB_MISS
230 .Pq Event 0CH , Umask 01H
231 The event counts the number of retired stores that missed the DTLB.
232 The DTLB miss is not counted if the store operation causes a fault.
233 Does not counter prefetches.
234 Counts both primary and secondary misses to the TLB
235 .It Li UOPS_ISSUED.ANY
236 .Pq Event 0EH , Umask 01H
237 Counts the number of Uops issued by the Register Allocation Table to the
238 Reservation Station, i.e. the UOPs issued from the front end to the back
239 end.
240 .It Li UOPS_ISSUED.STALLED_CYCLES
241 .Pq Event 0EH , Umask 01H
242 Counts the number of cycles no Uops issued by the Register Allocation Table
243 to the Reservation Station, i.e. the UOPs issued from the front end to the
244 back end.
245 set invert=1, cmask = 1
246 .It Li UOPS_ISSUED.FUSED
247 .Pq Event 0EH , Umask 02H
248 Counts the number of fused Uops that were issued from the Register
249 Allocation Table to the Reservation Station.
250 .It Li MEM_UNCORE_RETIRED.LOCAL_HITM
251 .Pq Event 0FH , Umask 02H
252 Load instructions retired that HIT modified data in sibling core (Precise
253 Event)
254 .It Li MEM_UNCORE_RETIRED.LOCAL_DRAM_AND_REMOTE_CACHE_HIT
255 .Pq Event 0FH , Umask 08H
256 Load instructions retired local dram and remote cache HIT data sources
257 (Precise Event)
258 .It Li MEM_UNCORE_RETIRED.LOCAL_DRAM
259 .Pq Event 0FH , Umask 10H
260 Load instructions retired with a data source of local DRAM or locally homed
261 remote cache HITM (Precise Event)
262 .It Li MEM_UNCORE_RETIRED.REMOTE_DRAM
263 .Pq Event 0FH , Umask 20H
264 Load instructions retired remote DRAM and remote home-remote cache HITM
265 (Precise Event)
266 .It Li MEM_UNCORE_RETIRED.UNCACHEABLE
267 .Pq Event 0FH , Umask 80H
268 Load instructions retired I/O (Precise Event)
269 .It Li FP_COMP_OPS_EXE.X87
270 .Pq Event 10H , Umask 01H
271 Counts the number of FP Computational Uops Executed.
272 The number of FADD,
273 FSUB, FCOM, FMULs, integer MULsand IMULs, FDIVs, FPREMs, FSQRTS, integer
274 DIVs, and IDIVs.
275 This event does not distinguish an FADD used in the middle
276 of a transcendental flow from a separate FADD instruction.
277 .It Li FP_COMP_OPS_EXE.MMX
278 .Pq Event 10H , Umask 02H
279 Counts number of MMX Uops executed.
280 .It Li FP_COMP_OPS_EXE.SSE_FP
281 .Pq Event 10H , Umask 04H
282 Counts number of SSE and SSE2 FP uops executed.
283 .It Li FP_COMP_OPS_EXE.SSE2_INTEGER
284 .Pq Event 10H , Umask 08H
285 Counts number of SSE2 integer uops executed.
286 .It Li FP_COMP_OPS_EXE.SSE_FP_PACKED
287 .Pq Event 10H , Umask 10H
288 Counts number of SSE FP packed uops executed.
289 .It Li FP_COMP_OPS_EXE.SSE_FP_SCALAR
290 .Pq Event 10H , Umask 20H
291 Counts number of SSE FP scalar uops executed.
292 .It Li FP_COMP_OPS_EXE.SSE_SINGLE_PRECISION
293 .Pq Event 10H , Umask 40H
294 Counts number of SSE* FP single precision uops executed.
295 .It Li FP_COMP_OPS_EXE.SSE_DOUBLE_PRECISION
296 .Pq Event 10H , Umask 80H
297 Counts number of SSE* FP double precision uops executed.
298 .It Li SIMD_INT_128.PACKED_MPY
299 .Pq Event 12H , Umask 01H
300 Counts number of 128 bit SIMD integer multiply operations.
301 .It Li SIMD_INT_128.PACKED_SHIFT
302 .Pq Event 12H , Umask 02H
303 Counts number of 128 bit SIMD integer shift operations.
304 .It Li SIMD_INT_128.PACK
305 .Pq Event 12H , Umask 04H
306 Counts number of 128 bit SIMD integer pack operations.
307 .It Li SIMD_INT_128.UNPACK
308 .Pq Event 12H , Umask 08H
309 Counts number of 128 bit SIMD integer unpack operations.
310 .It Li SIMD_INT_128.PACKED_LOGICAL
311 .Pq Event 12H , Umask 10H
312 Counts number of 128 bit SIMD integer logical operations.
313 .It Li SIMD_INT_128.PACKED_ARITH
314 .Pq Event 12H , Umask 20H
315 Counts number of 128 bit SIMD integer arithmetic operations.
316 .It Li SIMD_INT_128.SHUFFLE_MOVE
317 .Pq Event 12H , Umask 40H
318 Counts number of 128 bit SIMD integer shuffle and move operations.
319 .It Li LOAD_DISPATCH.RS
320 .Pq Event 13H , Umask 01H
321 Counts number of loads dispatched from the Reservation Station that bypass
322 the Memory Order Buffer.
323 .It Li LOAD_DISPATCH.RS_DELAYED
324 .Pq Event 13H , Umask 02H
325 Counts the number of delayed RS dispatches at the stage latch.
326 If an RS dispatch can not bypass to LB, it has another chance to dispatch
327 from the one-cycle delayed staging latch before it is written into the LB.
328 .It Li LOAD_DISPATCH.MOB
329 .Pq Event 13H , Umask 04H
330 Counts the number of loads dispatched from the Reservation Station to the
331 Memory Order Buffer.
332 .It Li LOAD_DISPATCH.ANY
333 .Pq Event 13H , Umask 07H
334 Counts all loads dispatched from the Reservation Station.
335 .It Li ARITH.CYCLES_DIV_BUSY
336 .Pq Event 14H , Umask 01H
337 Counts the number of cycles the divider is busy executing divide or square
338 root operations.
339 The divide can be integer, X87 or Streaming SIMD Extensions (SSE).
340 The square root operation can be either X87 or SSE.
341 Set 'edge =1, invert=1, cmask=1' to count the number of divides.
342 Count may be incorrect When SMT is on
343 .It Li ARITH.MUL
344 .Pq Event 14H , Umask 02H
345 Counts the number of multiply operations executed.
346 This includes integer as
347 well as floating point multiply operations but excludes DPPS mul and MPSAD.
348 Count may be incorrect When SMT is on
349 .It Li INST_QUEUE_WRITES
350 .Pq Event 17H , Umask 01H
351 Counts the number of instructions written into the instruction queue every
352 cycle.
353 .It Li INST_DECODED.DEC0
354 .Pq Event 18H , Umask 01H
355 Counts number of instructions that require decoder 0 to be decoded.
356 Usually, this means that the instruction maps to more than 1 uop
357 .It Li TWO_UOP_INSTS_DECODED
358 .Pq Event 19H , Umask 01H
359 An instruction that generates two uops was decoded
360 .It Li INST_QUEUE_WRITE_CYCLES
361 .Pq Event 1EH , Umask 01H
362 This event counts the number of cycles during which instructions are written
363 to the instruction queue.
364 Dividing this counter by the number of
365 instructions written to the instruction queue (INST_QUEUE_WRITES) yields the
366 average number of instructions decoded each cycle.
367 If this number is less
368 than four and the pipe stalls, this indicates that the decoder is failing to
369 decode enough instructions per cycle to sustain the 4-wide pipeline.
370 If SSE* instructions that are 6 bytes or longer arrive one after another,
371 then front end throughput may limit execution speed.
372 In such case,
373 .It Li LSD_OVERFLOW
374 .Pq Event 20H , Umask 01H
375 Number of loops that can not stream from the instruction queue.
376 .It Li L2_RQSTS.LD_HIT
377 .Pq Event 24H , Umask 01H
378 Counts number of loads that hit the L2 cache.
379 L2 loads include both L1D demand misses as well as L1D prefetches.
380 L2 loads can be rejected for various reasons.
381 Only non rejected loads are counted.
382 .It Li L2_RQSTS.LD_MISS
383 .Pq Event 24H , Umask 02H
384 Counts the number of loads that miss the L2 cache.
385 L2 loads include both L1D demand misses as well as L1D prefetches.
386 .It Li L2_RQSTS.LOADS
387 .Pq Event 24H , Umask 03H
388 Counts all L2 load requests.
389 L2 loads include both L1D demand misses as well as L1D prefetches.
390 .It Li L2_RQSTS.RFO_HIT
391 .Pq Event 24H , Umask 04H
392 Counts the number of store RFO requests that hit the L2 cache.
393 L2 RFO requests include both L1D demand RFO misses as well as L1D RFO
394 prefetches.
395 Count includes WC memory requests, where the data is not fetched but the
396 permission to write the line is required.
397 .It Li L2_RQSTS.RFO_MISS
398 .Pq Event 24H , Umask 08H
399 Counts the number of store RFO requests that miss the L2 cache.
400 L2 RFO requests include both L1D demand RFO misses as well as L1D RFO
401 prefetches.
402 .It Li L2_RQSTS.RFOS
403 .Pq Event 24H , Umask 0CH
404 Counts all L2 store RFO requests.
405 L2 RFO requests include both L1D demand
406 RFO misses as well as L1D RFO prefetches.
407 .It Li L2_RQSTS.IFETCH_HIT
408 .Pq Event 24H , Umask 10H
409 Counts number of instruction fetches that hit the L2 cache.
410 L2 instruction fetches include both L1I demand misses as well as L1I
411 instruction prefetches.
412 .It Li L2_RQSTS.IFETCH_MISS
413 .Pq Event 24H , Umask 20H
414 Counts number of instruction fetches that miss the L2 cache.
415 L2 instruction fetches include both L1I demand misses as well as L1I
416 instruction prefetches.
417 .It Li L2_RQSTS.IFETCHES
418 .Pq Event 24H , Umask 30H
419 Counts all instruction fetches.
420 L2 instruction fetches include both L1I
421 demand misses as well as L1I instruction prefetches.
422 .It Li L2_RQSTS.PREFETCH_HIT
423 .Pq Event 24H , Umask 40H
424 Counts L2 prefetch hits for both code and data.
425 .It Li L2_RQSTS.PREFETCH_MISS
426 .Pq Event 24H , Umask 80H
427 Counts L2 prefetch misses for both code and data.
428 .It Li L2_RQSTS.PREFETCHES
429 .Pq Event 24H , Umask C0H
430 Counts all L2 prefetches for both code and data.
431 .It Li L2_RQSTS.MISS
432 .Pq Event 24H , Umask AAH
433 Counts all L2 misses for both code and data.
434 .It Li L2_RQSTS.REFERENCES
435 .Pq Event 24H , Umask FFH
436 Counts all L2 requests for both code and data.
437 .It Li L2_DATA_RQSTS.DEMAND.I_STATE
438 .Pq Event 26H , Umask 01H
439 Counts number of L2 data demand loads where the cache line to be loaded is
440 in the I (invalid) state, i.e. a cache miss.
441 L2 demand loads are both L1D demand misses and L1D prefetches.
442 .It Li L2_DATA_RQSTS.DEMAND.S_STATE
443 .Pq Event 26H , Umask 02H
444 Counts number of L2 data demand loads where the cache line to be loaded is
445 in the S (shared) state.
446 L2 demand loads are both L1D demand misses and L1D
447 prefetches.
448 .It Li L2_DATA_RQSTS.DEMAND.E_STATE
449 .Pq Event 26H , Umask 04H
450 Counts number of L2 data demand loads where the cache line to be loaded is
451 in the E (exclusive) state.
452 L2 demand loads are both L1D demand misses and
453 L1D prefetches.
454 .It Li L2_DATA_RQSTS.DEMAND.M_STATE
455 .Pq Event 26H , Umask 08H
456 Counts number of L2 data demand loads where the cache line to be loaded is
457 in the M (modified) state.
458 L2 demand loads are both L1D demand misses and
459 L1D prefetches.
460 .It Li L2_DATA_RQSTS.DEMAND.MESI
461 .Pq Event 26H , Umask 0FH
462 Counts all L2 data demand requests.
463 L2 demand loads are both L1D demand
464 misses and L1D prefetches.
465 .It Li L2_DATA_RQSTS.PREFETCH.I_STATE
466 .Pq Event 26H , Umask 10H
467 Counts number of L2 prefetch data loads where the cache line to be loaded is
468 in the I (invalid) state, i.e. a cache miss.
469 .It Li L2_DATA_RQSTS.PREFETCH.S_STATE
470 .Pq Event 26H , Umask 20H
471 Counts number of L2 prefetch data loads where the cache line to be loaded is
472 in the S (shared) state.
473 A prefetch RFO will miss on an S state line, while
474 a prefetch read will hit on an S state line.
475 .It Li L2_DATA_RQSTS.PREFETCH.E_STATE
476 .Pq Event 26H , Umask 40H
477 Counts number of L2 prefetch data loads where the cache line to be loaded is
478 in the E (exclusive) state.
479 .It Li L2_DATA_RQSTS.PREFETCH.M_STATE
480 .Pq Event 26H , Umask 80H
481 Counts number of L2 prefetch data loads where the cache line to be loaded is
482 in the M (modified) state.
483 .It Li L2_DATA_RQSTS.PREFETCH.MESI
484 .Pq Event 26H , Umask F0H
485 Counts all L2 prefetch requests.
486 .It Li L2_DATA_RQSTS.ANY
487 .Pq Event 26H , Umask FFH
488 Counts all L2 data requests.
489 .It Li L2_WRITE.RFO.I_STATE
490 .Pq Event 27H , Umask 01H
491 Counts number of L2 demand store RFO requests where the cache line to be
492 loaded is in the I (invalid) state, i.e, a cache miss.
493 The L1D prefetcher
494 does not issue a RFO prefetch.
495 This is a demand RFO request
496 .It Li L2_WRITE.RFO.S_STATE
497 .Pq Event 27H , Umask 02H
498 Counts number of L2 store RFO requests where the cache line to be loaded is
499 in the S (shared) state.
500 The L1D prefetcher does not issue a RFO prefetch.
501 This is a demand RFO request.
502 .It Li L2_WRITE.RFO.M_STATE
503 .Pq Event 27H , Umask 08H
504 Counts number of L2 store RFO requests where the cache line to be loaded is
505 in the M (modified) state.
506 The L1D prefetcher does not issue a RFO prefetch.
507 This is a demand RFO request.
508 .It Li L2_WRITE.RFO.HIT
509 .Pq Event 27H , Umask 0EH
510 Counts number of L2 store RFO requests where the cache line to be loaded is
511 in either the S, E or M states.
512 The L1D prefetcher does not issue a RFO
513 prefetch.
514 This is a demand RFO request
515 .It Li L2_WRITE.RFO.MESI
516 .Pq Event 27H , Umask 0FH
517 Counts all L2 store RFO requests.The L1D prefetcher does not issue a RFO
518 prefetch.
519 This is a demand RFO request.
520 .It Li L2_WRITE.LOCK.I_STATE
521 .Pq Event 27H , Umask 10H
522 Counts number of L2 demand lock RFO requests where the cache line to be
523 loaded is in the I (invalid) state, i.e. a cache miss.
524 .It Li L2_WRITE.LOCK.S_STATE
525 .Pq Event 27H , Umask 20H
526 Counts number of L2 lock RFO requests where the cache line to be loaded is
527 in the S (shared) state.
528 .It Li L2_WRITE.LOCK.E_STATE
529 .Pq Event 27H , Umask 40H
530 Counts number of L2 demand lock RFO requests where the cache line to be
531 loaded is in the E (exclusive) state.
532 .It Li L2_WRITE.LOCK.M_STATE
533 .Pq Event 27H , Umask 80H
534 Counts number of L2 demand lock RFO requests where the cache line to be
535 loaded is in the M (modified) state.
536 .It Li L2_WRITE.LOCK.HIT
537 .Pq Event 27H , Umask E0H
538 Counts number of L2 demand lock RFO requests where the cache line to be
539 loaded is in either the S, E, or M state.
540 .It Li L2_WRITE.LOCK.MESI
541 .Pq Event 27H , Umask F0H
542 Counts all L2 demand lock RFO requests.
543 .It Li L1D_WB_L2.I_STATE
544 .Pq Event 28H , Umask 01H
545 Counts number of L1 writebacks to the L2 where the cache line to be written
546 is in the I (invalid) state, i.e. a cache miss.
547 .It Li L1D_WB_L2.S_STATE
548 .Pq Event 28H , Umask 02H
549 Counts number of L1 writebacks to the L2 where the cache line to be written
550 is in the S state.
551 .It Li L1D_WB_L2.E_STATE
552 .Pq Event 28H , Umask 04H
553 Counts number of L1 writebacks to the L2 where the cache line to be written
554 is in the E (exclusive) state.
555 .It Li L1D_WB_L2.M_STATE
556 .Pq Event 28H , Umask 08H
557 Counts number of L1 writebacks to the L2 where the cache line to be written
558 is in the M (modified) state.
559 .It Li L1D_WB_L2.MESI
560 .Pq Event 28H , Umask 0FH
561 Counts all L1 writebacks to the L2.
562 .It Li L3_LAT_CACHE.REFERENCE
563 .Pq Event 2EH , Umask 02H
564 Counts uncore Last Level Cache references.
565 Because cache hierarchy, cache
566 sizes and other implementation-specific characteristics; value comparison to
567 estimate performance differences is not recommended.
568 See Table A-1.
569 .It Li L3_LAT_CACHE.MISS
570 .Pq Event 2EH , Umask 01H
571 Counts uncore Last Level Cache misses.
572 Because cache hierarchy, cache sizes
573 and other implementation-specific characteristics; value comparison to
574 estimate performance differences is not recommended.
575 See Table A-1.
576 .It Li CPU_CLK_UNHALTED.THREAD_P
577 .Pq Event 3CH , Umask 00H
578 Counts the number of thread cycles while the thread is not in a halt state.
579 The thread enters the halt state when it is running the HLT instruction.
580 The core frequency may change from time to time due to power or thermal
581 throttling.
582 see Table A-1
583 .It Li CPU_CLK_UNHALTED.REF_P
584 .Pq Event 3CH , Umask 01H
585 Increments at the frequency of TSC when not halted.
586 see Table A-1
587 .It Li DTLB_MISSES.ANY
588 .Pq Event 49H , Umask 01H
589 Counts the number of misses in the STLB which causes a page walk.
590 .It Li DTLB_MISSES.WALK_COMPLETED
591 .Pq Event 49H , Umask 02H
592 Counts number of misses in the STLB which resulted in a completed page walk.
593 .It Li DTLB_MISSES.WALK_CYCLES
594 .Pq Event 49H , Umask 04H
595 Counts cycles of page walk due to misses in the STLB.
596 .It Li DTLB_MISSES.STLB_HIT
597 .Pq Event 49H , Umask 10H
598 Counts the number of DTLB first level misses that hit in the second level
599 TLB.
600 This event is only relevant if the core contains multiple DTLB levels.
601 .It Li DTLB_MISSES.LARGE_WALK_COMPLETED
602 .Pq Event 49H , Umask 80H
603 Counts number of completed large page walks due to misses in the STLB.
604 .It Li LOAD_HIT_PRE
605 .Pq Event 4CH , Umask 01H
606 Counts load operations sent to the L1 data cache while a previous SSE
607 prefetch instruction to the same cache line has started prefetching but has
608 not yet finished.
609 .It Li L1D_PREFETCH.REQUESTS
610 .Pq Event 4EH , Umask 01H
611 Counts number of hardware prefetch requests dispatched out of the prefetch
612 FIFO.
613 .It Li L1D_PREFETCH.MISS
614 .Pq Event 4EH , Umask 02H
615 Counts number of hardware prefetch requests that miss the L1D.
616 There are two
617 prefetchers in the L1D.
618 A streamer, which predicts lines sequentially after
619 this one should be fetched, and the IP prefetcher that remembers access
620 patterns for the current instruction.
621 The streamer prefetcher stops on an
622 L1D hit, while the IP prefetcher does not.
623 .It Li L1D_PREFETCH.TRIGGERS
624 .Pq Event 4EH , Umask 04H
625 Counts number of prefetch requests triggered by the Finite State Machine and
626 pushed into the prefetch FIFO.
627 Some of the prefetch requests are dropped due
628 to overwrites or competition between the IP index prefetcher and streamer
629 prefetcher.
630 The prefetch FIFO contains 4 entries.
631 .It Li EPT.WALK_CYCLES
632 .Pq Event 4FH , Umask 10H
633 Counts Extended Page walk cycles.
634 .It Li L1D.REPL
635 .Pq Event 51H , Umask 01H
636 Counts the number of lines brought into the L1 data cache.
637 Counter 0, 1 only.
638 .It Li L1D.M_REPL
639 .Pq Event 51H , Umask 02H
640 Counts the number of modified lines brought into the L1 data cache.
641 Counter 0, 1 only.
642 .It Li L1D.M_EVICT
643 .Pq Event 51H , Umask 04H
644 Counts the number of modified lines evicted from the L1 data cache due to
645 replacement.
646 Counter 0, 1 only.
647 .It Li L1D.M_SNOOP_EVICT
648 .Pq Event 51H , Umask 08H
649 Counts the number of modified lines evicted from the L1 data cache due to
650 snoop HITM intervention.
651 Counter 0, 1 only
652 .It Li L1D_CACHE_PREFETCH_LOCK_FB_HIT
653 .Pq Event 52H , Umask 01H
654 Counts the number of cacheable load lock speculated instructions accepted
655 into the fill buffer.
656 .It Li L1D_CACHE_LOCK_FB_HIT
657 .Pq Event 53H , Umask 01H
658 Counts the number of cacheable load lock speculated or retired instructions
659 accepted into the fill buffer.
660 .It Li OFFCORE_REQUESTS_OUTSTANDING.DEMAND.READ_DATA
661 .Pq Event 60H , Umask 01H
662 Counts weighted cycles of offcore demand data read requests.
663 Does not include L2 prefetch requests.
664 Counter 0.
665 .It Li OFFCORE_REQUESTS_OUTSTANDING.DEMAND.READ_CODE
666 .Pq Event 60H , Umask 02H
667 Counts weighted cycles of offcore demand code read requests.
668 Does not include L2 prefetch requests.
669 Counter 0.
670 .It Li OFFCORE_REQUESTS_OUTSTANDING.DEMAND.RFO
671 .Pq Event 60H , Umask 04H
672 Counts weighted cycles of offcore demand RFO requests.
673 Does not include L2 prefetch requests.
674 Counter 0.
675 .It Li OFFCORE_REQUESTS_OUTSTANDING.ANY.READ
676 .Pq Event 60H , Umask 08H
677 Counts weighted cycles of offcore read requests of any kind.
678 Include L2 prefetch requests.
679 Counter 0.
680 .It Li CACHE_LOCK_CYCLES.L1D_L2
681 .Pq Event 63H , Umask 01H
682 Cycle count during which the L1D and L2 are locked.
683 A lock is asserted when
684 there is a locked memory access, due to uncacheable memory, a locked
685 operation that spans two cache lines, or a page walk from an uncacheable
686 page table.
687 Counter 0, 1 only.
688 L1D and L2 locks have a very high performance penalty and
689 it is highly recommended to avoid such accesses.
690 .It Li CACHE_LOCK_CYCLES.L1D
691 .Pq Event 63H , Umask 02H
692 Counts the number of cycles that cacheline in the L1 data cache unit is
693 locked.
694 Counter 0, 1 only.
695 .It Li IO_TRANSACTIONS
696 .Pq Event 6CH , Umask 01H
697 Counts the number of completed I/O transactions.
698 .It Li L1I.HITS
699 .Pq Event 80H , Umask 01H
700 Counts all instruction fetches that hit the L1 instruction cache.
701 .It Li L1I.MISSES
702 .Pq Event 80H , Umask 02H
703 Counts all instruction fetches that miss the L1I cache.
704 This includes
705 instruction cache misses, streaming buffer misses, victim cache misses and
706 uncacheable fetches.
707 An instruction fetch miss is counted only once and not
708 once for every cycle it is outstanding.
709 .It Li L1I.READS
710 .Pq Event 80H , Umask 03H
711 Counts all instruction fetches, including uncacheable fetches that bypass
712 the L1I.
713 .It Li L1I.CYCLES_STALLED
714 .Pq Event 80H , Umask 04H
715 Cycle counts for which an instruction fetch stalls due to a L1I cache miss,
716 ITLB miss or ITLB fault.
717 .It Li LARGE_ITLB.HIT
718 .Pq Event 82H , Umask 01H
719 Counts number of large ITLB hits.
720 .It Li ITLB_MISSES.ANY
721 .Pq Event 85H , Umask 01H
722 Counts the number of misses in all levels of the ITLB which causes a page
723 walk.
724 .It Li ITLB_MISSES.WALK_COMPLETED
725 .Pq Event 85H , Umask 02H
726 Counts number of misses in all levels of the ITLB which resulted in a
727 completed page walk.
728 .It Li ITLB_MISSES.WALK_CYCLES
729 .Pq Event 85H , Umask 04H
730 Counts ITLB miss page walk cycles.
731 .It Li ITLB_MISSES.LARGE_WALK_COMPLETED
732 .Pq Event 85H , Umask 80H
733 Counts number of completed large page walks due to misses in the STLB.
734 .It Li ILD_STALL.LCP
735 .Pq Event 87H , Umask 01H
736 Cycles Instruction Length Decoder stalls due to length changing prefixes:
737 66, 67 or REX.W (for EM64T) instructions which change the length of the
738 decoded instruction.
739 .It Li ILD_STALL.MRU
740 .Pq Event 87H , Umask 02H
741 Instruction Length Decoder stall cycles due to Brand Prediction Unit (PBU)
742 Most Recently Used (MRU) bypass.
743 .It Li ILD_STALL.IQ_FULL
744 .Pq Event 87H , Umask 04H
745 Stall cycles due to a full instruction queue.
746 .It Li ILD_STALL.REGEN
747 .Pq Event 87H , Umask 08H
748 Counts the number of regen stalls.
749 .It Li ILD_STALL.ANY
750 .Pq Event 87H , Umask 0FH
751 Counts any cycles the Instruction Length Decoder is stalled.
752 .It Li BR_INST_EXEC.COND
753 .Pq Event 88H , Umask 01H
754 Counts the number of conditional near branch instructions executed, but not
755 necessarily retired.
756 .It Li BR_INST_EXEC.DIRECT
757 .Pq Event 88H , Umask 02H
758 Counts all unconditional near branch instructions excluding calls and
759 indirect branches.
760 .It Li BR_INST_EXEC.INDIRECT_NON_CALL
761 .Pq Event 88H , Umask 04H
762 Counts the number of executed indirect near branch instructions that are not
763 calls.
764 .It Li BR_INST_EXEC.NON_CALLS
765 .Pq Event 88H , Umask 07H
766 Counts all non call near branch instructions executed, but not necessarily
767 retired.
768 .It Li BR_INST_EXEC.RETURN_NEAR
769 .Pq Event 88H , Umask 08H
770 Counts indirect near branches that have a return mnemonic.
771 .It Li BR_INST_EXEC.DIRECT_NEAR_CALL
772 .Pq Event 88H , Umask 10H
773 Counts unconditional near call branch instructions, excluding non call
774 branch, executed.
775 .It Li BR_INST_EXEC.INDIRECT_NEAR_CALL
776 .Pq Event 88H , Umask 20H
777 Counts indirect near calls, including both register and memory indirect,
778 executed.
779 .It Li BR_INST_EXEC.NEAR_CALLS
780 .Pq Event 88H , Umask 30H
781 Counts all near call branches executed, but not necessarily retired.
782 .It Li BR_INST_EXEC.TAKEN
783 .Pq Event 88H , Umask 40H
784 Counts taken near branches executed, but not necessarily retired.
785 .It Li BR_INST_EXEC.ANY
786 .Pq Event 88H , Umask 7FH
787 Counts all near executed branches (not necessarily retired).
788 This includes only instructions and not micro-op branches.
789 Frequent branching is not necessarily a major performance issue.
790 However frequent branch mispredictions may be a problem.
791 .It Li BR_MISP_EXEC.COND
792 .Pq Event 89H , Umask 01H
793 Counts the number of mispredicted conditional near branch instructions
794 executed, but not necessarily retired.
795 .It Li BR_MISP_EXEC.DIRECT
796 .Pq Event 89H , Umask 02H
797 Counts mispredicted macro unconditional near branch instructions, excluding
798 calls and indirect branches (should always be 0).
799 .It Li BR_MISP_EXEC.INDIRECT_NON_CALL
800 .Pq Event 89H , Umask 04H
801 Counts the number of executed mispredicted indirect near branch instructions
802 that are not calls.
803 .It Li BR_MISP_EXEC.NON_CALLS
804 .Pq Event 89H , Umask 07H
805 Counts mispredicted non call near branches executed, but not necessarily
806 retired.
807 .It Li BR_MISP_EXEC.RETURN_NEAR
808 .Pq Event 89H , Umask 08H
809 Counts mispredicted indirect branches that have a rear return mnemonic.
810 .It Li BR_MISP_EXEC.DIRECT_NEAR_CALL
811 .Pq Event 89H , Umask 10H
812 Counts mispredicted non-indirect near calls executed, (should always be 0).
813 .It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL
814 .Pq Event 89H , Umask 20H
815 Counts mispredicted indirect near calls executed, including both register
816 and memory indirect.
817 .It Li BR_MISP_EXEC.NEAR_CALLS
818 .Pq Event 89H , Umask 30H
819 Counts all mispredicted near call branches executed, but not necessarily
820 retired.
821 .It Li BR_MISP_EXEC.TAKEN
822 .Pq Event 89H , Umask 40H
823 Counts executed mispredicted near branches that are taken, but not
824 necessarily retired.
825 .It Li BR_MISP_EXEC.ANY
826 .Pq Event 89H , Umask 7FH
827 Counts the number of mispredicted near branch instructions that were
828 executed, but not necessarily retired.
829 .It Li RESOURCE_STALLS.ANY
830 .Pq Event A2H , Umask 01H
831 Counts the number of Allocator resource related stalls.
832 Includes register renaming buffer entries, memory buffer entries.
833 In addition to resource related stalls, this event counts some other events.
834 Includes stalls arising
835 during branch misprediction recovery, such as if retirement of the
836 mispredicted branch is delayed and stalls arising while store buffer is
837 draining from synchronizing operations.
838 Does not include stalls due to SuperQ (off core) queue full, too many cache
839 misses, etc.
840 .It Li RESOURCE_STALLS.LOAD
841 .Pq Event A2H , Umask 02H
842 Counts the cycles of stall due to lack of load buffer for load operation.
843 .It Li RESOURCE_STALLS.RS_FULL
844 .Pq Event A2H , Umask 04H
845 This event counts the number of cycles when the number of instructions in
846 the pipeline waiting for execution reaches the limit the processor can
847 handle.
848 A high count of this event indicates that there are long latency
849 operations in the pipe (possibly load and store operations that miss the L2
850 cache, or instructions dependent upon instructions further down the pipeline
851 that have yet to retire.
852 When RS is full, new instructions can not enter the reservation station and
853 start execution.
854 .It Li RESOURCE_STALLS.STORE
855 .Pq Event A2H , Umask 08H
856 This event counts the number of cycles that a resource related stall will
857 occur due to the number of store instructions reaching the limit of the
858 pipeline, (i.e. all store buffers are used).
859 The stall ends when a store
860 instruction commits its data to the cache or memory.
861 .It Li RESOURCE_STALLS.ROB_FULL
862 .Pq Event A2H , Umask 10H
863 Counts the cycles of stall due to re- order buffer full.
864 .It Li RESOURCE_STALLS.FPCW
865 .Pq Event A2H , Umask 20H
866 Counts the number of cycles while execution was stalled due to writing the
867 floating-point unit (FPU) control word.
868 .It Li RESOURCE_STALLS.MXCSR
869 .Pq Event A2H , Umask 40H
870 Stalls due to the MXCSR register rename occurring to close to a previous
871 MXCSR rename.
872 The MXCSR provides control and status for the MMX registers.
873 .It Li RESOURCE_STALLS.OTHER
874 .Pq Event A2H , Umask 80H
875 Counts the number of cycles while execution was stalled due to other
876 resource issues.
877 .It Li MACRO_INSTS.FUSIONS_DECODED
878 .Pq Event A6H , Umask 01H
879 Counts the number of instructions decoded that are macro-fused but not
880 necessarily executed or retired.
881 .It Li BACLEAR_FORCE_IQ
882 .Pq Event A7H , Umask 01H
883 Counts number of times a BACLEAR was forced by the Instruction Queue.
884 The IQ is also responsible for providing conditional branch prediction
885 direction based on a static scheme and dynamic data provided by the L2
886 Branch Prediction Unit.
887 If the conditional branch target is not found in the Target
888 Array and the IQ predicts that the branch is taken, then the IQ will force
889 the Branch Address Calculator to issue a BACLEAR.
890 Each BACLEAR asserted by
891 the BAC generates approximately an 8 cycle bubble in the instruction fetch
892 pipeline.
893 .It Li LSD.UOPS
894 .Pq Event A8H , Umask 01H
895 Counts the number of micro-ops delivered by loop stream detector
896 Use cmask=1 and invert to count cycles
897 .It Li ITLB_FLUSH
898 .Pq Event AEH , Umask 01H
899 Counts the number of ITLB flushes
900 .It Li OFFCORE_REQUESTS.DEMAND.READ_DATA
901 .Pq Event B0H , Umask 01H
902 Counts number of offcore demand data read requests.
903 Does not count L2 prefetch requests.
904 .It Li OFFCORE_REQUESTS.DEMAND.READ_CODE
905 .Pq Event B0H , Umask 02H
906 Counts number of offcore demand code read requests.
907 Does not count L2 prefetch requests.
908 .It Li OFFCORE_REQUESTS.DEMAND.RFO
909 .Pq Event B0H , Umask 04H
910 Counts number of offcore demand RFO requests.
911 Does not count L2 prefetch requests.
912 .It Li OFFCORE_REQUESTS.ANY.READ
913 .Pq Event B0H , Umask 08H
914 Counts number of offcore read requests.
915 Includes L2 prefetch requests.
916 .It Li OFFCORE_REQUESTS.ANY.RFO
917 .Pq Event 80H , Umask 10H
918 Counts number of offcore RFO requests.
919 Includes L2 prefetch requests.
920 .It Li OFFCORE_REQUESTS.L1D_WRITEBACK
921 .Pq Event B0H , Umask 40H
922 Counts number of L1D writebacks to the uncore.
923 .It Li OFFCORE_REQUESTS.ANY
924 .Pq Event B0H , Umask 80H
925 Counts all offcore requests.
926 .It Li UOPS_EXECUTED.PORT0
927 .Pq Event B1H , Umask 01H
928 Counts number of Uops executed that were issued on port 0.
929 Port 0 handles integer arithmetic, SIMD and FP add Uops.
930 .It Li UOPS_EXECUTED.PORT1
931 .Pq Event B1H , Umask 02H
932 Counts number of Uops executed that were issued on port 1.
933 Port 1 handles integer arithmetic, SIMD, integer shift, FP multiply and
934 FP divide Uops.
935 .It Li UOPS_EXECUTED.PORT2_CORE
936 .Pq Event B1H , Umask 04H
937 Counts number of Uops executed that were issued on port 2.
938 Port 2 handles the load Uops.
939 This is a core count only and can not be collected per
940 thread.
941 .It Li UOPS_EXECUTED.PORT3_CORE
942 .Pq Event B1H , Umask 08H
943 Counts number of Uops executed that were issued on port 3.
944 Port 3 handles store Uops.
945 This is a core count only and can not be collected per thread.
946 .It Li UOPS_EXECUTED.PORT4_CORE
947 .Pq Event B1H , Umask 10H
948 Counts number of Uops executed that where issued on port 4.
949 Port 4 handles the value to be stored for the store Uops issued on port 3.
950 This is a core count only and can not be collected per thread.
951 .It Li UOPS_EXECUTED.CORE_ACTIVE_CYCLES_NO_PORT5
952 .Pq Event B1H , Umask 1FH
953 Counts number of cycles there are one or more uops being executed and were
954 issued on ports 0-4.
955 This is a core count only and can not be collected per thread.
956 .It Li UOPS_EXECUTED.PORT5
957 .Pq Event B1H , Umask 20H
958 Counts number of Uops executed that where issued on port 5.
959 .It Li UOPS_EXECUTED.CORE_ACTIVE_CYCLES
960 .Pq Event B1H , Umask 3FH
961 Counts number of cycles there are one or more uops being executed on any
962 ports.
963 This is a core count only and can not be collected per thread.
964 .It Li UOPS_EXECUTED.PORT015
965 .Pq Event B1H , Umask 40H
966 Counts number of Uops executed that where issued on port 0, 1, or 5.
967 Use cmask=1, invert=1 to count stall cycles.
968 .It Li UOPS_EXECUTED.PORT234
969 .Pq Event B1H , Umask 80H
970 Counts number of Uops executed that where issued on port 2, 3, or 4.
971 .It Li OFFCORE_REQUESTS_SQ_FULL
972 .Pq Event B2H , Umask 01H
973 Counts number of cycles the SQ is full to handle off-core requests.
974 .It Li SNOOPQ_REQUESTS_OUTSTANDING.DATA
975 .Pq Event B3H , Umask 01H
976 Counts weighted cycles of snoopq requests for data.
977 Counter 0 only
978 Use cmask=1 to count cycles not empty.
979 .It Li SNOOPQ_REQUESTS_OUTSTANDING.INVALIDATE
980 .Pq Event B3H , Umask 02H
981 Counts weighted cycles of snoopq invalidate requests.
982 Counter 0 only.
983 Use cmask=1 to count cycles not empty.
984 .It Li SNOOPQ_REQUESTS_OUTSTANDING.CODE
985 .Pq Event B3H , Umask 04H
986 Counts weighted cycles of snoopq requests for code.
987 Counter 0 only.
988 Use cmask=1 to count cycles not empty.
989 .It Li SNOOPQ_REQUESTS.CODE
990 .Pq Event B4H , Umask 01H
991 Counts the number of snoop code requests.
992 .It Li SNOOPQ_REQUESTS.DATA
993 .Pq Event B4H , Umask 02H
994 Counts the number of snoop data requests.
995 .It Li SNOOPQ_REQUESTS.INVALIDATE
996 .Pq Event B4H , Umask 04H
997 Counts the number of snoop invalidate requests
998 .It Li OFF_CORE_RESPONSE_0
999 .Pq Event B7H , Umask 01H
1000 see Section 30.6.1.3, Off-core Response Performance Monitoring in the
1001 Processor Core.
1002 Requires programming MSR 01A6H.
1003 .It Li SNOOP_RESPONSE.HIT
1004 .Pq Event B8H , Umask 01H
1005 Counts HIT snoop response sent by this thread in response to a snoop
1006 request.
1007 .It Li SNOOP_RESPONSE.HITE
1008 .Pq Event B8H , Umask 02H
1009 Counts HIT E snoop response sent by this thread in response to a snoop
1010 request.
1011 .It Li SNOOP_RESPONSE.HITM
1012 .Pq Event B8H , Umask 04H
1013 Counts HIT M snoop response sent by this thread in response to a snoop
1014 request.
1015 .It Li OFF_CORE_RESPONSE_1
1016 .Pq Event BBH , Umask 01H
1017 see Section 30.6.1.3, Off-core Response Performance Monitoring in the
1018 Processor Core.
1019 Use MSR 01A7H.
1020 .It Li INST_RETIRED.ANY_P
1021 .Pq Event C0H , Umask 01H
1022 See Table A-1
1023 Notes: INST_RETIRED.ANY is counted by a designated fixed counter.
1024 INST_RETIRED.ANY_P is counted by a programmable counter and is an
1025 architectural performance event.
1026 Event is supported if CPUID.A.EBX[1] = 0.
1027 Counting: Faulting executions of GETSEC/VM entry/VM Exit/MWait will not
1028 count as retired instructions.
1029 .It Li INST_RETIRED.X87
1030 .Pq Event C0H , Umask 02H
1031 Counts the number of floating point computational operations retired
1032 floating point computational operations executed by the assist handler and
1033 sub-operations of complex floating point instructions like transcendental
1034 instructions.
1035 .It Li INST_RETIRED.MMX
1036 .Pq Event C0H , Umask 04H
1037 Counts the number of retired: MMX instructions.
1038 .It Li UOPS_RETIRED.ANY
1039 .Pq Event C2H , Umask 01H
1040 Counts the number of micro-ops retired, (macro-fused=1, micro- fused=2,
1041 others=1; maximum count of 8 per cycle).
1042 Most instructions are composed of one or two micro-ops.
1043 Some instructions are decoded into longer sequences
1044 such as repeat instructions, floating point transcendental instructions, and
1045 assists.
1046 Use cmask=1 and invert to count active cycles or stalled cycles
1047 .It Li UOPS_RETIRED.RETIRE_SLOTS
1048 .Pq Event C2H , Umask 02H
1049 Counts the number of retirement slots used each cycle
1050 .It Li UOPS_RETIRED.MACRO_FUSED
1051 .Pq Event C2H , Umask 04H
1052 Counts number of macro-fused uops retired.
1053 .It Li MACHINE_CLEARS.CYCLES
1054 .Pq Event C3H , Umask 01H
1055 Counts the cycles machine clear is asserted.
1056 .It Li MACHINE_CLEARS.MEM_ORDER
1057 .Pq Event C3H , Umask 02H
1058 Counts the number of machine clears due to memory order conflicts.
1059 .It Li MACHINE_CLEARS.SMC
1060 .Pq Event C3H , Umask 04H
1061 Counts the number of times that a program writes to a code section.
1062 Self-modifying code causes a sever penalty in all Intel 64 and IA-32
1063 processors.
1064 The modified cache line is written back to the L2 and L3caches.
1065 .It Li BR_INST_RETIRED.ANY_P
1066 .Pq Event C4H , Umask 00H
1067 See Table A-1.
1068 .It Li BR_INST_RETIRED.CONDITIONAL
1069 .Pq Event C4H , Umask 01H
1070 Counts the number of conditional branch instructions retired.
1071 .It Li BR_INST_RETIRED.NEAR_CALL
1072 .Pq Event C4H , Umask 02H
1073 Counts the number of direct & indirect near unconditional calls retired.
1074 .It Li BR_INST_RETIRED.ALL_BRANCHES
1075 .Pq Event C4H , Umask 04H
1076 Counts the number of branch instructions retired.
1077 .It Li BR_MISP_RETIRED.ANY_P
1078 .Pq Event C5H , Umask 00H
1079 See Table A-1.
1080 .It Li BR_MISP_RETIRED.CONDITIONAL
1081 .Pq Event C5H , Umask 01H
1082 Counts mispredicted conditional retired calls.
1083 .It Li BR_MISP_RETIRED.NEAR_CALL
1084 .Pq Event C5H , Umask 02H
1085 Counts mispredicted direct & indirect near unconditional retired calls.
1086 .It Li BR_MISP_RETIRED.ALL_BRANCHES
1087 .Pq Event C5H , Umask 04H
1088 Counts all mispredicted retired calls.
1089 .It Li SSEX_UOPS_RETIRED.PACKED_SINGLE
1090 .Pq Event C7H , Umask 01H
1091 Counts SIMD packed single-precision floating point Uops retired.
1092 .It Li SSEX_UOPS_RETIRED.SCALAR_SINGLE
1093 .Pq Event C7H , Umask 02H
1094 Counts SIMD calar single-precision floating point Uops retired.
1095 .It Li SSEX_UOPS_RETIRED.PACKED_DOUBLE
1096 .Pq Event C7H , Umask 04H
1097 Counts SIMD packed double- precision floating point Uops retired.
1098 .It Li SSEX_UOPS_RETIRED.SCALAR_DOUBLE
1099 .Pq Event C7H , Umask 08H
1100 Counts SIMD scalar double-precision floating point Uops retired.
1101 .It Li SSEX_UOPS_RETIRED.VECTOR_INTEGER
1102 .Pq Event C7H , Umask 10H
1103 Counts 128-bit SIMD vector integer Uops retired.
1104 .It Li ITLB_MISS_RETIRED
1105 .Pq Event C8H , Umask 20H
1106 Counts the number of retired instructions that missed the ITLB when the
1107 instruction was fetched.
1108 .It Li MEM_LOAD_RETIRED.L1D_HIT
1109 .Pq Event CBH , Umask 01H
1110 Counts number of retired loads that hit the L1 data cache.
1111 .It Li MEM_LOAD_RETIRED.L2_HIT
1112 .Pq Event CBH , Umask 02H
1113 Counts number of retired loads that hit the L2 data cache.
1114 .It Li MEM_LOAD_RETIRED.L3_UNSHARED_HIT
1115 .Pq Event CBH , Umask 04H
1116 Counts number of retired loads that hit their own, unshared lines in the L3
1117 cache.
1118 .It Li MEM_LOAD_RETIRED.OTHER_CORE_L2_HIT_HITM
1119 .Pq Event CBH , Umask 08H
1120 Counts number of retired loads that hit in a sibling core's L2 (on die
1121 core).
1122 Since the L3 is inclusive of all cores on the package, this is an L3 hit.
1123 This counts both clean or modified hits.
1124 .It Li MEM_LOAD_RETIRED.L3_MISS
1125 .Pq Event CBH , Umask 10H
1126 Counts number of retired loads that miss the L3 cache.
1127 The load was satisfied by a remote socket, local memory or an IOH.
1128 .It Li MEM_LOAD_RETIRED.HIT_LFB
1129 .Pq Event CBH , Umask 40H
1130 Counts number of retired loads that miss the L1D and the address is located
1131 in an allocated line fill buffer and will soon be committed to cache.
1132 This is counting secondary L1D misses.
1133 .It Li MEM_LOAD_RETIRED.DTLB_MISS
1134 .Pq Event CBH , Umask 80H
1135 Counts the number of retired loads that missed the DTLB.
1136 The DTLB miss is not counted if the load operation causes a fault.
1137 This event counts loads from cacheable memory only.
1138 The event does not count loads by software prefetches.
1139 Counts both primary and secondary misses to the TLB.
1140 .It Li FP_MMX_TRANS.TO_FP
1141 .Pq Event CCH , Umask 01H
1142 Counts the first floating-point instruction following any MMX instruction.
1143 You can use this event to estimate the penalties for the transitions between
1144 floating-point and MMX technology states.
1145 .It Li FP_MMX_TRANS.TO_MMX
1146 .Pq Event CCH , Umask 02H
1147 Counts the first MMX instruction following a floating-point instruction.
1148 You can use this event to estimate the penalties for the transitions between
1149 floating-point and MMX technology states.
1150 .It Li FP_MMX_TRANS.ANY
1151 .Pq Event CCH , Umask 03H
1152 Counts all transitions from floating point to MMX instructions and from MMX
1153 instructions to floating point instructions.
1154 You can use this event to estimate the penalties for the transitions between
1155 floating-point and MMX technology states.
1156 .It Li MACRO_INSTS.DECODED
1157 .Pq Event D0H , Umask 01H
1158 Counts the number of instructions decoded, (but not necessarily executed or
1159 retired).
1160 .It Li UOPS_DECODED.STALL_CYCLES
1161 .Pq Event D1H , Umask 01H
1162 Counts the cycles of decoder stalls.
1163 .It Li UOPS_DECODED.MS
1164 .Pq Event D1H , Umask 02H
1165 Counts the number of Uops decoded by the Microcode Sequencer, MS.
1166 The MS delivers uops when the instruction is more than 4 uops long or a
1167 microcode assist is occurring.
1168 .It Li UOPS_DECODED.ESP_FOLDING
1169 .Pq Event D1H , Umask 04H
1170 Counts number of stack pointer (ESP) instructions decoded: push , pop , call
1171 , ret, etc. ESP instructions do not generate a Uop to increment or decrement
1172 ESP.
1173 Instead, they update an ESP_Offset register that keeps track of the
1174 delta to the current value of the ESP register.
1175 .It Li UOPS_DECODED.ESP_SYNC
1176 .Pq Event D1H , Umask 08H
1177 Counts number of stack pointer (ESP) sync operations where an ESP
1178 instruction is corrected by adding the ESP offset register to the current
1179 value of the ESP register.
1180 .It Li RAT_STALLS.FLAGS
1181 .Pq Event D2H , Umask 01H
1182 Counts the number of cycles during which execution stalled due to several
1183 reasons, one of which is a partial flag register stall.
1184 A partial register
1185 stall may occur when two conditions are met: 1) an instruction modifies
1186 some, but not all, of the flags in the flag register and 2) the next
1187 instruction, which depends on flags, depends on flags that were not modified
1188 by this instruction.
1189 .It Li RAT_STALLS.REGISTERS
1190 .Pq Event D2H , Umask 02H
1191 This event counts the number of cycles instruction execution latency became
1192 longer than the defined latency because the instruction used a register that
1193 was partially written by previous instruction.
1194 .It Li RAT_STALLS.ROB_READ_PORT
1195 .Pq Event D2H , Umask 04H
1196 Counts the number of cycles when ROB read port stalls occurred, which did
1197 not allow new micro-ops to enter the out-of-order pipeline.
1198 Note that, at
1199 this stage in the pipeline, additional stalls may occur at the same cycle
1200 and prevent the stalled micro-ops from entering the pipe.
1201 In such a case,
1202 micro-ops retry entering the execution pipe in the next cycle and the
1203 ROB-read port stall is counted again.
1204 .It Li RAT_STALLS.SCOREBOARD
1205 .Pq Event D2H , Umask 08H
1206 Counts the cycles where we stall due to microarchitecturally required
1207 serialization.
1208 Microcode scoreboarding stalls.
1209 .It Li RAT_STALLS.ANY
1210 .Pq Event D2H , Umask 0FH
1211 Counts all Register Allocation Table stall cycles due to: Cycles when ROB
1212 read port stalls occurred, which did not allow new micro-ops to enter the
1213 execution pipe.
1214 Cycles when partial register stalls occurred Cycles when
1215 flag stalls occurred Cycles floating-point unit (FPU) status word stalls
1216 occurred.
1217 To count each of these conditions separately use the events:
1218 RAT_STALLS.ROB_READ_PORT, RAT_STALLS.PARTIAL, RAT_STALLS.FLAGS, and
1219 RAT_STALLS.FPSW.
1220 .It Li SEG_RENAME_STALLS
1221 .Pq Event D4H , Umask 01H
1222 Counts the number of stall cycles due to the lack of renaming resources for
1223 the ES, DS, FS, and GS segment registers.
1224 If a segment is renamed but not
1225 retired and a second update to the same segment occurs, a stall occurs in
1226 the front- end of the pipeline until the renamed segment retires.
1227 .It Li ES_REG_RENAMES
1228 .Pq Event D5H , Umask 01H
1229 Counts the number of times the ES segment register is renamed.
1230 .It Li UOP_UNFUSION
1231 .Pq Event DBH , Umask 01H
1232 Counts unfusion events due to floating point exception to a fused uop.
1233 .It Li BR_INST_DECODED
1234 .Pq Event E0H , Umask 01H
1235 Counts the number of branch instructions decoded.
1236 .It Li BPU_MISSED_CALL_RET
1237 .Pq Event E5H , Umask 01H
1238 Counts number of times the Branch Prediction Unit missed predicting a call
1239 or return branch.
1240 .It Li BACLEAR.CLEAR
1241 .Pq Event E6H , Umask 01H
1242 Counts the number of times the front end is resteered, mainly when the
1243 Branch Prediction Unit cannot provide a correct prediction and this is
1244 corrected by the Branch Address Calculator at the front end.
1245 This can occur
1246 if the code has many branches such that they cannot be consumed by the BPU.
1247 Each BACLEAR asserted by the BAC generates approximately an 8 cycle bubble
1248 in the instruction fetch pipeline.
1249 The effect on total execution time depends on the surrounding code.
1250 .It Li BACLEAR.BAD_TARGET
1251 .Pq Event E6H , Umask 02H
1252 Counts number of Branch Address Calculator clears (BACLEAR) asserted due to
1253 conditional branch instructions in which there was a target hit but the
1254 direction was wrong.
1255 Each BACLEAR asserted by the BAC generates
1256 approximately an 8 cycle bubble in the instruction fetch pipeline.
1257 .It Li BPU_CLEARS.EARLY
1258 .Pq Event E8H , Umask 01H
1259 Counts early (normal) Branch Prediction Unit clears: BPU predicted a taken
1260 branch after incorrectly assuming that it was not taken.
1261 The BPU clear leads to 2 cycle bubble in the Front End.
1262 .It Li BPU_CLEARS.LATE
1263 .Pq Event E8H , Umask 02H
1264 Counts late Branch Prediction Unit clears due to Most Recently Used
1265 conflicts.
1266 The PBU clear leads to a 3 cycle bubble in the Front End.
1267 .It Li THREAD_ACTIVE
1268 .Pq Event ECH , Umask 01H
1269 Counts cycles threads are active.
1270 .It Li L2_TRANSACTIONS.LOAD
1271 .Pq Event F0H , Umask 01H
1272 Counts L2 load operations due to HW prefetch or demand loads.
1273 .It Li L2_TRANSACTIONS.RFO
1274 .Pq Event F0H , Umask 02H
1275 Counts L2 RFO operations due to HW prefetch or demand RFOs.
1276 .It Li L2_TRANSACTIONS.IFETCH
1277 .Pq Event F0H , Umask 04H
1278 Counts L2 instruction fetch operations due to HW prefetch or demand ifetch.
1279 .It Li L2_TRANSACTIONS.PREFETCH
1280 .Pq Event F0H , Umask 08H
1281 Counts L2 prefetch operations.
1282 .It Li L2_TRANSACTIONS.L1D_WB
1283 .Pq Event F0H , Umask 10H
1284 Counts L1D writeback operations to the L2.
1285 .It Li L2_TRANSACTIONS.FILL
1286 .Pq Event F0H , Umask 20H
1287 Counts L2 cache line fill operations due to load, RFO, L1D writeback or
1288 prefetch.
1289 .It Li L2_TRANSACTIONS.WB
1290 .Pq Event F0H , Umask 40H
1291 Counts L2 writeback operations to the L3.
1292 .It Li L2_TRANSACTIONS.ANY
1293 .Pq Event F0H , Umask 80H
1294 Counts all L2 cache operations.
1295 .It Li L2_LINES_IN.S_STATE
1296 .Pq Event F1H , Umask 02H
1297 Counts the number of cache lines allocated in the L2 cache in the S (shared)
1298 state.
1299 .It Li L2_LINES_IN.E_STATE
1300 .Pq Event F1H , Umask 04H
1301 Counts the number of cache lines allocated in the L2 cache in the E
1302 (exclusive) state.
1303 .It Li L2_LINES_IN.ANY
1304 .Pq Event F1H , Umask 07H
1305 Counts the number of cache lines allocated in the L2 cache.
1306 .It Li L2_LINES_OUT.DEMAND_CLEAN
1307 .Pq Event F2H , Umask 01H
1308 Counts L2 clean cache lines evicted by a demand request.
1309 .It Li L2_LINES_OUT.DEMAND_DIRTY
1310 .Pq Event F2H , Umask 02H
1311 Counts L2 dirty (modified) cache lines evicted by a demand request.
1312 .It Li L2_LINES_OUT.PREFETCH_CLEAN
1313 .Pq Event F2H , Umask 04H
1314 Counts L2 clean cache line evicted by a prefetch request.
1315 .It Li L2_LINES_OUT.PREFETCH_DIRTY
1316 .Pq Event F2H , Umask 08H
1317 Counts L2 modified cache line evicted by a prefetch request.
1318 .It Li L2_LINES_OUT.ANY
1319 .Pq Event F2H , Umask 0FH
1320 Counts all L2 cache lines evicted for any reason.
1321 .It Li SQ_MISC.LRU_HINTS
1322 .Pq Event F4H , Umask 04H
1323 Counts number of Super Queue LRU hints sent to L3.
1324 .It Li SQ_MISC.SPLIT_LOCK
1325 .Pq Event F4H , Umask 10H
1326 Counts the number of SQ lock splits across a cache line.
1327 .It Li SQ_FULL_STALL_CYCLES
1328 .Pq Event F6H , Umask 01H
1329 Counts cycles the Super Queue is full.
1330 Neither of the threads on this core will be able to access the uncore.
1331 .It Li FP_ASSIST.ALL
1332 .Pq Event F7H , Umask 01H
1333 Counts the number of floating point operations executed that required
1334 micro-code assist intervention.
1335 Assists are required in the following cases:
1336 SSE instructions, (Denormal input when the DAZ flag is off or Underflow
1337 result when the FTZ flag is off): x87 instructions, (NaN or denormal are
1338 loaded to a register or used as input from memory, Division by 0 or
1339 Underflow output).
1340 .It Li FP_ASSIST.OUTPUT
1341 .Pq Event F7H , Umask 02H
1342 Counts number of floating point micro-code assist when the output value
1343 (destination register) is invalid.
1344 .It Li FP_ASSIST.INPUT
1345 .Pq Event F7H , Umask 04H
1346 Counts number of floating point micro-code assist when the input value (one
1347 of the source operands to an FP instruction) is invalid.
1348 .It Li SIMD_INT_64.PACKED_MPY
1349 .Pq Event FDH , Umask 01H
1350 Counts number of SID integer 64 bit packed multiply operations.
1351 .It Li SIMD_INT_64.PACKED_SHIFT
1352 .Pq Event FDH , Umask 02H
1353 Counts number of SID integer 64 bit packed shift operations.
1354 .It Li SIMD_INT_64.PACK
1355 .Pq Event FDH , Umask 04H
1356 Counts number of SID integer 64 bit pack operations.
1357 .It Li SIMD_INT_64.UNPACK
1358 .Pq Event FDH , Umask 08H
1359 Counts number of SID integer 64 bit unpack operations.
1360 .It Li SIMD_INT_64.PACKED_LOGICAL
1361 .Pq Event FDH , Umask 10H
1362 Counts number of SID integer 64 bit logical operations.
1363 .It Li SIMD_INT_64.PACKED_ARITH
1364 .Pq Event FDH , Umask 20H
1365 Counts number of SID integer 64 bit arithmetic operations.
1366 .It Li SIMD_INT_64.SHUFFLE_MOVE
1367 .Pq Event FDH , Umask 40H
1368 Counts number of SID integer 64 bit shift or move operations.
1369 .El
1370 .Sh SEE ALSO
1371 .Xr pmc 3 ,
1372 .Xr pmc.atom 3 ,
1373 .Xr pmc.core 3 ,
1374 .Xr pmc.iaf 3 ,
1375 .Xr pmc.ucf 3 ,
1376 .Xr pmc.k7 3 ,
1377 .Xr pmc.k8 3 ,
1378 .Xr pmc.p4 3 ,
1379 .Xr pmc.p5 3 ,
1380 .Xr pmc.p6 3 ,
1381 .Xr pmc.corei7 3 ,
1382 .Xr pmc.corei7uc 3 ,
1383 .Xr pmc.westmereuc 3 ,
1384 .Xr pmc.soft 3 ,
1385 .Xr pmc.tsc 3 ,
1386 .Xr pmc_cpuinfo 3 ,
1387 .Xr pmclog 3 ,
1388 .Xr hwpmc 4
1389 .Sh HISTORY
1390 The
1391 .Nm pmc
1392 library first appeared in
1393 .Fx 6.0 .
1394 .Sh AUTHORS
1395 The
1396 .Lb libpmc
1397 library was written by
1398 .An "Joseph Koshy"
1399 .Aq jkoshy@FreeBSD.org .