xref: /freebsd/lib/libpmc/pmc.core.3 (revision d6b92ffa)
1.\" Copyright (c) 2008 Joseph Koshy.  All rights reserved.
2.\"
3.\" Redistribution and use in source and binary forms, with or without
4.\" modification, are permitted provided that the following conditions
5.\" are met:
6.\" 1. Redistributions of source code must retain the above copyright
7.\"    notice, this list of conditions and the following disclaimer.
8.\" 2. Redistributions in binary form must reproduce the above copyright
9.\"    notice, this list of conditions and the following disclaimer in the
10.\"    documentation and/or other materials provided with the distribution.
11.\"
12.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22.\" SUCH DAMAGE.
23.\"
24.\" $FreeBSD$
25.\"
26.Dd November 12, 2008
27.Dt PMC.CORE 3
28.Os
29.Sh NAME
30.Nm pmc.core
31.Nd measurement events for
32.Tn Intel
33.Tn Core Solo
34and
35.Tn Core Duo
36family CPUs
37.Sh LIBRARY
38.Lb libpmc
39.Sh SYNOPSIS
40.In pmc.h
41.Sh DESCRIPTION
42.Tn Intel
43.Tn "Core Solo"
44and
45.Tn "Core Duo"
46CPUs contain PMCs conforming to version 1 of the
47.Tn Intel
48performance measurement architecture.
49.Pp
50These PMCs are documented in
51.Rs
52.%B IA-32 Intel\(rg Architecture Software Developer's Manual
53.%T Volume 3: System Programming Guide
54.%N Order Number 253669-027US
55.%D July 2008
56.%Q Intel Corporation
57.Re
58.Ss PMC Features
59CPUs conforming to version 1 of the
60.Tn Intel
61performance measurement architecture contain two programmable PMCs of
62class
63.Li PMC_CLASS_IAP .
64The PMCs are 40 bits width and offer the following capabilities:
65.Bl -column "PMC_CAP_INTERRUPT" "Support"
66.It Em Capability Ta Em Support
67.It PMC_CAP_CASCADE Ta \&No
68.It PMC_CAP_EDGE Ta Yes
69.It PMC_CAP_INTERRUPT Ta Yes
70.It PMC_CAP_INVERT Ta Yes
71.It PMC_CAP_READ Ta Yes
72.It PMC_CAP_PRECISE Ta \&No
73.It PMC_CAP_SYSTEM Ta Yes
74.It PMC_CAP_TAGGING Ta \&No
75.It PMC_CAP_THRESHOLD Ta Yes
76.It PMC_CAP_USER Ta Yes
77.It PMC_CAP_WRITE Ta Yes
78.El
79.Ss Event Qualifiers
80Event specifiers for these PMCs support the following common
81qualifiers:
82.Bl -tag -width indent
83.It Li cmask= Ns Ar value
84Configure the PMC to increment only if the number of configured
85events measured in a cycle is greater than or equal to
86.Ar value .
87.It Li edge
88Configure the PMC to count the number of de-asserted to asserted
89transitions of the conditions expressed by the other qualifiers.
90If specified, the counter will increment only once whenever a
91condition becomes true, irrespective of the number of clocks during
92which the condition remains true.
93.It Li inv
94Invert the sense of comparison when the
95.Dq Li cmask
96qualifier is present, making the counter increment when the number of
97events per cycle is less than the value specified by the
98.Dq Li cmask
99qualifier.
100.It Li os
101Configure the PMC to count events happening at processor privilege
102level 0.
103.It Li usr
104Configure the PMC to count events occurring at privilege levels 1, 2
105or 3.
106.El
107.Pp
108If neither of the
109.Dq Li os
110or
111.Dq Li usr
112qualifiers are specified, the default is to enable both.
113.Pp
114Events that require core-specificity to be specified use a
115additional qualifier
116.Dq Li core= Ns Ar value ,
117where argument
118.Ar value
119is one of:
120.Bl -tag -width indent -compact
121.It Li all
122Measure event conditions on all cores.
123.It Li this
124Measure event conditions on this core.
125.El
126The default is
127.Dq Li this .
128.Pp
129Events that require an agent qualifier to be specified use an
130additional qualifier
131.Dq Li agent= Ns value ,
132where argument
133.Ar value
134is one of:
135.Bl -tag -width indent -compact
136.It Li this
137Measure events associated with this bus agent.
138.It Li any
139Measure events caused by any bus agent.
140.El
141The default is
142.Dq Li this .
143.Pp
144Events that require a hardware prefetch qualifier to be specified use an
145additional qualifier
146.Dq Li prefetch= Ns Ar value ,
147where argument
148.Ar value
149is one of:
150.Bl -tag -width "exclude" -compact
151.It Li both
152Include all prefetches.
153.It Li only
154Only count hardware prefetches.
155.It Li exclude
156Exclude hardware prefetches.
157.El
158The default is
159.Dq Li both .
160.Pp
161Events that require a cache coherence qualifier to be specified use an
162additional qualifier
163.Dq Li cachestate= Ns Ar value ,
164where argument
165.Ar value
166contains one or more of the following letters:
167.Bl -tag -width indent -compact
168.It Li e
169Count cache lines in the exclusive state.
170.It Li i
171Count cache lines in the invalid state.
172.It Li m
173Count cache lines in the modified state.
174.It Li s
175Count cache lines in the shared state.
176.El
177The default is
178.Dq Li eims .
179.Ss Event Specifiers
180The following event names are case insensitive.
181Whitespace, hyphens and underscore characters in these names are
182ignored.
183.Pp
184Core PMCs support the following events:
185.Bl -tag -width indent
186.It Li BAClears
187.Pq Event E6H , Umask 00H
188The number of BAClear conditions asserted.
189.It Li BTB_Misses
190.Pq Event E2H , Umask 00H
191The number of branches for which the branch table buffer did not
192produce a prediction.
193.It Li Br_BAC_Missp_Exec
194.Pq Event 8AH , Umask 00H
195The number of branch instructions executed that were mispredicted at
196the front end.
197.It Li Br_Bogus
198.Pq Event E4H , Umask 00H
199The number of bogus branches.
200.It Li Br_Call_Exec
201.Pq Event 92H , Umask 00H
202The number of
203.Li CALL
204instructions executed.
205.It Li Br_Call_Missp_Exec
206.Pq Event 93H , Umask 00H
207The number of
208.Li CALL
209instructions executed that were mispredicted.
210.It Li Br_Cnd_Exec
211.Pq Event 8BH , Umask 00H
212The number of conditional branch instructions executed.
213.It Li Br_Cnd_Missp_Exec
214.Pq Event 8CH , Umask 00H
215The number of conditional branch instructions executed that were mispredicted.
216.It Li Br_Ind_Call_Exec
217.Pq Event 94H , Umask 00H
218The number of indirect
219.Li CALL
220instructions executed.
221.It Li Br_Ind_Exec
222.Pq Event 8DH , Umask 00H
223The number of indirect branches executed.
224.It Li Br_Ind_Missp_Exec
225.Pq Event 8EH , Umask 00H
226The number of indirect branch instructions executed that were mispredicted.
227.It Li Br_Inst_Exec
228.Pq Event 88H , Umask 00H
229The number of branch instructions executed including speculative branches.
230.It Li Br_Instr_Decoded
231.Pq Event E0H , Umask 00H
232The number of branch instructions decoded.
233.It Li Br_Instr_Ret
234.Pq Event C4H , Umask 00H
235.Pq Alias Qq "Branch Instruction Retired"
236The number of branch instructions retired.
237This is an architectural performance event.
238.It Li Br_MisPred_Ret
239.Pq Event C5H , Umask 00H
240.Pq Alias Qq "Branch Misses Retired"
241The number of mispredicted branch instructions retired.
242This is an architectural performance event.
243.It Li Br_MisPred_Taken_Ret
244.Pq Event CAH , Umask 00H
245The number of taken and mispredicted branches retired.
246.It Li Br_Missp_Exec
247.Pq Event 89H , Umask 00H
248The number of branch instructions executed and mispredicted at
249execution including branches that were not predicted.
250.It Li Br_Ret_BAC_Missp_Exec
251.Pq Event 91H , Umask 00H
252The number of return branch instructions that were mispredicted at the
253front end.
254.It Li Br_Ret_Exec
255.Pq Event 8FH , Umask 00H
256The number of return branch instructions executed.
257.It Li Br_Ret_Missp_Exec
258.Pq Event 90H , Umask 00H
259The number of return branch instructions executed that were mispredicted.
260.It Li Br_Taken_Ret
261.Pq Event C9H , Umask 00H
262The number of taken branches retired.
263.It Li Bus_BNR_Clocks
264.Pq Event 61H , Umask 00H
265The number of external bus cycles while BNR (bus not ready) was asserted.
266.It Li Bus_DRDY_Clocks Op ,agent= Ns Ar agent
267.Pq Event 62H , Umask 00H
268The number of external bus cycles while DRDY was asserted.
269.It Li Bus_Data_Rcv
270.Pq Event 64H , Umask 40H
271.\" XXX Using the description in Core2 PMC documentation.
272The number of cycles during which the processor is busy receiving data.
273.It Li Bus_Locks_Clocks Op ,core= Ns Ar core
274.Pq Event 63H
275The number of external bus cycles while the bus lock signal was asserted.
276.It Li Bus_Not_In_Use Op ,core= Ns Ar core
277.Pq Event 7DH
278The number of cycles when there is no transaction from the core.
279.It Li Bus_Req_Outstanding Xo
280.Op ,agent= Ns Ar agent
281.Op ,core= Ns Ar core
282.Xc
283.Pq Event 60H
284The weighted cycles of cacheable bus data read requests
285from the data cache unit or hardware prefetcher.
286.It Li Bus_Snoop_Stall
287.Pq Event 7EH , Umask 00H
288The number bus cycles while a bus snoop is stalled.
289.It Li Bus_Snoops Xo
290.Op ,agent= Ns Ar agent
291.Op ,cachestate= Ns Ar mesi
292.Xc
293.Pq Event 77H
294.\" XXX Using the description in Core2 PMC documentation.
295The number of snoop responses to bus transactions.
296.It Li Bus_Trans_Any Op ,agent= Ns Ar agent
297.Pq Event 70H
298The number of completed bus transactions.
299.It Li Bus_Trans_Brd Op ,core= Ns Ar core
300.Pq Event 65H
301The number of read bus transactions.
302.It Li Bus_Trans_Burst Op ,agent= Ns Ar agent
303.Pq Event 6EH
304The number of completed burst transactions.
305Retried transactions may be counted more than once.
306.It Li Bus_Trans_Def Op ,core= Ns Ar core
307.Pq Event 6DH
308The number of completed deferred transactions.
309.It Li Bus_Trans_IO Xo
310.Op ,agent= Ns Ar agent
311.Op ,core= Ns Ar core
312.Xc
313.Pq Event 6CH
314The number of completed I/O transactions counting both reads and
315writes.
316.It Li Bus_Trans_Ifetch Xo
317.Op ,agent= Ns Ar agent
318.Op ,core= Ns Ar core
319.Xc
320.Pq Event 68H
321Completed instruction fetch transactions.
322.It Li Bus_Trans_Inval Xo
323.Op ,agent= Ns Ar agent
324.Op ,core= Ns Ar core
325.Xc
326.Pq Event 69H
327The number completed invalidate transactions.
328.It Li Bus_Trans_Mem Op ,agent= Ns Ar agent
329.Pq Event 6FH
330The number of completed memory transactions.
331.It Li Bus_Trans_P Xo
332.Op ,agent= Ns Ar agent
333.Op ,core= Ns Ar core
334.Xc
335.Pq Event 6BH
336The number of completed partial transactions.
337.It Li Bus_Trans_Pwr Xo
338.Op ,agent= Ns Ar agent
339.Op ,core= Ns Ar core
340.Xc
341.Pq Event 6AH
342The number of completed partial write transactions.
343.It Li Bus_Trans_RFO Xo
344.Op ,agent= Ns Ar agent
345.Op ,core= Ns Ar core
346.Xc
347.Pq Event 66H
348The number of completed read-for-ownership transactions.
349.It Li Bus_Trans_WB Op ,agent= Ns Ar agent
350.Pq Event 67H
351The number of completed write-back transactions from the data cache
352unit, excluding L2 write-backs.
353.It Li Cycles_Div_Busy
354.Pq Event 14H , Umask 00H
355The number of cycles the divider is busy.
356The event is only available on PMC0.
357.It Li Cycles_Int_Masked
358.Pq Event C6H , Umask 00H
359The number of cycles while interrupts were disabled.
360.It Li Cycles_Int_Pending_Masked
361.Pq Event C7H , Umask 00H
362The number of cycles while interrupts were disabled and interrupts
363were pending.
364.It Li DCU_Snoop_To_Share Op ,core= Ns core
365.Pq Event 78H
366The number of data cache unit snoops to L1 cache lines in the shared
367state.
368.It Li DCache_Cache_Lock Op ,cachestate= Ns Ar mesi
369.\" XXX needs clarification
370.Pq Event 42H
371The number of cacheable locked read operations to invalid state.
372.It Li DCache_Cache_LD Op ,cachestate= Ns Ar mesi
373.Pq Event 40H
374The number of cacheable L1 data read operations.
375.It Li DCache_Cache_ST Op ,cachestate= Ns Ar mesi
376.Pq Event 41H
377The number cacheable L1 data write operations.
378.It Li DCache_M_Evict
379.Pq Event 47H , Umask 00H
380The number of M state data cache lines that were evicted.
381.It Li DCache_M_Repl
382.Pq Event 46H , Umask 00H
383The number of M state data cache lines that were allocated.
384.It Li DCache_Pend_Miss
385.Pq Event 48H , Umask 00H
386The weighted cycles an L1 miss was outstanding.
387.It Li DCache_Repl
388.Pq Event 45H , Umask 0FH
389The number of data cache line replacements.
390.It Li Data_Mem_Cache_Ref
391.Pq Event 44H , Umask 02H
392The number of cacheable read and write operations to L1 data cache.
393.It Li Data_Mem_Ref
394.Pq Event 43H , Umask 01H
395The number of L1 data reads and writes, both cacheable and
396un-cacheable.
397.It Li Dbus_Busy Op ,core= Ns Ar core
398.Pq Event 22H
399The number of core cycles during which the data bus was busy.
400.It Li Dbus_Busy_Rd Op ,core= Ns Ar core
401.Pq Event 23H
402The number of cycles during which the data bus was busy transferring
403data to a core.
404.It Li Div
405.Pq Event 13H , Umask 00H
406The number of divide operations including speculative operations for
407integer and floating point divides.
408This event can only be counted on PMC1.
409.It Li Dtlb_Miss
410.Pq Event 49H , Umask 00H
411The number of data references that missed the TLB.
412.It Li ESP_Uops
413.Pq Event D7H , Umask 00H
414The number of ESP folding instructions decoded.
415.It Li EST_Trans Op ,trans= Ns Ar transition
416.Pq Event 3AH
417Count the number of Intel Enhanced SpeedStep transitions.
418The argument
419.Ar transition
420can be one of the following values:
421.Bl -tag -width indent -compact
422.It Li any
423(Umask 00H) Count all transitions.
424.It Li frequency
425(Umask 01H) Count frequency transitions.
426.El
427The default is
428.Dq Li any .
429.It Li FP_Assist
430.Pq Event 11H , Umask 00H
431The number of floating point operations that required microcode
432assists.
433The event is only available on PMC1.
434.It Li FP_Comp_Instr_Ret
435.Pq Event C1H , Umask 00H
436The number of X87 floating point compute instructions retired.
437The event is only available on PMC0.
438.It Li FP_Comps_Op_Exe
439.Pq Event 10H , Umask 00H
440The number of floating point computational instructions executed.
441.It Li FP_MMX_Trans
442.Pq Event CCH , Umask 01H
443The number of transitions from X87 to MMX.
444.It Li Fused_Ld_Uops_Ret
445.Pq Event DAH , Umask 01H
446The number of fused load uops retired.
447.It Li Fused_St_Uops_Ret
448.Pq Event DAH , Umask 02H
449The number of fused store uops retired.
450.It Li Fused_Uops_Ret
451.Pq Event DAH , Umask 00H
452The number of fused uops retired.
453.It Li HW_Int_Rx
454.Pq Event C8H , Umask 00H
455The number of hardware interrupts received.
456.It Li ICache_Misses
457.Pq Event 81H , Umask 00H
458The number of instruction fetch misses in the instruction cache and
459streaming buffers.
460.It Li ICache_Reads
461.Pq Event 80H , Umask 00H
462The number of instruction fetches from the instruction cache and
463streaming buffers counting both cacheable and un-cacheable fetches.
464.It Li IFU_Mem_Stall
465.Pq Event 86H , Umask 00H
466The number of cycles the instruction fetch unit was stalled while
467waiting for data from memory.
468.It Li ILD_Stall
469.Pq Event 87H , Umask 00H
470The number of instruction length decoder stalls.
471.It Li ITLB_Misses
472.Pq Event 85H , Umask 00H
473The number of instruction TLB misses.
474.It Li Instr_Decoded
475.Pq Event D0H , Umask 00H
476The number of instructions decoded.
477.It Li Instr_Ret
478.Pq Event C0H , Umask 00H
479.Pq Alias Qq "Instruction Retired"
480The number of instructions retired.
481This is an architectural performance event.
482.It Li L1_Pref_Req
483.Pq Event 4FH , Umask 00H
484The number of L1 prefetch request due to data cache misses.
485.It Li L2_ADS Op ,core= Ns core
486.Pq Event 21H
487The number of L2 address strobes.
488.It Li L2_IFetch Xo
489.Op ,cachestate= Ns Ar mesi
490.Op ,core= Ns Ar core
491.Xc
492.Pq Event 28H
493The number of instruction fetches by the instruction fetch unit from
494L2 cache including speculative fetches.
495.It Li L2_LD Xo
496.Op ,cachestate= Ns Ar mesi
497.Op ,core= Ns Ar core
498.Xc
499.Pq Event 29H
500The number of L2 cache reads.
501.It Li L2_Lines_In Xo
502.Op ,core= Ns Ar core
503.Op ,prefetch= Ns Ar prefetch
504.Xc
505.Pq Event 24H
506The number of L2 cache lines allocated.
507.It Li L2_Lines_Out Xo
508.Op ,core= Ns Ar core
509.Op ,prefetch= Ns Ar prefetch
510.Xc
511.Pq Event 26H
512The number of L2 cache lines evicted.
513.It Li L2_M_Lines_In Op ,core= Ns Ar core
514.Pq Event 25H
515The number of L2 M state cache lines allocated.
516.It Li L2_M_Lines_Out Xo
517.Op ,core= Ns Ar core
518.Op ,prefetch= Ns Ar prefetch
519.Xc
520.Pq Event 27H
521The number of L2 M state cache lines evicted.
522.It Li L2_No_Request_Cycles Xo
523.Op ,cachestate= Ns Ar mesi
524.Op ,core= Ns Ar core
525.Op ,prefetch= Ns Ar prefetch
526.Xc
527.Pq Event 32H
528The number of cycles there was no request to access L2 cache.
529.It Li L2_Reject_Cycles Xo
530.Op ,cachestate= Ns Ar mesi
531.Op ,core= Ns Ar core
532.Op ,prefetch= Ns Ar prefetch
533.Xc
534.Pq Event 30H
535The number of cycles the L2 cache was busy and rejecting new requests.
536.It Li L2_Rqsts Xo
537.Op ,cachestate= Ns Ar mesi
538.Op ,core= Ns Ar core
539.Op ,prefetch= Ns Ar prefetch
540.Xc
541.Pq Event 2EH
542The number of L2 cache requests.
543.It Li L2_ST Xo
544.Op ,cachestate= Ns Ar mesi
545.Op ,core= Ns Ar core
546.Xc
547.Pq Event 2AH
548The number of L2 cache writes including speculative writes.
549.It Li LD_Blocks
550.Pq Event 03H , Umask 00H
551The number of load operations delayed due to store buffer blocks.
552.It Li LLC_Misses
553.Pq Event 2EH , Umask 41H
554The number of cache misses for references to the last level cache,
555excluding misses due to hardware prefetches.
556This is an architectural performance event.
557.It Li LLC_Reference
558The number of references to the last level cache,
559excluding those due to hardware prefetches.
560This is an architectural performance event.
561.Pq Event 2EH , Umask 4FH
562This is an architectural performance event.
563.It Li MMX_Assist
564.Pq Event CDH , Umask 00H
565The number of EMMX instructions executed.
566.It Li MMX_FP_Trans
567.Pq Event CCH , Umask 00H
568The number of transitions from MMX to X87.
569.It Li MMX_Instr_Exec
570.Pq Event B0H , Umask 00H
571The number of MMX instructions executed excluding
572.Li MOVQ
573and
574.Li MOVD
575stores.
576.It Li MMX_Instr_Ret
577.Pq Event CEH , Umask 00H
578The number of MMX instructions retired.
579.It Li Misalign_Mem_Ref
580.Pq Event 05H , Umask 00H
581The number of misaligned data memory references, counting loads and
582stores.
583.It Li Mul
584.Pq Event 12H , Umask 00H
585The number of multiply operations include speculative floating point
586and integer multiplies.
587This event is available on PMC1 only.
588.It Li NonHlt_Ref_Cycles
589.Pq Event 3CH , Umask 01H
590.Pq Alias Qq "Unhalted Reference Cycles"
591The number of non-halted bus cycles.
592This is an architectural performance event.
593.It Li Pref_Rqsts_Dn
594.Pq Event F8H , Umask 00H
595The number of hardware prefetch requests issued in backward streams.
596.It Li Pref_Rqsts_Up
597.Pq Event F0H , Umask 00H
598The number of hardware prefetch requests issued in forward streams.
599.It Li Resource_Stall
600.Pq Event A2H , Umask 00H
601The number of cycles where there is a resource related stall.
602.It Li SD_Drains
603.Pq Event 04H , Umask 00H
604The number of cycles while draining store buffers.
605.It Li SIMD_FP_DP_P_Ret
606.Pq Event D8H , Umask 02H
607The number of SSE/SSE2 packed double precision instructions retired.
608.It Li SIMD_FP_DP_P_Comp_Ret
609.Pq Event D9H , Umask 02H
610The number of SSE/SSE2 packed double precision compute instructions
611retired.
612.It Li SIMD_FP_DP_S_Ret
613.Pq Event D8H , Umask 03H
614The number of SSE/SSE2 scalar double precision instructions retired.
615.It Li SIMD_FP_DP_S_Comp_Ret
616.Pq Event D9H , Umask 03H
617The number of SSE/SSE2 scalar double precision compute instructions
618retired.
619.It Li SIMD_FP_SP_P_Comp_Ret
620.Pq Event D9H , Umask 00H
621The number of SSE/SSE2 packed single precision compute instructions
622retired.
623.It Li SIMD_FP_SP_Ret
624.Pq Event D8H , Umask 00H
625The number of SSE/SSE2 scalar single precision instructions retired,
626both packed and scalar.
627.It Li SIMD_FP_SP_S_Ret
628.Pq Event D8H , Umask 01H
629The number of SSE/SSE2 scalar single precision instructions retired.
630.It Li SIMD_FP_SP_S_Comp_Ret
631.Pq Event D9H , Umask 01H
632The number of SSE/SSE2 single precision compute instructions retired.
633.It Li SIMD_Int_128_Ret
634.Pq Event D8H , Umask 04H
635The number of SSE2 128-bit integer instructions retired.
636.It Li SIMD_Int_Pari_Exec
637.Pq Event B3H , Umask 20H
638The number of SIMD integer packed arithmetic instructions executed.
639.It Li SIMD_Int_Pck_Exec
640.Pq Event B3H , Umask 04H
641The number of SIMD integer pack operations instructions executed.
642.It Li SIMD_Int_Plog_Exec
643.Pq Event B3H , Umask 10H
644The number of SIMD integer packed logical instructions executed.
645.It Li SIMD_Int_Pmul_Exec
646.Pq Event B3H , Umask 01H
647The number of SIMD integer packed multiply instructions executed.
648.It Li SIMD_Int_Psft_Exec
649.Pq Event B3H , Umask 02H
650The number of SIMD integer packed shift instructions executed.
651.It Li SIMD_Int_Sat_Exec
652.Pq Event B1H , Umask 00H
653The number of SIMD integer saturating instructions executed.
654.It Li SIMD_Int_Upck_Exec
655.Pq Event B3H , Umask 08H
656The number of SIMD integer unpack instructions executed.
657.It Li SMC_Detected
658.Pq Event C3H , Umask 00H
659The number of times self-modifying code was detected.
660.It Li SSE_NTStores_Miss
661.Pq Event 4BH , Umask 03H
662The number of times an SSE streaming store instruction missed all caches.
663.It Li SSE_NTStores_Ret
664.Pq Event 07H , Umask 03H
665The number of SSE streaming store instructions executed.
666.It Li SSE_PrefNta_Miss
667.Pq Event 4BH , Umask 00H
668The number of times
669.Li PREFETCHNTA
670missed all caches.
671.It Li SSE_PrefNta_Ret
672.Pq Event 07H , Umask 00H
673The number of
674.Li PREFETCHNTA
675instructions retired.
676.It Li SSE_PrefT1_Miss
677.Pq Event 4BH , Umask 01H
678The number of times
679.Li PREFETCHT1
680missed all caches.
681.It Li SSE_PrefT1_Ret
682.Pq Event 07H , Umask 01H
683The number of
684.Li PREFETCHT1
685instructions retired.
686.It Li SSE_PrefT2_Miss
687.Pq Event 4BH , Umask 02H
688The number of times
689.Li PREFETCHNT2
690missed all caches.
691.It Li SSE_PrefT2_Ret
692.Pq Event 07H , Umask 02H
693The number of
694.Li PREFETCHT2
695instructions retired.
696.It Li Seg_Reg_Loads
697.Pq Event 06H , Umask 00H
698The number of segment register loads.
699.It Li Serial_Execution_Cycles
700.Pq Event 3CH , Umask 02H
701The number of non-halted bus cycles of this code while the other core
702was halted.
703.It Li Thermal_Trip
704.Pq Event 3BH , Umask C0H
705The duration in a thermal trip based on the current core clock.
706.It Li Unfusion
707.Pq Event DBH , Umask 00H
708The number of unfusion events.
709.It Li Unhalted_Core_Cycles
710.Pq Event 3CH , Umask 00H
711The number of core clock cycles when the clock signal on a specific
712core is not halted.
713This is an architectural performance event.
714.It Li Uops_Ret
715.Pq Event C2H , Umask 00H
716The number of micro-ops retired.
717.El
718.Ss Event Name Aliases
719The following table shows the mapping between the PMC-independent
720aliases supported by
721.Lb libpmc
722and the underlying hardware events used.
723.Bl -column "branch-mispredicts" "Description"
724.It Em Alias Ta Em Event
725.It Li branches Ta Li Br_Instr_Ret
726.It Li branch-mispredicts Ta Li Br_MisPred_Ret
727.It Li dc-misses Ta (unsupported)
728.It Li ic-misses Ta Li ICache_Misses
729.It Li instructions Ta Li Instr_Ret
730.It Li interrupts Ta Li HW_Int_Rx
731.It Li unhalted-cycles Ta (unsupported)
732.El
733.Sh PROCESSOR ERRATA
734The following errata affect performance measurement on these
735processors.
736These errata are documented in
737.Rs
738.%B Specification Update
739.%T Intel\(rg CoreTM Duo Processor and Intel\(rg CoreTM Solo Processor on 65 nm Process
740.%N Order Number 309222-017
741.%D July 2008
742.%Q Intel Corporation
743.Re
744.Bl -tag -width indent -compact
745.It AE19
746Data prefetch performance monitoring events can only be enabled
747on a single core.
748.It AE25
749Performance monitoring counters that count external bus events
750may report incorrect values after processor power state transitions.
751.It AE28
752Performance monitoring events for retired floating point operations
753(C1H) may not be accurate.
754.It AE29
755DR3 address match on MOVD/MOVQ/MOVNTQ memory store
756instruction may incorrectly increment performance monitoring count
757for saturating SIMD instructions retired (Event CFH).
758.It AE33
759Hardware prefetch performance monitoring events may be counted
760inaccurately.
761.It AE36
762The
763.Li CPU_CLK_UNHALTED
764performance monitoring event (Event 3CH) counts
765clocks when the processor is in the C1/C2 processor power states.
766.It AE39
767Certain performance monitoring counters related to bus, L2 cache
768and power management are inaccurate.
769.It AE51
770Performance monitoring events for retired instructions (Event C0H) may
771not be accurate.
772.It AE67
773Performance monitoring event
774.Li FP_ASSIST
775may not be accurate.
776.It AE78
777Performance monitoring event for hardware prefetch requests (Event
7784EH) and hardware prefetch request cache misses (Event 4FH) may not be
779accurate.
780.It AE82
781Performance monitoring event
782.Li FP_MMX_TRANS_TO_MMX
783may not count some transitions.
784.El
785.Sh SEE ALSO
786.Xr pmc 3 ,
787.Xr pmc.atom 3 ,
788.Xr pmc.core2 3 ,
789.Xr pmc.iaf 3 ,
790.Xr pmc.k7 3 ,
791.Xr pmc.k8 3 ,
792.Xr pmc.p4 3 ,
793.Xr pmc.p5 3 ,
794.Xr pmc.p6 3 ,
795.Xr pmc.soft 3 ,
796.Xr pmc.tsc 3 ,
797.Xr pmclog 3 ,
798.Xr hwpmc 4
799.Sh HISTORY
800The
801.Nm pmc
802library first appeared in
803.Fx 6.0 .
804.Sh AUTHORS
805The
806.Lb libpmc
807library was written by
808.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org .
809