xref: /freebsd/lib/libpmc/pmc.3 (revision c89d1cf588181f28eca0db0e6c9ac62470b19d8e)
1c89d1cf5SJoseph Koshy.\" Copyright (c) 2003-2007 Joseph Koshy.  All rights reserved.
2ebccf1e3SJoseph Koshy.\"
3ebccf1e3SJoseph Koshy.\" Redistribution and use in source and binary forms, with or without
4ebccf1e3SJoseph Koshy.\" modification, are permitted provided that the following conditions
5ebccf1e3SJoseph Koshy.\" are met:
6ebccf1e3SJoseph Koshy.\" 1. Redistributions of source code must retain the above copyright
7ebccf1e3SJoseph Koshy.\"    notice, this list of conditions and the following disclaimer.
8ebccf1e3SJoseph Koshy.\" 2. Redistributions in binary form must reproduce the above copyright
9ebccf1e3SJoseph Koshy.\"    notice, this list of conditions and the following disclaimer in the
10ebccf1e3SJoseph Koshy.\"    documentation and/or other materials provided with the distribution.
11ebccf1e3SJoseph Koshy.\"
12ebccf1e3SJoseph Koshy.\" This software is provided by Joseph Koshy ``as is'' and
13ebccf1e3SJoseph Koshy.\" any express or implied warranties, including, but not limited to, the
14ebccf1e3SJoseph Koshy.\" implied warranties of merchantability and fitness for a particular purpose
15ebccf1e3SJoseph Koshy.\" are disclaimed.  in no event shall Joseph Koshy be liable
16ebccf1e3SJoseph Koshy.\" for any direct, indirect, incidental, special, exemplary, or consequential
17ebccf1e3SJoseph Koshy.\" damages (including, but not limited to, procurement of substitute goods
18ebccf1e3SJoseph Koshy.\" or services; loss of use, data, or profits; or business interruption)
19ebccf1e3SJoseph Koshy.\" however caused and on any theory of liability, whether in contract, strict
20ebccf1e3SJoseph Koshy.\" liability, or tort (including negligence or otherwise) arising in any way
21ebccf1e3SJoseph Koshy.\" out of the use of this software, even if advised of the possibility of
22ebccf1e3SJoseph Koshy.\" such damage.
23ebccf1e3SJoseph Koshy.\"
24ebccf1e3SJoseph Koshy.\" $FreeBSD$
25ebccf1e3SJoseph Koshy.\"
26c89d1cf5SJoseph Koshy.Dd November 25, 2007
27ebccf1e3SJoseph Koshy.Os
28ebccf1e3SJoseph Koshy.Dt PMC 3
29ebccf1e3SJoseph Koshy.Sh NAME
30c89d1cf5SJoseph Koshy.Nm pmc
31c89d1cf5SJoseph Koshy.Nd library for accessing hardware performance monitoring counters
32ebccf1e3SJoseph Koshy.Sh LIBRARY
33ebccf1e3SJoseph Koshy.Lb libpmc
34ebccf1e3SJoseph Koshy.Sh SYNOPSIS
35ebccf1e3SJoseph Koshy.In pmc.h
36ebccf1e3SJoseph Koshy.Sh DESCRIPTION
37ebccf1e3SJoseph KoshyThe
38c89d1cf5SJoseph Koshy.Lb libpmc
39c89d1cf5SJoseph Koshyprovides a programming interface that allows applications to use
40c89d1cf5SJoseph Koshyhardware performance counters to gather performance data about
41c89d1cf5SJoseph Koshyspecific processes or for the system as a whole.
42c89d1cf5SJoseph KoshyThe library is implemented using the lower-level facilities offered by
43c89d1cf5SJoseph Koshythe
44ebccf1e3SJoseph Koshy.Xr hwpmc 4
45c89d1cf5SJoseph Koshydriver.
46c89d1cf5SJoseph Koshy.Ss Key Concepts
47c89d1cf5SJoseph KoshyPerformance monitoring counters (PMCs) are represented by the library
48c89d1cf5SJoseph Koshyusing a software abstraction.
49c89d1cf5SJoseph KoshyThese
50c89d1cf5SJoseph Koshy.Dq abstract
51c89d1cf5SJoseph KoshyPMCs can have one two scopes:
52c89d1cf5SJoseph Koshy.Bl -bullet
53c89d1cf5SJoseph Koshy.It
54c89d1cf5SJoseph KoshySystem scope.
55c89d1cf5SJoseph KoshyThese PMCs measure events in a whole-system manner, i.e., independent
56c89d1cf5SJoseph Koshyof the currently executing thread.
57c89d1cf5SJoseph KoshySystem scope PMCs are allocated on specific CPUs and do not
58c89d1cf5SJoseph Koshymigrate between CPUs.
59c89d1cf5SJoseph KoshyNon-privileged process are allowed to allocate system scope PMCs if the
60c89d1cf5SJoseph Koshy.Xr hwpmc 4
61c89d1cf5SJoseph Koshysysctl tunable:
62c89d1cf5SJoseph Koshy.Va security.bsd.unprivileged_syspmcs
63c89d1cf5SJoseph Koshyis non-zero.
64c89d1cf5SJoseph Koshy.It
65c89d1cf5SJoseph KoshyProcess scope.
66c89d1cf5SJoseph KoshyThese PMCs only measure hardware events when the processes they are
67c89d1cf5SJoseph Koshyattached to are executing on a CPU.
68c89d1cf5SJoseph KoshyIn an SMP system, process scope PMCs migrate between CPUs along with
69c89d1cf5SJoseph Koshytheir target processes.
70c89d1cf5SJoseph Koshy.El
71ebccf1e3SJoseph Koshy.Pp
72c89d1cf5SJoseph KoshyOrthogonal to PMC scope, PMCs may be allocated in one of two
73c89d1cf5SJoseph Koshyoperational modes:
74c89d1cf5SJoseph Koshy.Bl -bullet
75c89d1cf5SJoseph Koshy.It
76c89d1cf5SJoseph KoshyCounting PMCs measure events according to their scope
77c89d1cf5SJoseph Koshy(system or process).
78c89d1cf5SJoseph KoshyThe application needs to explicitly read these counters
79c89d1cf5SJoseph Koshyto retrieve their value.
80c89d1cf5SJoseph Koshy.It
81c89d1cf5SJoseph KoshySampling PMCs cause the CPU to be periodically interrupted
82c89d1cf5SJoseph Koshyand information about its state of execution to be collected.
83c89d1cf5SJoseph KoshySampling PMCs are used to profile specific processes and kernel
84c89d1cf5SJoseph Koshythreads or to profile the system as a whole.
85c89d1cf5SJoseph Koshy.El
86c89d1cf5SJoseph Koshy.Pp
87c89d1cf5SJoseph KoshyThe scope and operational mode for a software PMC are specified at
88c89d1cf5SJoseph KoshyPMC allocation time.
89c89d1cf5SJoseph KoshyAn application is allowed to allocate multiple PMCs subject
90c89d1cf5SJoseph Koshyto availability of hardware resources.
91c89d1cf5SJoseph Koshy.Pp
92c89d1cf5SJoseph KoshyThe library uses human-readable strings to name the event being
93c89d1cf5SJoseph Koshymeasured by hardware.
94c89d1cf5SJoseph KoshyThe syntax used for specifying a hardware event along with additional
95c89d1cf5SJoseph Koshyevent specific qualifiers (if any) is described in detail in section
96ebccf1e3SJoseph Koshy.Sx "EVENT SPECIFIERS"
97ebccf1e3SJoseph Koshybelow.
98ebccf1e3SJoseph Koshy.Pp
99c89d1cf5SJoseph KoshyPMCs are associated with the process that allocated them and
100c89d1cf5SJoseph Koshywill be automatically reclaimed by the system when the process exits.
101c89d1cf5SJoseph KoshyAdditionally, process-scope PMCs have to be attached to one or more
102c89d1cf5SJoseph Koshytarget processes before they can perform measurements.
103c89d1cf5SJoseph KoshyA process-scope PMC may be attached to those target processes
104c89d1cf5SJoseph Koshythat its owner process would otherwise be permitted to debug.
105c89d1cf5SJoseph KoshyAn owner process may attach PMCs to itself allowing
106c89d1cf5SJoseph Koshyit to measure its own behavior.
107c89d1cf5SJoseph KoshyAdditionally, on some machine architectures, such self-attached PMCs
108c89d1cf5SJoseph Koshymay be read cheaply using specialized instructions supported by the
109c89d1cf5SJoseph Koshyprocessor.
110ebccf1e3SJoseph Koshy.Pp
111c89d1cf5SJoseph KoshyCertain kinds of PMCs require that a log file be configured before
112c89d1cf5SJoseph Koshythey may be started.
113c89d1cf5SJoseph KoshyThese include:
114c89d1cf5SJoseph Koshy.Bl -bullet -compact
115c89d1cf5SJoseph Koshy.It
116c89d1cf5SJoseph KoshySystem scope sampling PMCs.
117c89d1cf5SJoseph Koshy.It
118c89d1cf5SJoseph KoshyProcess scope sampling PMCs.
119c89d1cf5SJoseph Koshy.It
120c89d1cf5SJoseph KoshyProcess scope counting PMCs that have been configured to report PMC
121c89d1cf5SJoseph Koshyreadings on process context switches or process exits.
122c89d1cf5SJoseph Koshy.El
123c89d1cf5SJoseph KoshyUpto one log file may be configured per owner process.
124c89d1cf5SJoseph KoshyEvents logged to a log file may be subsequently analyzed using the
125c89d1cf5SJoseph Koshy.Xr pmclog 3
126c89d1cf5SJoseph Koshyfamily of functions.
127c89d1cf5SJoseph Koshy.Ss Supported CPUs
128c89d1cf5SJoseph KoshyThe CPUs known to the PMC library are named by the
129c89d1cf5SJoseph Koshy.Vt "enum pmc_cputype"
130c89d1cf5SJoseph Koshyenumeration.
131c89d1cf5SJoseph KoshySupported CPUs include:
132c89d1cf5SJoseph Koshy.Bl -tag -width PMC_CPU_INTEL_PIII -compact
133c89d1cf5SJoseph Koshy.It PMC_CPU_AMD_K7
134c89d1cf5SJoseph Koshy.Tn "AMD Athlon"
135c89d1cf5SJoseph KoshyCPUs.
136c89d1cf5SJoseph Koshy.It PMC_CPU_AMD_K8
137c89d1cf5SJoseph Koshy.Tn "AMD Athlon64"
138c89d1cf5SJoseph KoshyCPUs.
139c89d1cf5SJoseph Koshy.It PMC_CPU_INTEL_P6
140c89d1cf5SJoseph Koshy.Tn Intel
141c89d1cf5SJoseph Koshy.Tn "Pentium Pro"
142c89d1cf5SJoseph KoshyCPUs.
143c89d1cf5SJoseph Koshy.It PMC_CPU_INTEL_PII
144c89d1cf5SJoseph Koshy.Tn "Intel Pentium II"
145c89d1cf5SJoseph KoshyCPUs.
146c89d1cf5SJoseph Koshy.It PMC_CPU_INTEL_PIII
147c89d1cf5SJoseph Koshy.Tn "Intel Pentium III"
148c89d1cf5SJoseph KoshyCPUs.
149c89d1cf5SJoseph Koshy.It PMC_CPU_INTEL_PM
150c89d1cf5SJoseph Koshy.Tn "Intel Pentium M"
151c89d1cf5SJoseph KoshyCPUs.
152c89d1cf5SJoseph Koshy.It PMC_CPU_INTEL_PIV
153c89d1cf5SJoseph Koshy.Tn "Intel Pentium 4"
154c89d1cf5SJoseph KoshyCPUs.
155c89d1cf5SJoseph Koshy.El
156c89d1cf5SJoseph Koshy.Ss Supported PMCs
157c89d1cf5SJoseph KoshyPMC supported by this library are named by the
158c89d1cf5SJoseph Koshy.Vt enum pmc_class
159c89d1cf5SJoseph Koshyenumeration.
160c89d1cf5SJoseph KoshySupported PMC kinds include:
161c89d1cf5SJoseph Koshy.Bl -tag -width PMC_CLASS_TSC -compact
162c89d1cf5SJoseph Koshy.It PMC_CLASS_TSC
163c89d1cf5SJoseph KoshyThe timestamp counter on i386 and amd64 architecture CPUs.
164c89d1cf5SJoseph Koshy.It PMC_CLASS_K7
165c89d1cf5SJoseph KoshyProgrammable hardware counters present in
166c89d1cf5SJoseph Koshy.Tn "AMD Athlon"
167c89d1cf5SJoseph KoshyCPUs.
168c89d1cf5SJoseph Koshy.It PMC_CLASS_K8
169c89d1cf5SJoseph KoshyProgrammable hardware counters present in
170c89d1cf5SJoseph Koshy.Tn "AMD Athlon64"
171c89d1cf5SJoseph KoshyCPUs.
172c89d1cf5SJoseph Koshy.It PMC_CLASS_P6
173c89d1cf5SJoseph KoshyProgrammable hardware counters present in
174c89d1cf5SJoseph Koshy.Tn Intel
175c89d1cf5SJoseph Koshy.Tn "Pentium Pro" ,
176c89d1cf5SJoseph Koshy.Tn "Pentium II" ,
177c89d1cf5SJoseph Koshy.Tn "Pentium III" ,
178c89d1cf5SJoseph Koshy.Tn "Celeron" ,
179ebccf1e3SJoseph Koshyand
180c89d1cf5SJoseph Koshy.Tn "Pentium M"
181c89d1cf5SJoseph KoshyCPUs.
182c89d1cf5SJoseph Koshy.It PMC_CLASS_P4
183c89d1cf5SJoseph KoshyProgrammable hardware counters present in
184c89d1cf5SJoseph Koshy.Tn "Intel Pentium 4"
185c89d1cf5SJoseph KoshyCPUs.
186c89d1cf5SJoseph Koshy.El
187c89d1cf5SJoseph Koshy.Ss PMC Capabilities
188ebccf1e3SJoseph Koshy.Pp
189c89d1cf5SJoseph KoshyCapabilities of performance monitoring hardware are denoted using
190c89d1cf5SJoseph Koshythe
191c89d1cf5SJoseph Koshy.Vt "enum pmc_caps"
192c89d1cf5SJoseph Koshyenumeration.
193c89d1cf5SJoseph KoshySupported capabilities include:
194c89d1cf5SJoseph Koshy.Bl -tag -width "PMC_CAP_INTERRUPT" -compact
195c89d1cf5SJoseph Koshy.It PMC_CAP_EDGE
196c89d1cf5SJoseph KoshyThe ability to count negated to asserted transitions of the hardware
197c89d1cf5SJoseph Koshyconditions being probed for.
198c89d1cf5SJoseph Koshy.It PMC_CAP_INTERRUPT
199c89d1cf5SJoseph KoshyThe ability to interrupt the CPU.
200c89d1cf5SJoseph Koshy.It PMC_CAP_INVERT
201c89d1cf5SJoseph KoshyThe ability to invert the sense of the hardware conditions being
202c89d1cf5SJoseph Koshymeasured.
203c89d1cf5SJoseph Koshy.It PMC_CAP_READ
204c89d1cf5SJoseph KoshyPMC hardware allows the CPU to read performance counters.
205c89d1cf5SJoseph Koshy.It PMC_CAP_QUALIFIER
206c89d1cf5SJoseph KoshyThe hardware allows monitored to be further qualified in some
207c89d1cf5SJoseph Koshysystem dependent way.
208c89d1cf5SJoseph Koshy.It PMC_CAP_SYSTEM
209c89d1cf5SJoseph KoshyThe ability to restrict counting of hardware events to when the CPU is
210c89d1cf5SJoseph Koshyrunning privileged code.
211c89d1cf5SJoseph Koshy.It PMC_CAP_THRESHOLD
212c89d1cf5SJoseph KoshyThe ability to ignore simultaneous hardware events below a
213c89d1cf5SJoseph Koshyprogrammable threshold.
214c89d1cf5SJoseph Koshy.It PMC_CAP_USER
215c89d1cf5SJoseph KoshyThe ability to restrict counting of hardware events to those when the
216c89d1cf5SJoseph KoshyCPU is running unprivileged code.
217c89d1cf5SJoseph Koshy.It PMC_CAP_WRITE
218c89d1cf5SJoseph KoshyPMC hardware allows CPUs write to counters.
219c89d1cf5SJoseph Koshy.El
220c89d1cf5SJoseph Koshy.Ss Functional Grouping
221c89d1cf5SJoseph KoshyThis section contains a brief overview of the available functionality
222c89d1cf5SJoseph Koshyin the PMC library.
223c89d1cf5SJoseph KoshyEach function listed here is described further in its own manual page.
224c89d1cf5SJoseph Koshy.Bl -tag -width indent
225c89d1cf5SJoseph Koshy.It Administration
226c89d1cf5SJoseph Koshy.Bl -tag -compact
227c89d1cf5SJoseph Koshy.It Fn pmc_disable , Fn pmc_enable
228c89d1cf5SJoseph KoshyAdministratively disable (enable) specific performance monitoring
229c89d1cf5SJoseph Koshycounter hardware.
230c89d1cf5SJoseph KoshyCounters that are disabled will not be available to applications to
231c89d1cf5SJoseph Koshyuse.
232c89d1cf5SJoseph Koshy.El
233c89d1cf5SJoseph Koshy.It "Convenience Functions"
234c89d1cf5SJoseph Koshy.Bl -tag -compact
235c89d1cf5SJoseph Koshy.It Fn pmc_event_names_of_class
236c89d1cf5SJoseph KoshyReturns a list of event names supported by a given PMC type.
237c89d1cf5SJoseph Koshy.It Fn pmc_name_of_capability
238c89d1cf5SJoseph KoshyConvert a
239c89d1cf5SJoseph Koshy.Dv PMC_CAP_*
240c89d1cf5SJoseph Koshyflag to a human-readable string.
241c89d1cf5SJoseph Koshy.It Fn pmc_name_of_class
242c89d1cf5SJoseph KoshyConvert a
243c89d1cf5SJoseph Koshy.Dv PMC_CLASS_*
244c89d1cf5SJoseph Koshyconstant to a human-readable string.
245c89d1cf5SJoseph Koshy.It Fn pmc_name_of_cputype
246c89d1cf5SJoseph KoshyReturn a human-readable name for a CPU type.
247c89d1cf5SJoseph Koshy.It Fn pmc_name_of_disposition
248c89d1cf5SJoseph KoshyReturn a human-readable string describing a PMC's disposition.
249c89d1cf5SJoseph Koshy.It Fn pmc_name_of_event
250c89d1cf5SJoseph KoshyConvert a numeric event code to a human-readable string.
251c89d1cf5SJoseph Koshy.It Fn pmc_name_of_mode
252c89d1cf5SJoseph KoshyConvert a
253c89d1cf5SJoseph Koshy.Dv PMC_MODE_*
254c89d1cf5SJoseph Koshyconstant to a human-readable name.
255c89d1cf5SJoseph Koshy.It Fn pmc_name_of_state
256c89d1cf5SJoseph KoshyReturn a human-readable string describing a PMC's current state.
257c89d1cf5SJoseph Koshy.El
258c89d1cf5SJoseph Koshy.It "Library Initialization"
259c89d1cf5SJoseph Koshy.Bl -tag -compact
260c89d1cf5SJoseph Koshy.It Fn pmc_init
261c89d1cf5SJoseph KoshyInitialize the library.
262c89d1cf5SJoseph KoshyThis function must be called before any other library function.
263c89d1cf5SJoseph Koshy.El
264c89d1cf5SJoseph Koshy.It "Log File Handling"
265c89d1cf5SJoseph Koshy.Bl -tag -compact
266c89d1cf5SJoseph Koshy.It Fn pmc_configure_logfile
267c89d1cf5SJoseph KoshyConfigure a log file for
268c89d1cf5SJoseph Koshy.Xr hwpmc 4
269c89d1cf5SJoseph Koshyto write logged events to.
270c89d1cf5SJoseph Koshy.It Fn pmc_flush_logfile
271c89d1cf5SJoseph KoshyFlush all pending log data in
272c89d1cf5SJoseph Koshy.Xr hwpmc 4 Ns Ap s
273c89d1cf5SJoseph Koshybuffers.
274c89d1cf5SJoseph Koshy.It Fn pmc_writelog
275c89d1cf5SJoseph KoshyAppend arbitrary user data to the current log file.
276c89d1cf5SJoseph Koshy.El
277c89d1cf5SJoseph Koshy.It "PMC Management"
278c89d1cf5SJoseph Koshy.Bl -tag -compact
279c89d1cf5SJoseph Koshy.It Fn pmc_allocate , Fn pmc_release
280c89d1cf5SJoseph KoshyAllocate (free) a PMC.
281c89d1cf5SJoseph Koshy.It Fn pmc_attach , Fn pmc_detach
282c89d1cf5SJoseph KoshyAttach (detach) a process scope PMC to a target.
283c89d1cf5SJoseph Koshy.It Fn pmc_read , Fn pmc_write , Fn pmc_rw
284c89d1cf5SJoseph KoshyRead (write) a value from (to) a PMC.
285c89d1cf5SJoseph Koshy.It Fn pmc_start , Fn pmc_stop
286c89d1cf5SJoseph KoshyStart (stop) a software PMC.
287c89d1cf5SJoseph Koshy.It Fn pmc_set
288c89d1cf5SJoseph KoshySet the reload value for a sampling PMC.
289c89d1cf5SJoseph Koshy.El
290c89d1cf5SJoseph Koshy.It "Queries"
291c89d1cf5SJoseph Koshy.Bl -tag -compact
292c89d1cf5SJoseph Koshy.It Fn pmc_capabilities
293c89d1cf5SJoseph KoshyRetrieve the capabilities for a given PMC.
294c89d1cf5SJoseph Koshy.It Fn pmc_cpuinfo
295c89d1cf5SJoseph KoshyRetrieve information about the CPUs and PMC hardware present in the
296c89d1cf5SJoseph Koshysystem.
297c89d1cf5SJoseph Koshy.It Fn pmc_get_driver_stats
298c89d1cf5SJoseph KoshyRetrieve statistics maintained by
299c89d1cf5SJoseph Koshy.Xr hwpmc 4 .
300c89d1cf5SJoseph Koshy.It Fn pmc_ncpu
301c89d1cf5SJoseph KoshyDetermine the number of CPUs in the system.
302c89d1cf5SJoseph Koshy.It Fn pmc_npmc
303c89d1cf5SJoseph KoshyReturn the number of hardware PMCs present in a given CPU.
304c89d1cf5SJoseph Koshy.It Fn pmc_pmcinfo
305c89d1cf5SJoseph KoshyReturn information about the state of a given CPU's PMCs.
306c89d1cf5SJoseph Koshy.It Fn pmc_width
307c89d1cf5SJoseph KoshyDetermine the width of a hardware counter in bits.
308c89d1cf5SJoseph Koshy.El
309c89d1cf5SJoseph Koshy.It "x86 Architecture Specific API"
310c89d1cf5SJoseph Koshy.Bl -tag -compact
311c89d1cf5SJoseph Koshy.It Fn pmc_get_msr
312c89d1cf5SJoseph KoshyReturns the processor model specific register number
313c89d1cf5SJoseph Koshyassociated with
314c5153e19SJoseph Koshy.Fa pmc .
315c89d1cf5SJoseph KoshyApplications may then use the x86
316c89d1cf5SJoseph Koshy.Ic RDPMC
317c89d1cf5SJoseph Koshyinstruction to directly read the contents of the PMC.
318c89d1cf5SJoseph Koshy.El
319c89d1cf5SJoseph Koshy.El
3209abe909bSRuslan Ermilov.Ss Signal Handling Requirements
321ebccf1e3SJoseph KoshyApplications using PMCs are required to handle the following signals:
322c89d1cf5SJoseph Koshy.Bl -tag -width ".Dv SIGBUS"
3239abe909bSRuslan Ermilov.It Dv SIGBUS
324ebccf1e3SJoseph KoshyWhen the
325ebccf1e3SJoseph Koshy.Xr hwpmc 4
326ebccf1e3SJoseph Koshymodule is unloaded using
327ebccf1e3SJoseph Koshy.Xr kldunload 8 ,
328ebccf1e3SJoseph Koshyprocesses that have PMCs allocated to them will be sent a
3299abe909bSRuslan Ermilov.Dv SIGBUS
3309abe909bSRuslan Ermilovsignal.
3319abe909bSRuslan Ermilov.It Dv SIGIO
332f263522aSJoseph KoshyThe
333f263522aSJoseph Koshy.Xr hwpmc 4
3349abe909bSRuslan Ermilovdriver will send a PMC owning process a
3359abe909bSRuslan Ermilov.Dv SIGIO
3369abe909bSRuslan Ermilovsignal if:
337f263522aSJoseph Koshy.Bl -bullet
338f263522aSJoseph Koshy.It
339f263522aSJoseph KoshyIf any process-mode PMC allocated by it loses all its
340f263522aSJoseph Koshytarget processes.
341f263522aSJoseph Koshy.It
342f263522aSJoseph KoshyIf the driver encounters an error when writing log data to a
343f263522aSJoseph Koshyconfigured log file.
344f263522aSJoseph KoshyThis error may be retrieved by a subsequent call to
345f263522aSJoseph Koshy.Fn pmc_flush_logfile .
346f263522aSJoseph Koshy.El
347ebccf1e3SJoseph Koshy.El
348c89d1cf5SJoseph Koshy.Ss Typical Program Flow
349c89d1cf5SJoseph Koshy.Bl -enum
350c89d1cf5SJoseph Koshy.It
351c89d1cf5SJoseph KoshyAn application would first invoke function
352c89d1cf5SJoseph Koshy.Fn pmc_init
353c89d1cf5SJoseph Koshyto allow the library to initialize itself.
354c89d1cf5SJoseph Koshy.It
355c89d1cf5SJoseph KoshySignal handling would then be set up.
356c89d1cf5SJoseph Koshy.It
357c89d1cf5SJoseph KoshyNext the application would allocate the PMCs it desires using function
358c89d1cf5SJoseph Koshy.Fn pmc_allocate .
359c89d1cf5SJoseph Koshy.It
360c89d1cf5SJoseph KoshyInitial values for PMCs may be set using function
361c89d1cf5SJoseph Koshy.Fn pmc_set .
362c89d1cf5SJoseph Koshy.It
363c89d1cf5SJoseph KoshyIf a log file is necessary for the PMCs to work, it would
364c89d1cf5SJoseph Koshybe configured using function
365c89d1cf5SJoseph Koshy.Fn pmc_configure_logfile .
366c89d1cf5SJoseph Koshy.It
367c89d1cf5SJoseph KoshyProcess scope PMCs would then be attached to their target processes
368c89d1cf5SJoseph Koshyusing function
369c89d1cf5SJoseph Koshy.Fn pmc_attach .
370c89d1cf5SJoseph Koshy.It
371c89d1cf5SJoseph KoshyThe PMCs would then be started using function
372c89d1cf5SJoseph Koshy.Fn pmc_start .
373c89d1cf5SJoseph Koshy.It
374c89d1cf5SJoseph KoshyOnce started, the values of counting PMCs may be read using function
375c89d1cf5SJoseph Koshy.Fn pmc_start .
376c89d1cf5SJoseph KoshyFor PMCs that write events to the log file, this logged data would be
377c89d1cf5SJoseph Koshyread and parsed using the
378c89d1cf5SJoseph Koshy.Xr pmclog 3
379c89d1cf5SJoseph Koshyfamily of functions.
380c89d1cf5SJoseph Koshy.It
381c89d1cf5SJoseph KoshyPMCs are stopped using function
382c89d1cf5SJoseph Koshy.Fn pmc_stop ,
383c89d1cf5SJoseph Koshyand process scope PMCs are detached from their targets using
384c89d1cf5SJoseph Koshyfunction
385c89d1cf5SJoseph Koshy.Fn pmc_detach .
386c89d1cf5SJoseph Koshy.It
387c89d1cf5SJoseph KoshyBefore the process exits, its may release its PMCs using function
388c89d1cf5SJoseph Koshy.Fn pmc_release .
389c89d1cf5SJoseph KoshyAny configured log file may be closed using function
390c89d1cf5SJoseph Koshy.Fn pmc_configure_logfile .
391c89d1cf5SJoseph Koshy.El
392ebccf1e3SJoseph Koshy.Sh EVENT SPECIFIERS
393ebccf1e3SJoseph KoshyEvent specifiers are strings comprising of an event name, followed by
394ebccf1e3SJoseph Koshyoptional parameters modifying the semantics of the hardware event
395ebccf1e3SJoseph Koshybeing probed.
396ebccf1e3SJoseph KoshyEvent names are PMC architecture dependent, but the
397ebccf1e3SJoseph Koshy.Xr hwpmc 4
398ebccf1e3SJoseph Koshylibrary defines machine independent aliases for commonly used
399ebccf1e3SJoseph Koshyevents.
400ebccf1e3SJoseph Koshy.Ss Event Name Aliases
401ebccf1e3SJoseph KoshyEvent name aliases are CPU architecture independent names for commonly
402ebccf1e3SJoseph Koshyused events.
403ebccf1e3SJoseph KoshyThe following aliases are known to this version of the
404110e1704SRuslan Ermilov.Nm pmc
405ebccf1e3SJoseph Koshylibrary:
406ebccf1e3SJoseph Koshy.Bl -tag -width indent
407ebccf1e3SJoseph Koshy.It Li branches
408ebccf1e3SJoseph KoshyMeasure the number of branches retired.
409ebccf1e3SJoseph Koshy.It Li branch-mispredicts
410ebccf1e3SJoseph KoshyMeasure the number of retired branches that were mispredicted.
411ebccf1e3SJoseph Koshy.It Li cycles
412ebccf1e3SJoseph KoshyMeasure processor cycles.
413ebccf1e3SJoseph KoshyThis event is implemented using the processor's Time Stamp Counter
414ebccf1e3SJoseph Koshyregister.
415ebccf1e3SJoseph Koshy.It Li dc-misses
416ebccf1e3SJoseph KoshyMeasure the number of data cache misses.
417ebccf1e3SJoseph Koshy.It Li ic-misses
418ebccf1e3SJoseph KoshyMeasure the number of instruction cache misses.
419ebccf1e3SJoseph Koshy.It Li instructions
420ebccf1e3SJoseph KoshyMeasure the number of instructions retired.
421ebccf1e3SJoseph Koshy.It Li interrupts
422ebccf1e3SJoseph KoshyMeasure the number of interrupts seen.
423177a2f22SJoseph Koshy.It Li unhalted-cycles
424177a2f22SJoseph KoshyMeasure the number of cycles the processor is not in a halted
425177a2f22SJoseph Koshyor sleep state.
426ebccf1e3SJoseph Koshy.El
427ebccf1e3SJoseph Koshy.Ss Time Stamp Counter (TSC)
4289abe909bSRuslan ErmilovThe timestamp counter is a monotonically non-decreasing counter that
429ebccf1e3SJoseph Koshycounts processor cycles.
430ebccf1e3SJoseph Koshy.Pp
4319abe909bSRuslan ErmilovIn the i386 architecture, this counter may
432ebccf1e3SJoseph Koshybe selected by requesting an event with event specifier
4339abe909bSRuslan Ermilov.Dq Li tsc .
434ebccf1e3SJoseph KoshyThe
4359abe909bSRuslan Ermilov.Dq Li tsc
436ebccf1e3SJoseph Koshyevent does not support any further qualifiers.
437ebccf1e3SJoseph KoshyIt can only be allocated in system-wide counting mode,
438ebccf1e3SJoseph Koshyand is a read-only counter.
439ebccf1e3SJoseph KoshyMultiple processes are allowed to allocate the TSC.
440ebccf1e3SJoseph KoshyOnce allocated, it may be read using the
441ebccf1e3SJoseph Koshy.Fn pmc_read
442ebccf1e3SJoseph Koshyfunction, or by using the RDTSC instruction.
443ebccf1e3SJoseph Koshy.Ss AMD (K7) PMCs
444ebccf1e3SJoseph KoshyThese PMCs are present in the
445ebccf1e3SJoseph Koshy.Tn "AMD Athlon"
446ebccf1e3SJoseph Koshyseries of CPUs and are documented in:
447ebccf1e3SJoseph Koshy.Rs
448ebccf1e3SJoseph Koshy.%B "AMD Athlon Processor x86 Code Optimization Guide"
449ebccf1e3SJoseph Koshy.%N "Publication No. 22007"
450ebccf1e3SJoseph Koshy.%D "February 2002"
4519abe909bSRuslan Ermilov.%Q "Advanced Micro Devices, Inc."
452ebccf1e3SJoseph Koshy.Re
453ebccf1e3SJoseph Koshy.Pp
454ebccf1e3SJoseph KoshyEvent specifiers for AMD K7 PMCs can have the following optional
455ebccf1e3SJoseph Koshyqualifiers:
456ebccf1e3SJoseph Koshy.Bl -tag -width indent
457ebccf1e3SJoseph Koshy.It Li count= Ns Ar value
458ebccf1e3SJoseph KoshyConfigure the counter to increment only if the number of configured
459ebccf1e3SJoseph Koshyevents measured in a cycle is greater than or equal to
460ebccf1e3SJoseph Koshy.Ar value .
461ebccf1e3SJoseph Koshy.It Li edge
462ebccf1e3SJoseph KoshyConfigure the counter to only count negated-to-asserted transitions
463ebccf1e3SJoseph Koshyof the conditions expressed by the other qualifiers.
464ebccf1e3SJoseph KoshyIn other words, the counter will increment only once whenever a given
465ebccf1e3SJoseph Koshycondition becomes true, irrespective of the number of clocks during
466ebccf1e3SJoseph Koshywhich the condition remains true.
467ebccf1e3SJoseph Koshy.It Li inv
468ebccf1e3SJoseph KoshyInvert the sense of comparision when the
4699abe909bSRuslan Ermilov.Dq Li count
470ebccf1e3SJoseph Koshyqualifier is present, making the counter to increment when the
471ebccf1e3SJoseph Koshynumber of events per cycle is less than the value specified by
472ebccf1e3SJoseph Koshythe
4739abe909bSRuslan Ermilov.Dq Li count
474ebccf1e3SJoseph Koshyqualifier.
475ebccf1e3SJoseph Koshy.It Li os
476ebccf1e3SJoseph KoshyConfigure the PMC to count events happening at privilege level 0.
477ebccf1e3SJoseph Koshy.It Li unitmask= Ns Ar mask
478ebccf1e3SJoseph KoshyThis qualifier is used to further qualify a select few events,
4799abe909bSRuslan Ermilov.Dq Li k7-dc-refills-from-l2 ,
4809abe909bSRuslan Ermilov.Dq Li k7-dc-refills-from-system
481ebccf1e3SJoseph Koshyand
4829abe909bSRuslan Ermilov.Dq Li k7-dc-writebacks .
483ebccf1e3SJoseph KoshyHere
484ebccf1e3SJoseph Koshy.Ar mask
4859abe909bSRuslan Ermilovis a string of the following characters optionally separated by
4869abe909bSRuslan Ermilov.Ql +
487ebccf1e3SJoseph Koshycharacters:
4889abe909bSRuslan Ermilov.Pp
489ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
490ebccf1e3SJoseph Koshy.It Li m
491ebccf1e3SJoseph KoshyCount operations for lines in the
492ebccf1e3SJoseph Koshy.Dq Modified
493ebccf1e3SJoseph Koshystate.
494ebccf1e3SJoseph Koshy.It Li o
495ebccf1e3SJoseph KoshyCount operations for lines in the
496ebccf1e3SJoseph Koshy.Dq Owner
497ebccf1e3SJoseph Koshystate.
498ebccf1e3SJoseph Koshy.It Li e
499ebccf1e3SJoseph KoshyCount operations for lines in the
500ebccf1e3SJoseph Koshy.Dq Exclusive
501ebccf1e3SJoseph Koshystate.
502ebccf1e3SJoseph Koshy.It Li s
503ebccf1e3SJoseph KoshyCount operations for lines in the
504ebccf1e3SJoseph Koshy.Dq Shared
505ebccf1e3SJoseph Koshystate.
506ebccf1e3SJoseph Koshy.It Li i
507ebccf1e3SJoseph KoshyCount operations for lines in the
508ebccf1e3SJoseph Koshy.Dq Invalid
509ebccf1e3SJoseph Koshystate.
510ebccf1e3SJoseph Koshy.El
5119abe909bSRuslan Ermilov.Pp
512ebccf1e3SJoseph KoshyIf no
5139abe909bSRuslan Ermilov.Dq Li unitmask
514ebccf1e3SJoseph Koshyqualifier is specified, the default is to count events for caches
515ebccf1e3SJoseph Koshylines in any of the above states.
516ebccf1e3SJoseph Koshy.It Li usr
517ebccf1e3SJoseph KoshyConfigure the PMC to count events occurring at privilege levels 1, 2
518ebccf1e3SJoseph Koshyor 3.
519ebccf1e3SJoseph Koshy.El
5209abe909bSRuslan Ermilov.Pp
521ebccf1e3SJoseph KoshyIf neither of the
5229abe909bSRuslan Ermilov.Dq Li os
523ebccf1e3SJoseph Koshyor
5249abe909bSRuslan Ermilov.Dq Li usr
525ebccf1e3SJoseph Koshyqualifiers were specified, the default is to enable both.
526ebccf1e3SJoseph Koshy.Pp
5279abe909bSRuslan ErmilovThe event specifiers supported on AMD K7 PMCs are:
528ebccf1e3SJoseph Koshy.Bl -tag -width indent
529ebccf1e3SJoseph Koshy.It Li k7-dc-accesses
530ebccf1e3SJoseph KoshyCount data cache accesses.
531ebccf1e3SJoseph Koshy.It Li k7-dc-misses
532ebccf1e3SJoseph KoshyCount data cache misses.
533ebccf1e3SJoseph Koshy.It Li k7-dc-refills-from-l2 Op Li ,unitmask= Ns Ar mask
534ebccf1e3SJoseph KoshyCount data cache refills from L2 cache.
535ebccf1e3SJoseph KoshyThis event may be further qualified using the
5369abe909bSRuslan Ermilov.Dq Li unitmask
537ebccf1e3SJoseph Koshyqualifier.
538ebccf1e3SJoseph Koshy.It Li k7-dc-refills-from-system Op Li ,unitmask= Ns Ar mask
539ebccf1e3SJoseph KoshyCount data cache refills from system memory.
540ebccf1e3SJoseph KoshyThis event may be further qualified using the
5419abe909bSRuslan Ermilov.Dq Li unitmask
542ebccf1e3SJoseph Koshyqualifier.
543ebccf1e3SJoseph Koshy.It Li k7-dc-writebacks Op Li ,unitmask= Ns Ar mask
544ebccf1e3SJoseph KoshyCount data cache writebacks.
545ebccf1e3SJoseph KoshyThis event may be further qualified using the
5469abe909bSRuslan Ermilov.Dq Li unitmask
547ebccf1e3SJoseph Koshyqualifier.
548ebccf1e3SJoseph Koshy.It Li k7-l1-dtlb-miss-and-l2-dtlb-hits
549ebccf1e3SJoseph KoshyCount L1 DTLB misses and L2 DTLB hits.
550ebccf1e3SJoseph Koshy.It Li k7-l1-and-l2-dtlb-misses
551ebccf1e3SJoseph KoshyCount L1 and L2 DTLB misses.
552ebccf1e3SJoseph Koshy.It Li k7-misaligned-references
553ebccf1e3SJoseph KoshyCount misaligned data references.
554ebccf1e3SJoseph Koshy.It Li k7-ic-fetches
555ebccf1e3SJoseph KoshyCount instruction cache fetches.
556ebccf1e3SJoseph Koshy.It Li k7-ic-misses
557ebccf1e3SJoseph KoshyCount instruction cache misses.
558ebccf1e3SJoseph Koshy.It Li k7-l1-itlb-misses
559ebccf1e3SJoseph KoshyCount L1 ITLB misses that are L2 ITLB hits.
560ebccf1e3SJoseph Koshy.It Li k7-l1-l2-itlb-misses
561ebccf1e3SJoseph KoshyCount L1 (and L2) ITLB misses.
562ebccf1e3SJoseph Koshy.It Li k7-retired-instructions
563ebccf1e3SJoseph KoshyCount all retired instructions.
564ebccf1e3SJoseph Koshy.It Li k7-retired-ops
565ebccf1e3SJoseph KoshyCount retired ops.
566ebccf1e3SJoseph Koshy.It Li k7-retired-branches
567ebccf1e3SJoseph KoshyCount all retired branches (conditional, unconditional, exceptions
568ebccf1e3SJoseph Koshyand interrupts).
569ebccf1e3SJoseph Koshy.It Li k7-retired-branches-mispredicted
570ebccf1e3SJoseph KoshyCount all misprediced retired branches.
571ebccf1e3SJoseph Koshy.It Li k7-retired-taken-branches
572ebccf1e3SJoseph KoshyCount retired taken branches.
573ebccf1e3SJoseph Koshy.It Li k7-retired-taken-branches-mispredicted
574ebccf1e3SJoseph KoshyCount mispredicted taken branches that were retired.
575ebccf1e3SJoseph Koshy.It Li k7-retired-far-control-transfers
576ebccf1e3SJoseph KoshyCount retired far control transfers.
577ebccf1e3SJoseph Koshy.It Li k7-retired-resync-branches
578ebccf1e3SJoseph KoshyCount retired resync branches (non control transfer branches).
579ebccf1e3SJoseph Koshy.It Li k7-interrupts-masked-cycles
580ebccf1e3SJoseph KoshyCount the number of cycles when the processor's
5819abe909bSRuslan Ermilov.Va IF
582ebccf1e3SJoseph Koshyflag was zero.
583ebccf1e3SJoseph Koshy.It Li k7-interrupts-masked-while-pending-cycles
584ebccf1e3SJoseph KoshyCount the number of cycles interrupts were masked while pending due
585ebccf1e3SJoseph Koshyto the processor's
5869abe909bSRuslan Ermilov.Va IF
587ebccf1e3SJoseph Koshyflag being zero.
588ebccf1e3SJoseph Koshy.It Li k7-hardware-interrupts
589ebccf1e3SJoseph KoshyCount the number of taken hardware interrupts.
590ebccf1e3SJoseph Koshy.El
591ebccf1e3SJoseph Koshy.Ss AMD (K8) PMCs
592ebccf1e3SJoseph KoshyThese PMCs are present in the
593ebccf1e3SJoseph Koshy.Tn "AMD Athlon64"
594ebccf1e3SJoseph Koshyand
595ebccf1e3SJoseph Koshy.Tn "AMD Opteron"
596ebccf1e3SJoseph Koshyseries of CPUs.
597ebccf1e3SJoseph KoshyThey are documented in:
598ebccf1e3SJoseph Koshy.Rs
599ebccf1e3SJoseph Koshy.%B "BIOS and Kernel Developer's Guide for the AMD Athlon(tm) 64 and AMD Opteron Processors"
600ebccf1e3SJoseph Koshy.%N "Publication No. 26094"
601ebccf1e3SJoseph Koshy.%D "April 2004"
6029abe909bSRuslan Ermilov.%Q "Advanced Micro Devices, Inc."
603ebccf1e3SJoseph Koshy.Re
604ebccf1e3SJoseph Koshy.Pp
605ebccf1e3SJoseph KoshyEvent specifiers for AMD K8 PMCs can have the following optional
606ebccf1e3SJoseph Koshyqualifiers:
607ebccf1e3SJoseph Koshy.Bl -tag -width indent
608ebccf1e3SJoseph Koshy.It Li count= Ns Ar value
609ebccf1e3SJoseph KoshyConfigure the counter to increment only if the number of configured
610ebccf1e3SJoseph Koshyevents measured in a cycle is greater than or equal to
611ebccf1e3SJoseph Koshy.Ar value .
612ebccf1e3SJoseph Koshy.It Li edge
613ebccf1e3SJoseph KoshyConfigure the counter to only count negated-to-asserted transitions
614ebccf1e3SJoseph Koshyof the conditions expressed by the other fields.
615ebccf1e3SJoseph KoshyIn other words, the counter will increment only once whenever a given
616ebccf1e3SJoseph Koshycondition becomes true, irrespective of the number of clocks during
617ebccf1e3SJoseph Koshywhich the condition remains true.
618ebccf1e3SJoseph Koshy.It Li inv
619ebccf1e3SJoseph KoshyInvert the sense of comparision when the
6209abe909bSRuslan Ermilov.Dq Li count
621ebccf1e3SJoseph Koshyqualifier is present, making the counter to increment when the
622ebccf1e3SJoseph Koshynumber of events per cycle is less than the value specified by
623ebccf1e3SJoseph Koshythe
6249abe909bSRuslan Ermilov.Dq Li count
625ebccf1e3SJoseph Koshyqualifier.
626ebccf1e3SJoseph Koshy.It Li mask= Ns Ar qualifier
627ebccf1e3SJoseph KoshyMany event specifiers for AMD K8 PMCs need to be additionally
628ebccf1e3SJoseph Koshyqualified using a mask qualifier.
629ebccf1e3SJoseph KoshyThese additional qualifiers are event-specific and are documented
630ebccf1e3SJoseph Koshyalong with their associated event specifiers below.
631ebccf1e3SJoseph Koshy.It Li os
632ebccf1e3SJoseph KoshyConfigure the PMC to count events happening at privilege level 0.
633ebccf1e3SJoseph Koshy.It Li usr
634ebccf1e3SJoseph KoshyConfigure the PMC to count events occurring at privilege levels 1, 2
635ebccf1e3SJoseph Koshyor 3.
636ebccf1e3SJoseph Koshy.El
6379abe909bSRuslan Ermilov.Pp
638ebccf1e3SJoseph KoshyIf neither of the
6399abe909bSRuslan Ermilov.Dq Li os
640ebccf1e3SJoseph Koshyor
6419abe909bSRuslan Ermilov.Dq Li usr
642ebccf1e3SJoseph Koshyqualifiers were specified, the default is to enable both.
643ebccf1e3SJoseph Koshy.Pp
6449abe909bSRuslan ErmilovThe event specifiers supported on AMD K8 PMCs are:
645ebccf1e3SJoseph Koshy.Bl -tag -width indent
646ebccf1e3SJoseph Koshy.It Li k8-bu-cpu-clk-unhalted
647ebccf1e3SJoseph KoshyCount the number of clock cycles when the CPU is not in the HLT or
648ebccf1e3SJoseph KoshySTPCLK states.
649ebccf1e3SJoseph Koshy.It Li k8-bu-fill-request-l2-miss Op Li ,mask= Ns Ar qualifier
650ebccf1e3SJoseph KoshyCount fill requests that missed in the L2 cache.
651ebccf1e3SJoseph KoshyThis event may be further qualified using
652ebccf1e3SJoseph Koshy.Ar qualifier ,
653ebccf1e3SJoseph Koshywhich is a
6549abe909bSRuslan Ermilov.Ql +
655ebccf1e3SJoseph Koshyseparated set of the following keywords:
6569abe909bSRuslan Ermilov.Pp
6579abe909bSRuslan Ermilov.Bl -tag -width indent -compact
658ebccf1e3SJoseph Koshy.It Li dc-fill
659ebccf1e3SJoseph KoshyCount data cache fill requests.
660ebccf1e3SJoseph Koshy.It Li ic-fill
661ebccf1e3SJoseph KoshyCount instruction cache fill requests.
662ebccf1e3SJoseph Koshy.It Li tlb-reload
663ebccf1e3SJoseph KoshyCount TLB reloads.
664ebccf1e3SJoseph Koshy.El
6659abe909bSRuslan Ermilov.Pp
666ebccf1e3SJoseph KoshyThe default is to count all types of requests.
667ebccf1e3SJoseph Koshy.It Li k8-bu-internal-l2-request Op Li ,mask= Ns Ar qualifier
668ebccf1e3SJoseph KoshyCount internally generated requests to the L2 cache.
669ebccf1e3SJoseph KoshyThis event may be further qualified using
670ebccf1e3SJoseph Koshy.Ar qualifier ,
671ebccf1e3SJoseph Koshywhich is a
6729abe909bSRuslan Ermilov.Ql +
673ebccf1e3SJoseph Koshyseparated set of the following keywords:
6749abe909bSRuslan Ermilov.Pp
6759abe909bSRuslan Ermilov.Bl -tag -width indent -compact
676ebccf1e3SJoseph Koshy.It Li cancelled
677ebccf1e3SJoseph KoshyCount cancelled requests.
678ebccf1e3SJoseph Koshy.It Li dc-fill
679ebccf1e3SJoseph KoshyCount data cache fill requests.
680ebccf1e3SJoseph Koshy.It Li ic-fill
681ebccf1e3SJoseph KoshyCount instruction cache fill requests.
682ebccf1e3SJoseph Koshy.It Li tag-snoop
683ebccf1e3SJoseph KoshyCount tag snoop requests.
684ebccf1e3SJoseph Koshy.It Li tlb-reload
685ebccf1e3SJoseph KoshyCount TLB reloads.
686ebccf1e3SJoseph Koshy.El
6879abe909bSRuslan Ermilov.Pp
688ebccf1e3SJoseph KoshyThe default is to count all types of requests.
689ebccf1e3SJoseph Koshy.It Li k8-dc-access
690ebccf1e3SJoseph KoshyCount data cache accesses including microcode scratchpad accesses.
691ebccf1e3SJoseph Koshy.It Li k8-dc-copyback Op Li ,mask= Ns Ar qualifier
692ebccf1e3SJoseph KoshyCount data cache copyback operations.
693ebccf1e3SJoseph KoshyThis event may be further qualified using
694ebccf1e3SJoseph Koshy.Ar qualifier ,
695ebccf1e3SJoseph Koshywhich is a
6969abe909bSRuslan Ermilov.Ql +
697ebccf1e3SJoseph Koshyseparated set of the following keywords:
6989abe909bSRuslan Ermilov.Pp
6999abe909bSRuslan Ermilov.Bl -tag -width indent -compact
700ebccf1e3SJoseph Koshy.It Li exclusive
701ebccf1e3SJoseph KoshyCount operations for lines in the
702ebccf1e3SJoseph Koshy.Dq exclusive
703ebccf1e3SJoseph Koshystate.
704ebccf1e3SJoseph Koshy.It Li invalid
705ebccf1e3SJoseph KoshyCount operations for lines in the
706ebccf1e3SJoseph Koshy.Dq invalid
707ebccf1e3SJoseph Koshystate.
708ebccf1e3SJoseph Koshy.It Li modified
709ebccf1e3SJoseph KoshyCount operations for lines in the
710ebccf1e3SJoseph Koshy.Dq modified
711ebccf1e3SJoseph Koshystate.
712ebccf1e3SJoseph Koshy.It Li owner
713ebccf1e3SJoseph KoshyCount operations for lines in the
714ebccf1e3SJoseph Koshy.Dq owner
715ebccf1e3SJoseph Koshystate.
716ebccf1e3SJoseph Koshy.It Li shared
717ebccf1e3SJoseph KoshyCount operations for lines in the
718ebccf1e3SJoseph Koshy.Dq shared
719ebccf1e3SJoseph Koshystate.
720ebccf1e3SJoseph Koshy.El
7219abe909bSRuslan Ermilov.Pp
722ebccf1e3SJoseph KoshyThe default is to count operations for lines in all the
723ebccf1e3SJoseph Koshyabove states.
724ebccf1e3SJoseph Koshy.It Li k8-dc-dcache-accesses-by-locks Op Li ,mask= Ns Ar qualifier
725ebccf1e3SJoseph KoshyCount data cache accesses by lock instructions.
726ebccf1e3SJoseph KoshyThis event is only available on processors of revision C or later
727ebccf1e3SJoseph Koshyvintage.
728ebccf1e3SJoseph KoshyThis event may be further qualified using
729ebccf1e3SJoseph Koshy.Ar qualifier ,
730ebccf1e3SJoseph Koshywhich is a
7319abe909bSRuslan Ermilov.Ql +
732ebccf1e3SJoseph Koshyseparated set of the following keywords:
7339abe909bSRuslan Ermilov.Pp
7349abe909bSRuslan Ermilov.Bl -tag -width indent -compact
735ebccf1e3SJoseph Koshy.It Li accesses
736ebccf1e3SJoseph KoshyCount data cache accesses by lock instructions.
737ebccf1e3SJoseph Koshy.It Li misses
738ebccf1e3SJoseph KoshyCount data cache misses by lock instructions.
739ebccf1e3SJoseph Koshy.El
7409abe909bSRuslan Ermilov.Pp
741ebccf1e3SJoseph KoshyThe default is to count all accesses.
742ebccf1e3SJoseph Koshy.It Li k8-dc-dispatched-prefetch-instructions Op Li ,mask= Ns Ar qualifier
743ebccf1e3SJoseph KoshyCount the number of dispatched prefetch instructions.
744ebccf1e3SJoseph KoshyThis event may be further qualified using
745ebccf1e3SJoseph Koshy.Ar qualifier ,
746ebccf1e3SJoseph Koshywhich is a
7479abe909bSRuslan Ermilov.Ql +
748ebccf1e3SJoseph Koshyseparated set of the following keywords:
7499abe909bSRuslan Ermilov.Pp
7509abe909bSRuslan Ermilov.Bl -tag -width indent -compact
751ebccf1e3SJoseph Koshy.It Li load
752ebccf1e3SJoseph KoshyCount load operations.
753ebccf1e3SJoseph Koshy.It Li nta
754ebccf1e3SJoseph KoshyCount non-temporal operations.
755ebccf1e3SJoseph Koshy.It Li store
756ebccf1e3SJoseph KoshyCount store operations.
757ebccf1e3SJoseph Koshy.El
7589abe909bSRuslan Ermilov.Pp
759ebccf1e3SJoseph KoshyThe default is to count all operations.
760ebccf1e3SJoseph Koshy.It Li k8-dc-l1-dtlb-miss-and-l2-dtlb-hit
761ebccf1e3SJoseph KoshyCount L1 DTLB misses that are L2 DTLB hits.
762ebccf1e3SJoseph Koshy.It Li k8-dc-l1-dtlb-miss-and-l2-dtlb-miss
763ebccf1e3SJoseph KoshyCount L1 DTLB misses that are also misses in the L2 DTLB.
764ebccf1e3SJoseph Koshy.It Li k8-dc-microarchitectural-early-cancel-of-an-access
765ebccf1e3SJoseph KoshyCount microarchitectural early cancels of data cache accesses.
766ebccf1e3SJoseph Koshy.It Li k8-dc-microarchitectural-late-cancel-of-an-access
767ebccf1e3SJoseph KoshyCount microarchitectural late cancels of data cache accesses.
768ebccf1e3SJoseph Koshy.It Li k8-dc-misaligned-data-reference
769ebccf1e3SJoseph KoshyCount misaligned data references.
770ebccf1e3SJoseph Koshy.It Li k8-dc-miss
771ebccf1e3SJoseph KoshyCount data cache misses.
772ebccf1e3SJoseph Koshy.It Li k8-dc-one-bit-ecc-error Op Li ,mask= Ns Ar qualifier
773ebccf1e3SJoseph KoshyCount one bit ECC errors found by the scrubber.
774ebccf1e3SJoseph KoshyThis event may be further qualified using
775ebccf1e3SJoseph Koshy.Ar qualifier ,
776ebccf1e3SJoseph Koshywhich is a
7779abe909bSRuslan Ermilov.Ql +
778ebccf1e3SJoseph Koshyseparated set of the following keywords:
7799abe909bSRuslan Ermilov.Pp
7809abe909bSRuslan Ermilov.Bl -tag -width indent -compact
781ebccf1e3SJoseph Koshy.It Li scrubber
782ebccf1e3SJoseph KoshyCount scrubber detected errors.
783ebccf1e3SJoseph Koshy.It Li piggyback
784ebccf1e3SJoseph KoshyCount piggyback scrubber errors.
785ebccf1e3SJoseph Koshy.El
7869abe909bSRuslan Ermilov.Pp
787ebccf1e3SJoseph KoshyThe default is to count both kinds of errors.
788ebccf1e3SJoseph Koshy.It Li k8-dc-refill-from-l2 Op Li ,mask= Ns Ar qualifier
789ebccf1e3SJoseph KoshyCount data cache refills from L2 cache.
790ebccf1e3SJoseph KoshyThis event may be further qualified using
791ebccf1e3SJoseph Koshy.Ar qualifier ,
792ebccf1e3SJoseph Koshywhich is a
7939abe909bSRuslan Ermilov.Ql +
794ebccf1e3SJoseph Koshyseparated set of the following keywords:
7959abe909bSRuslan Ermilov.Pp
7969abe909bSRuslan Ermilov.Bl -tag -width indent -compact
797ebccf1e3SJoseph Koshy.It Li exclusive
798ebccf1e3SJoseph KoshyCount operations for lines in the
799ebccf1e3SJoseph Koshy.Dq exclusive
800ebccf1e3SJoseph Koshystate.
801ebccf1e3SJoseph Koshy.It Li invalid
802ebccf1e3SJoseph KoshyCount operations for lines in the
803ebccf1e3SJoseph Koshy.Dq invalid
804ebccf1e3SJoseph Koshystate.
805ebccf1e3SJoseph Koshy.It Li modified
806ebccf1e3SJoseph KoshyCount operations for lines in the
807ebccf1e3SJoseph Koshy.Dq modified
808ebccf1e3SJoseph Koshystate.
809ebccf1e3SJoseph Koshy.It Li owner
810ebccf1e3SJoseph KoshyCount operations for lines in the
811ebccf1e3SJoseph Koshy.Dq owner
812ebccf1e3SJoseph Koshystate.
813ebccf1e3SJoseph Koshy.It Li shared
814ebccf1e3SJoseph KoshyCount operations for lines in the
815ebccf1e3SJoseph Koshy.Dq shared
816ebccf1e3SJoseph Koshystate.
817ebccf1e3SJoseph Koshy.El
8189abe909bSRuslan Ermilov.Pp
819ebccf1e3SJoseph KoshyThe default is to count operations for lines in all the
820ebccf1e3SJoseph Koshyabove states.
821ebccf1e3SJoseph Koshy.It Li k8-dc-refill-from-system Op Li ,mask= Ns Ar qualifier
822ebccf1e3SJoseph KoshyCount data cache refills from system memory.
823ebccf1e3SJoseph KoshyThis event may be further qualified using
824ebccf1e3SJoseph Koshy.Ar qualifier ,
825ebccf1e3SJoseph Koshywhich is a
8269abe909bSRuslan Ermilov.Ql +
827ebccf1e3SJoseph Koshyseparated set of the following keywords:
8289abe909bSRuslan Ermilov.Pp
8299abe909bSRuslan Ermilov.Bl -tag -width indent -compact
830ebccf1e3SJoseph Koshy.It Li exclusive
831ebccf1e3SJoseph KoshyCount operations for lines in the
832ebccf1e3SJoseph Koshy.Dq exclusive
833ebccf1e3SJoseph Koshystate.
834ebccf1e3SJoseph Koshy.It Li invalid
835ebccf1e3SJoseph KoshyCount operations for lines in the
836ebccf1e3SJoseph Koshy.Dq invalid
837ebccf1e3SJoseph Koshystate.
838ebccf1e3SJoseph Koshy.It Li modified
839ebccf1e3SJoseph KoshyCount operations for lines in the
840ebccf1e3SJoseph Koshy.Dq modified
841ebccf1e3SJoseph Koshystate.
842ebccf1e3SJoseph Koshy.It Li owner
843ebccf1e3SJoseph KoshyCount operations for lines in the
844ebccf1e3SJoseph Koshy.Dq owner
845ebccf1e3SJoseph Koshystate.
846ebccf1e3SJoseph Koshy.It Li shared
847ebccf1e3SJoseph KoshyCount operations for lines in the
848ebccf1e3SJoseph Koshy.Dq shared
849ebccf1e3SJoseph Koshystate.
850ebccf1e3SJoseph Koshy.El
8519abe909bSRuslan Ermilov.Pp
852ebccf1e3SJoseph KoshyThe default is to count operations for lines in all the
853ebccf1e3SJoseph Koshyabove states.
854ebccf1e3SJoseph Koshy.It Li k8-fp-dispatched-fpu-ops Op Li ,mask= Ns Ar qualifier
855ebccf1e3SJoseph KoshyCount the number of dispatched FPU ops.
856ebccf1e3SJoseph KoshyThis event is supported in revision B and later CPUs.
857ebccf1e3SJoseph KoshyThis event may be further qualified using
858ebccf1e3SJoseph Koshy.Ar qualifier ,
859ebccf1e3SJoseph Koshywhich is a
8609abe909bSRuslan Ermilov.Ql +
861ebccf1e3SJoseph Koshyseparated set of the following keywords:
8629abe909bSRuslan Ermilov.Pp
8639abe909bSRuslan Ermilov.Bl -tag -width indent -compact
864ebccf1e3SJoseph Koshy.It Li add-pipe-excluding-junk-ops
865ebccf1e3SJoseph KoshyCount add pipe ops excluding junk ops.
866ebccf1e3SJoseph Koshy.It Li add-pipe-junk-ops
867ebccf1e3SJoseph KoshyCount junk ops in the add pipe.
868ebccf1e3SJoseph Koshy.It Li multiply-pipe-excluding-junk-ops
869ebccf1e3SJoseph KoshyCount multiply pipe ops excluding junk ops.
870ebccf1e3SJoseph Koshy.It Li multiply-pipe-junk-ops
871ebccf1e3SJoseph KoshyCount junk ops in the multiply pipe.
872ebccf1e3SJoseph Koshy.It Li store-pipe-excluding-junk-ops
873ebccf1e3SJoseph KoshyCount store pipe ops excluding junk ops
874ebccf1e3SJoseph Koshy.It Li store-pipe-junk-ops
875ebccf1e3SJoseph KoshyCount junk ops in the store pipe.
876ebccf1e3SJoseph Koshy.El
8779abe909bSRuslan Ermilov.Pp
878ebccf1e3SJoseph KoshyThe default is to count all types of ops.
879ebccf1e3SJoseph Koshy.It Li k8-fp-cycles-with-no-fpu-ops-retired
880ebccf1e3SJoseph KoshyCount cycles when no FPU ops were retired.
881ebccf1e3SJoseph KoshyThis event is supported in revision B and later CPUs.
882ebccf1e3SJoseph Koshy.It Li k8-fp-dispatched-fpu-fast-flag-ops
883ebccf1e3SJoseph KoshyCount dispatched FPU ops that use the fast flag interface.
884ebccf1e3SJoseph KoshyThis event is supported in revision B and later CPUs.
885ebccf1e3SJoseph Koshy.It Li k8-fr-decoder-empty
886ebccf1e3SJoseph KoshyCount cycles when there was nothing to dispatch (i.e., the decoder
887ebccf1e3SJoseph Koshywas empty).
888ebccf1e3SJoseph Koshy.It Li k8-fr-dispatch-stalls
889ebccf1e3SJoseph KoshyCount all dispatch stalls.
890ebccf1e3SJoseph Koshy.It Li k8-fr-dispatch-stall-for-segment-load
891ebccf1e3SJoseph KoshyCount dispatch stalls for segment loads.
892ebccf1e3SJoseph Koshy.It Li k8-fr-dispatch-stall-for-serialization
893ebccf1e3SJoseph KoshyCount dispatch stalls for serialization.
894ebccf1e3SJoseph Koshy.It Li k8-fr-dispatch-stall-from-branch-abort-to-retire
895ebccf1e3SJoseph KoshyCount dispatch stalls from branch abort to retiral.
896ebccf1e3SJoseph Koshy.It Li k8-fr-dispatch-stall-when-fpu-is-full
897ebccf1e3SJoseph KoshyCount dispatch stalls when the FPU is full.
898ebccf1e3SJoseph Koshy.It Li k8-fr-dispatch-stall-when-ls-is-full
899ebccf1e3SJoseph KoshyCount dispatch stalls when the load/store unit is full.
900ebccf1e3SJoseph Koshy.It Li k8-fr-dispatch-stall-when-reorder-buffer-is-full
901ebccf1e3SJoseph KoshyCount dispatch stalls when the reorder buffer is full.
902ebccf1e3SJoseph Koshy.It Li k8-fr-dispatch-stall-when-reservation-stations-are-full
903ebccf1e3SJoseph KoshyCount dispatch stalls when reservation stations are full.
904ebccf1e3SJoseph Koshy.It Li k8-fr-dispatch-stall-when-waiting-for-all-to-be-quiet
905ebccf1e3SJoseph KoshyCount dispatch stalls when waiting for all to be quiet.
906ebccf1e3SJoseph Koshy.\" XXX What does "waiting for all to be quiet" mean?
907ebccf1e3SJoseph Koshy.It Li k8-fr-dispatch-stall-when-waiting-far-xfer-or-resync-branch-pending
908ebccf1e3SJoseph KoshyCount dispatch stalls when a far control transfer or a resync branch
909ebccf1e3SJoseph Koshyis pending.
910ebccf1e3SJoseph Koshy.It Li k8-fr-fpu-exceptions Op Li ,mask= Ns Ar qualifier
911ebccf1e3SJoseph KoshyCount FPU exceptions.
912ebccf1e3SJoseph KoshyThis event is supported in revision B and later CPUs.
913ebccf1e3SJoseph KoshyThis event may be further qualified using
914ebccf1e3SJoseph Koshy.Ar qualifier ,
915ebccf1e3SJoseph Koshywhich is a
9169abe909bSRuslan Ermilov.Ql +
917ebccf1e3SJoseph Koshyseparated set of the following keywords:
9189abe909bSRuslan Ermilov.Pp
9199abe909bSRuslan Ermilov.Bl -tag -width indent -compact
920ebccf1e3SJoseph Koshy.It Li sse-and-x87-microtraps
921ebccf1e3SJoseph KoshyCount SSE and x87 microtraps.
922ebccf1e3SJoseph Koshy.It Li sse-reclass-microfaults
923ebccf1e3SJoseph KoshyCount SSE reclass microfaults
924ebccf1e3SJoseph Koshy.It Li sse-retype-microfaults
925ebccf1e3SJoseph KoshyCount SSE retype microfaults
926ebccf1e3SJoseph Koshy.It Li x87-reclass-microfaults
927ebccf1e3SJoseph KoshyCount x87 reclass microfaults.
928ebccf1e3SJoseph Koshy.El
9299abe909bSRuslan Ermilov.Pp
930ebccf1e3SJoseph KoshyThe default is to count all types of exceptions.
931ebccf1e3SJoseph Koshy.It Li k8-fr-interrupts-masked-cycles
932ebccf1e3SJoseph KoshyCount cycles when interrupts were masked (by CPU RFLAGS field IF was zero).
933ebccf1e3SJoseph Koshy.It Li k8-fr-interrupts-masked-while-pending-cycles
934ebccf1e3SJoseph KoshyCount cycles while interrupts were masked while pending (i.e., cycles
935ebccf1e3SJoseph Koshywhen INTR was asserted while CPU RFLAGS field IF was zero).
936ebccf1e3SJoseph Koshy.It Li k8-fr-number-of-breakpoints-for-dr0
937ebccf1e3SJoseph KoshyCount the number of breakpoints for DR0.
938ebccf1e3SJoseph Koshy.It Li k8-fr-number-of-breakpoints-for-dr1
939ebccf1e3SJoseph KoshyCount the number of breakpoints for DR1.
940ebccf1e3SJoseph Koshy.It Li k8-fr-number-of-breakpoints-for-dr2
941ebccf1e3SJoseph KoshyCount the number of breakpoints for DR2.
942ebccf1e3SJoseph Koshy.It Li k8-fr-number-of-breakpoints-for-dr3
943ebccf1e3SJoseph KoshyCount the number of breakpoints for DR3.
944ebccf1e3SJoseph Koshy.It Li k8-fr-retired-branches
945ebccf1e3SJoseph KoshyCount retired branches including exceptions and interrupts.
946ebccf1e3SJoseph Koshy.It Li k8-fr-retired-branches-mispredicted
947ebccf1e3SJoseph KoshyCount mispredicted retired branches.
948ebccf1e3SJoseph Koshy.It Li k8-fr-retired-far-control-transfers
949ebccf1e3SJoseph KoshyCount retired far control transfers (which are always mispredicted).
950ebccf1e3SJoseph Koshy.It Li k8-fr-retired-fastpath-double-op-instructions Op Li ,mask= Ns Ar qualifier
951ebccf1e3SJoseph KoshyCount retired fastpath double op instructions.
952ebccf1e3SJoseph KoshyThis event is supported in revision B and later CPUs.
953ebccf1e3SJoseph KoshyThis event may be further qualified using
954ebccf1e3SJoseph Koshy.Ar qualifier ,
955ebccf1e3SJoseph Koshywhich is a
9569abe909bSRuslan Ermilov.Ql +
957ebccf1e3SJoseph Koshyseparated set of the following keywords:
9589abe909bSRuslan Ermilov.Pp
9599abe909bSRuslan Ermilov.Bl -tag -width indent -compact
960ebccf1e3SJoseph Koshy.It Li low-op-pos-0
961ebccf1e3SJoseph KoshyCount instructions with the low op in position 0.
962ebccf1e3SJoseph Koshy.It Li low-op-pos-1
963ebccf1e3SJoseph KoshyCount instructions with the low op in position 1.
964ebccf1e3SJoseph Koshy.It Li low-op-pos-2
965ebccf1e3SJoseph KoshyCount instructions with the low op in position 2.
966ebccf1e3SJoseph Koshy.El
9679abe909bSRuslan Ermilov.Pp
968ebccf1e3SJoseph KoshyThe default is to count all types of instructions.
969ebccf1e3SJoseph Koshy.It Li k8-fr-retired-fpu-instructions Op Li ,mask= Ns Ar qualifier
970ebccf1e3SJoseph KoshyCount retired FPU instructions.
971ebccf1e3SJoseph KoshyThis event is supported in revision B and later CPUs.
972ebccf1e3SJoseph KoshyThis event may be further qualified using
973ebccf1e3SJoseph Koshy.Ar qualifier ,
974ebccf1e3SJoseph Koshywhich is a
9759abe909bSRuslan Ermilov.Ql +
976ebccf1e3SJoseph Koshyseparated set of the following keywords:
9779abe909bSRuslan Ermilov.Pp
9789abe909bSRuslan Ermilov.Bl -tag -width indent -compact
979ebccf1e3SJoseph Koshy.It Li mmx-3dnow
9809abe909bSRuslan ErmilovCount MMX and 3DNow!\& instructions.
981ebccf1e3SJoseph Koshy.It Li packed-sse-sse2
982ebccf1e3SJoseph KoshyCount packed SSE and SSE2 instructions.
983ebccf1e3SJoseph Koshy.It Li scalar-sse-sse2
984ebccf1e3SJoseph KoshyCount scalar SSE and SSE2 instructions
985ebccf1e3SJoseph Koshy.It Li x87
986ebccf1e3SJoseph KoshyCount x87 instructions.
987ebccf1e3SJoseph Koshy.El
9889abe909bSRuslan Ermilov.Pp
989ebccf1e3SJoseph KoshyThe default is to count all types of instructions.
990ebccf1e3SJoseph Koshy.It Li k8-fr-retired-near-returns
991ebccf1e3SJoseph KoshyCount retired near returns.
992ebccf1e3SJoseph Koshy.It Li k8-fr-retired-near-returns-mispredicted
993ebccf1e3SJoseph KoshyCount mispredicted near returns.
994ebccf1e3SJoseph Koshy.It Li k8-fr-retired-resyncs
995ebccf1e3SJoseph KoshyCount retired resyncs (non-control transfer branches).
996ebccf1e3SJoseph Koshy.It Li k8-fr-retired-taken-hardware-interrupts
997ebccf1e3SJoseph KoshyCount retired taken hardware interrupts.
998ebccf1e3SJoseph Koshy.It Li k8-fr-retired-taken-branches
999ebccf1e3SJoseph KoshyCount retired taken branches.
1000ebccf1e3SJoseph Koshy.It Li k8-fr-retired-taken-branches-mispredicted
1001ebccf1e3SJoseph KoshyCount retired taken branches that were mispredicted.
1002ebccf1e3SJoseph Koshy.It Li k8-fr-retired-taken-branches-mispredicted-by-addr-miscompare
1003ebccf1e3SJoseph KoshyCount retired taken branches that were mispredicted only due to an
1004ebccf1e3SJoseph Koshyaddress miscompare.
1005ebccf1e3SJoseph Koshy.It Li k8-fr-retired-uops
1006ebccf1e3SJoseph KoshyCount retired uops.
1007ebccf1e3SJoseph Koshy.It Li k8-fr-retired-x86-instructions
1008ebccf1e3SJoseph KoshyCount retired x86 instructions including exceptions and interrupts.
1009ebccf1e3SJoseph Koshy.It Li k8-ic-fetch
1010ebccf1e3SJoseph KoshyCount instruction cache fetches.
1011ebccf1e3SJoseph Koshy.It Li k8-ic-instruction-fetch-stall
1012ebccf1e3SJoseph KoshyCount cycles in stalls due to instruction fetch.
1013ebccf1e3SJoseph Koshy.It Li k8-ic-l1-itlb-miss-and-l2-itlb-hit
1014ebccf1e3SJoseph KoshyCount L1 ITLB misses that are L2 ITLB hits.
1015ebccf1e3SJoseph Koshy.It Li k8-ic-l1-itlb-miss-and-l2-itlb-miss
1016ebccf1e3SJoseph KoshyCount ITLB misses that miss in both L1 and L2 ITLBs.
1017ebccf1e3SJoseph Koshy.It Li k8-ic-microarchitectural-resync-by-snoop
1018ebccf1e3SJoseph KoshyCount microarchitectural resyncs caused by snoops.
1019ebccf1e3SJoseph Koshy.It Li k8-ic-miss
1020ebccf1e3SJoseph KoshyCount instruction cache misses.
1021ebccf1e3SJoseph Koshy.It Li k8-ic-refill-from-l2
1022ebccf1e3SJoseph KoshyCount instruction cache refills from L2 cache.
1023ebccf1e3SJoseph Koshy.It Li k8-ic-refill-from-system
1024ebccf1e3SJoseph KoshyCount instruction cache refills from system memory.
1025ebccf1e3SJoseph Koshy.It Li k8-ic-return-stack-hits
1026ebccf1e3SJoseph KoshyCount hits to the return stack.
1027ebccf1e3SJoseph Koshy.It Li k8-ic-return-stack-overflow
1028ebccf1e3SJoseph KoshyCount overflows of the return stack.
1029ebccf1e3SJoseph Koshy.It Li k8-ls-buffer2-full
1030ebccf1e3SJoseph KoshyCount load/store buffer2 full events.
1031ebccf1e3SJoseph Koshy.It Li k8-ls-locked-operation Op Li ,mask= Ns Ar qualifier
1032ebccf1e3SJoseph KoshyCount locked operations.
1033ebccf1e3SJoseph KoshyFor revision C and later CPUs, the following qualifiers are supported:
10349abe909bSRuslan Ermilov.Pp
10359abe909bSRuslan Ermilov.Bl -tag -width indent -compact
1036ebccf1e3SJoseph Koshy.It Li cycles-in-request
1037ebccf1e3SJoseph KoshyCount the number of cycles in the lock request/grant stage.
1038ebccf1e3SJoseph Koshy.It Li cycles-to-complete
1039ebccf1e3SJoseph KoshyCount the number of cycles a lock takes to complete once it is
1040ebccf1e3SJoseph Koshynon-speculative and is the older load/store operation.
1041ebccf1e3SJoseph Koshy.It Li locked-instructions
1042ebccf1e3SJoseph KoshyCount the number of lock instructions executed.
1043ebccf1e3SJoseph Koshy.El
10449abe909bSRuslan Ermilov.Pp
1045ebccf1e3SJoseph KoshyThe default is to count the number of lock instructions executed.
1046ebccf1e3SJoseph Koshy.It Li k8-ls-microarchitectural-late-cancel
1047ebccf1e3SJoseph KoshyCount microarchitectural late cancels of operations in the load/store
1048ebccf1e3SJoseph Koshyunit.
1049ebccf1e3SJoseph Koshy.It Li k8-ls-microarchitectural-resync-by-self-modifying-code
1050ebccf1e3SJoseph KoshyCount microarchitectural resyncs caused by self-modifying code.
1051ebccf1e3SJoseph Koshy.It Li k8-ls-microarchitectural-resync-by-snoop
1052ebccf1e3SJoseph KoshyCount microarchitectural resyncs caused by snoops.
1053ebccf1e3SJoseph Koshy.It Li k8-ls-retired-cflush-instructions
1054ebccf1e3SJoseph KoshyCount retired CFLUSH instructions.
1055ebccf1e3SJoseph Koshy.It Li k8-ls-retired-cpuid-instructions
1056ebccf1e3SJoseph KoshyCount retired CPUID instructions.
1057ebccf1e3SJoseph Koshy.It Li k8-ls-segment-register-load Op Li ,mask= Ns Ar qualifier
1058ebccf1e3SJoseph KoshyCount segment register loads.
1059ebccf1e3SJoseph KoshyThis event may be further qualified using
1060ebccf1e3SJoseph Koshy.Ar qualifier ,
1061ebccf1e3SJoseph Koshywhich is a
10629abe909bSRuslan Ermilov.Ql +
1063ebccf1e3SJoseph Koshyseparated set of the following keywords:
10649abe909bSRuslan Ermilov.Bl -tag -width indent -compact
1065ebccf1e3SJoseph Koshy.It Li cs
1066ebccf1e3SJoseph KoshyCount CS register loads.
1067ebccf1e3SJoseph Koshy.It Li ds
1068ebccf1e3SJoseph KoshyCount DS register loads.
1069ebccf1e3SJoseph Koshy.It Li es
1070ebccf1e3SJoseph KoshyCount ES register loads.
1071ebccf1e3SJoseph Koshy.It Li fs
1072ebccf1e3SJoseph KoshyCount FS register loads.
1073ebccf1e3SJoseph Koshy.It Li gs
1074ebccf1e3SJoseph KoshyCount GS register loads.
10759abe909bSRuslan Ermilov.\" .It Li hs
1076ebccf1e3SJoseph Koshy.\" Count HS register loads.
1077ebccf1e3SJoseph Koshy.\" XXX "HS" register?
1078ebccf1e3SJoseph Koshy.It Li ss
1079ebccf1e3SJoseph KoshyCount SS register loads.
1080ebccf1e3SJoseph Koshy.El
10819abe909bSRuslan Ermilov.Pp
1082ebccf1e3SJoseph KoshyThe default is to count all types of loads.
1083ebccf1e3SJoseph Koshy.It Li k8-nb-memory-controller-bypass-saturation Op Li ,mask= Ns Ar qualifier
1084ebccf1e3SJoseph KoshyCount memory controller bypass counter saturation events.
1085ebccf1e3SJoseph KoshyThis event may be further qualified using
1086ebccf1e3SJoseph Koshy.Ar qualifier ,
1087ebccf1e3SJoseph Koshywhich is a
10889abe909bSRuslan Ermilov.Ql +
1089ebccf1e3SJoseph Koshyseparated set of the following keywords:
10909abe909bSRuslan Ermilov.Pp
10919abe909bSRuslan Ermilov.Bl -tag -width indent -compact
1092ebccf1e3SJoseph Koshy.It Li dram-controller-interface-bypass
1093ebccf1e3SJoseph KoshyCount DRAM controller interface bypass.
1094ebccf1e3SJoseph Koshy.It Li dram-controller-queue-bypass
1095ebccf1e3SJoseph KoshyCount DRAM controller queue bypass.
1096ebccf1e3SJoseph Koshy.It Li memory-controller-hi-pri-bypass
1097ebccf1e3SJoseph KoshyCount memory controller high priority bypasses.
1098ebccf1e3SJoseph Koshy.It Li memory-controller-lo-pri-bypass
1099ebccf1e3SJoseph KoshyCount memory controller low priority bypasses.
1100ebccf1e3SJoseph Koshy.El
11019abe909bSRuslan Ermilov.Pp
1102ebccf1e3SJoseph Koshy.It Li k8-nb-memory-controller-dram-slots-missed
1103ebccf1e3SJoseph KoshyCount memory controller DRAM command slots missed (in MemClks).
1104ebccf1e3SJoseph Koshy.It Li k8-nb-memory-controller-page-access-event Op Li ,mask= Ns Ar qualifier
1105ebccf1e3SJoseph KoshyCount memory controller page access events.
1106ebccf1e3SJoseph KoshyThis event may be further qualified using
1107ebccf1e3SJoseph Koshy.Ar qualifier ,
1108ebccf1e3SJoseph Koshywhich is a
11099abe909bSRuslan Ermilov.Ql +
1110ebccf1e3SJoseph Koshyseparated set of the following keywords:
11119abe909bSRuslan Ermilov.Pp
11129abe909bSRuslan Ermilov.Bl -tag -width indent -compact
1113ebccf1e3SJoseph Koshy.It Li page-conflict
1114ebccf1e3SJoseph KoshyCount page conflicts.
1115ebccf1e3SJoseph Koshy.It Li page-hit
1116ebccf1e3SJoseph KoshyCount page hits.
1117ebccf1e3SJoseph Koshy.It Li page-miss
1118ebccf1e3SJoseph KoshyCount page misses.
1119ebccf1e3SJoseph Koshy.El
11209abe909bSRuslan Ermilov.Pp
1121ebccf1e3SJoseph KoshyThe default is to count all types of events.
1122ebccf1e3SJoseph Koshy.It Li k8-nb-memory-controller-page-table-overflow
1123ebccf1e3SJoseph KoshyCount memory control page table overflow events.
1124ebccf1e3SJoseph Koshy.It Li k8-nb-probe-result Op Li ,mask= Ns Ar qualifier
1125ebccf1e3SJoseph KoshyCount probe events.
1126ebccf1e3SJoseph KoshyThis event may be further qualified using
1127ebccf1e3SJoseph Koshy.Ar qualifier ,
1128ebccf1e3SJoseph Koshywhich is a
11299abe909bSRuslan Ermilov.Ql +
1130ebccf1e3SJoseph Koshyseparated set of the following keywords:
11319abe909bSRuslan Ermilov.Pp
11329abe909bSRuslan Ermilov.Bl -tag -width indent -compact
1133ebccf1e3SJoseph Koshy.It Li probe-hit
1134ebccf1e3SJoseph KoshyCount all probe hits.
1135ebccf1e3SJoseph Koshy.It Li probe-hit-dirty-no-memory-cancel
1136ebccf1e3SJoseph KoshyCount probe hits without memory cancels.
1137ebccf1e3SJoseph Koshy.It Li probe-hit-dirty-with-memory-cancel
1138ebccf1e3SJoseph KoshyCount probe hits with memory cancels.
1139ebccf1e3SJoseph Koshy.It Li probe-miss
1140ebccf1e3SJoseph KoshyCount probe misses.
1141ebccf1e3SJoseph Koshy.El
1142ebccf1e3SJoseph Koshy.It Li k8-nb-sized-commands Op Li ,mask= Ns Ar qualifier
1143ebccf1e3SJoseph KoshyCount sized commands issued.
1144ebccf1e3SJoseph KoshyThis event may be further qualified using
1145ebccf1e3SJoseph Koshy.Ar qualifier ,
1146ebccf1e3SJoseph Koshywhich is a
11479abe909bSRuslan Ermilov.Ql +
1148ebccf1e3SJoseph Koshyseparated set of the following keywords:
11499abe909bSRuslan Ermilov.Pp
11509abe909bSRuslan Ermilov.Bl -tag -width indent -compact
1151ebccf1e3SJoseph Koshy.It Li nonpostwrszbyte
1152ebccf1e3SJoseph Koshy.It Li nonpostwrszdword
1153ebccf1e3SJoseph Koshy.It Li postwrszbyte
1154ebccf1e3SJoseph Koshy.It Li postwrszdword
1155ebccf1e3SJoseph Koshy.It Li rdszbyte
1156ebccf1e3SJoseph Koshy.It Li rdszdword
1157ebccf1e3SJoseph Koshy.It Li rdmodwr
1158ebccf1e3SJoseph Koshy.El
11599abe909bSRuslan Ermilov.Pp
1160ebccf1e3SJoseph KoshyThe default is to count all types of commands.
1161ebccf1e3SJoseph Koshy.It Li k8-nb-memory-controller-turnaround Op Li ,mask= Ns Ar qualifier
1162ebccf1e3SJoseph KoshyCount memory control turnaround events.
1163ebccf1e3SJoseph KoshyThis event may be further qualified using
1164ebccf1e3SJoseph Koshy.Ar qualifier ,
1165ebccf1e3SJoseph Koshywhich is a
11669abe909bSRuslan Ermilov.Ql +
1167ebccf1e3SJoseph Koshyseparated set of the following keywords:
11689abe909bSRuslan Ermilov.Pp
11699abe909bSRuslan Ermilov.Bl -tag -width indent -compact
1170ebccf1e3SJoseph Koshy.\" XXX doc is unclear whether these are cycle counts or event counts
1171ebccf1e3SJoseph Koshy.It Li dimm-turnaround
1172ebccf1e3SJoseph KoshyCount DIMM turnarounds.
1173ebccf1e3SJoseph Koshy.It Li read-to-write-turnaround
1174ebccf1e3SJoseph KoshyCount read to write turnarounds.
1175ebccf1e3SJoseph Koshy.It Li write-to-read-turnaround
1176ebccf1e3SJoseph KoshyCount write to read turnarounds.
1177ebccf1e3SJoseph Koshy.El
11789abe909bSRuslan Ermilov.Pp
1179ebccf1e3SJoseph KoshyThe default is to count all types of events.
1180ebccf1e3SJoseph Koshy.It Li k8-nb-ht-bus0-bandwidth Op Li ,mask= Ns Ar qualifier
1181ebccf1e3SJoseph Koshy.It Li k8-nb-ht-bus1-bandwidth Op Li ,mask= Ns Ar qualifier
1182ebccf1e3SJoseph Koshy.It Li k8-nb-ht-bus2-bandwidth Op Li ,mask= Ns Ar qualifier
1183ebccf1e3SJoseph KoshyCount events on the HyperTransport(tm) buses.
1184ebccf1e3SJoseph KoshyThese events may be further qualified using
1185ebccf1e3SJoseph Koshy.Ar qualifier ,
1186ebccf1e3SJoseph Koshywhich is a
11879abe909bSRuslan Ermilov.Ql +
1188ebccf1e3SJoseph Koshyseparated set of the following keywords:
11899abe909bSRuslan Ermilov.Pp
11909abe909bSRuslan Ermilov.Bl -tag -width indent -compact
1191ebccf1e3SJoseph Koshy.It Li buffer-release
1192ebccf1e3SJoseph KoshyCount buffer release messages sent.
1193ebccf1e3SJoseph Koshy.It Li command
1194ebccf1e3SJoseph KoshyCount command messages sent.
1195ebccf1e3SJoseph Koshy.It Li data
1196ebccf1e3SJoseph KoshyCount data messages sent.
1197ebccf1e3SJoseph Koshy.It Li nop
1198ebccf1e3SJoseph KoshyCount nop messages sent.
1199ebccf1e3SJoseph Koshy.El
12009abe909bSRuslan Ermilov.Pp
1201ebccf1e3SJoseph KoshyThe default is to count all types of messages.
1202ebccf1e3SJoseph Koshy.El
1203ebccf1e3SJoseph Koshy.Ss Intel P6 PMCS
1204ebccf1e3SJoseph KoshyIntel P6 PMCs are present in Intel
1205ebccf1e3SJoseph Koshy.Tn "Pentium Pro" ,
1206ebccf1e3SJoseph Koshy.Tn "Pentium II" ,
12079abe909bSRuslan Ermilov.Tn Celeron ,
1208ebccf1e3SJoseph Koshy.Tn "Pentium III"
1209ebccf1e3SJoseph Koshyand
1210ebccf1e3SJoseph Koshy.Tn "Pentium M"
1211ebccf1e3SJoseph Koshyprocessors.
1212ebccf1e3SJoseph Koshy.Pp
1213ebccf1e3SJoseph KoshyThese CPUs have two counters.
1214ebccf1e3SJoseph KoshySome events may only be used on specific counters and some events are
1215ebccf1e3SJoseph Koshydefined only on specific processor models.
1216ebccf1e3SJoseph Koshy.Pp
1217ebccf1e3SJoseph KoshyThese PMCs are documented in
1218ebccf1e3SJoseph Koshy.Rs
1219ebccf1e3SJoseph Koshy.%B "IA-32 Intel(R) Architecture Software Developer's Manual"
1220ebccf1e3SJoseph Koshy.%T "Volume 3: System Programming Guide"
1221ebccf1e3SJoseph Koshy.%N "Order Number 245472-012"
1222ebccf1e3SJoseph Koshy.%D 2003
1223ebccf1e3SJoseph Koshy.%Q "Intel Corporation"
1224ebccf1e3SJoseph Koshy.Re
1225ebccf1e3SJoseph Koshy.Pp
122667edd229SJoseph KoshySome of these events are affected by processor errata described in
122767edd229SJoseph Koshy.Rs
122867edd229SJoseph Koshy.%B "Intel(R) Pentium(R) III Processor Specification Update"
122967edd229SJoseph Koshy.%N "Document Number: 244453-054"
123067edd229SJoseph Koshy.%D "April 2005"
123167edd229SJoseph Koshy.%Q "Intel Corporation"
123267edd229SJoseph Koshy.Re
123367edd229SJoseph Koshy.Pp
1234ebccf1e3SJoseph KoshyEvent specifiers for Intel P6 PMCs can have the following common
1235ebccf1e3SJoseph Koshyqualifiers:
1236ebccf1e3SJoseph Koshy.Bl -tag -width indent
1237ebccf1e3SJoseph Koshy.It Li cmask= Ns Ar value
1238ebccf1e3SJoseph KoshyConfigure the PMC to increment only if the number of configured
1239ebccf1e3SJoseph Koshyevents measured in a cycle is greater than or equal to
1240ebccf1e3SJoseph Koshy.Ar value .
1241ebccf1e3SJoseph Koshy.It Li edge
1242ebccf1e3SJoseph KoshyConfigure the PMC to count the number of deasserted to asserted
1243ebccf1e3SJoseph Koshytransitions of the conditions expressed by the other qualifiers.
1244ebccf1e3SJoseph KoshyIf specified, the counter will increment only once whenever a
1245ebccf1e3SJoseph Koshycondition becomes true, irrespective of the number of clocks during
1246ebccf1e3SJoseph Koshywhich the condition remains true.
1247ebccf1e3SJoseph Koshy.It Li inv
1248ebccf1e3SJoseph KoshyInvert the sense of comparision when the
12499abe909bSRuslan Ermilov.Dq Li cmask
1250ebccf1e3SJoseph Koshyqualifier is present, making the counter increment when the number of
1251ebccf1e3SJoseph Koshyevents per cycle is less than the value specified by the
12529abe909bSRuslan Ermilov.Dq Li cmask
1253ebccf1e3SJoseph Koshyqualifier.
1254ebccf1e3SJoseph Koshy.It Li os
1255ebccf1e3SJoseph KoshyConfigure the PMC to count events happening at processor privilege
1256ebccf1e3SJoseph Koshylevel 0.
1257ebccf1e3SJoseph Koshy.It Li umask= Ns Ar value
1258ebccf1e3SJoseph KoshyThis qualifier is used to further qualify the event selected (see
1259ebccf1e3SJoseph Koshybelow).
1260ebccf1e3SJoseph Koshy.It Li usr
1261ebccf1e3SJoseph KoshyConfigure the PMC to count events occurring at privilege levels 1, 2
1262ebccf1e3SJoseph Koshyor 3.
1263ebccf1e3SJoseph Koshy.El
12649abe909bSRuslan Ermilov.Pp
1265ebccf1e3SJoseph KoshyIf neither of the
12669abe909bSRuslan Ermilov.Dq Li os
1267ebccf1e3SJoseph Koshyor
12689abe909bSRuslan Ermilov.Dq Li usr
1269ebccf1e3SJoseph Koshyqualifiers are specified, the default is to enable both.
1270ebccf1e3SJoseph Koshy.Pp
1271ebccf1e3SJoseph KoshyThe event specifiers supported by Intel P6 PMCs are:
1272ebccf1e3SJoseph Koshy.Bl -tag -width indent
1273ebccf1e3SJoseph Koshy.It Li p6-baclears
1274ebccf1e3SJoseph KoshyCount the number of times a static branch prediction was made by the
1275ebccf1e3SJoseph Koshybranch decoder because the BTB did not have a prediction.
1276ebccf1e3SJoseph Koshy.It Li p6-br-bac-missp-exec
1277ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1278ebccf1e3SJoseph KoshyCount the number of branch instructions executed that where
1279ebccf1e3SJoseph Koshymispredicted at the Front End (BAC).
1280ebccf1e3SJoseph Koshy.It Li p6-br-bogus
1281ebccf1e3SJoseph KoshyCount the number of bogus branches.
1282ebccf1e3SJoseph Koshy.It Li p6-br-call-exec
1283ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1284ebccf1e3SJoseph KoshyCount the number of call instructions executed.
1285ebccf1e3SJoseph Koshy.It Li p6-br-call-missp-exec
1286ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1287ebccf1e3SJoseph KoshyCount the number of call instructions executed that were mispredicted.
1288ebccf1e3SJoseph Koshy.It Li p6-br-cnd-exec
1289ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1290ebccf1e3SJoseph KoshyCount the number of conditional branch instructions executed.
1291ebccf1e3SJoseph Koshy.It Li p6-br-cnd-missp-exec
1292ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1293ebccf1e3SJoseph KoshyCount the number of conditional branch instructions executed that were
1294ebccf1e3SJoseph Koshymispredicted.
1295ebccf1e3SJoseph Koshy.It Li p6-br-ind-call-exec
1296ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1297ebccf1e3SJoseph KoshyCount the number of indirect call instructions executed.
1298ebccf1e3SJoseph Koshy.It Li p6-br-ind-exec
1299ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1300ebccf1e3SJoseph KoshyCount the number of indirect branch instructions executed.
1301ebccf1e3SJoseph Koshy.It Li p6-br-ind-missp-exec
1302ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1303ebccf1e3SJoseph KoshyCount the number of indirect branch instructions executed that were
1304ebccf1e3SJoseph Koshymispredicted.
1305ebccf1e3SJoseph Koshy.It Li p6-br-inst-decoded
1306ebccf1e3SJoseph KoshyCount the number of branch instructions decoded.
1307ebccf1e3SJoseph Koshy.It Li p6-br-inst-exec
1308ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1309ebccf1e3SJoseph KoshyCount the number of branch instructions executed but necessarily retired.
1310ebccf1e3SJoseph Koshy.It Li p6-br-inst-retired
1311ebccf1e3SJoseph KoshyCount the number of branch instructions retired.
1312ebccf1e3SJoseph Koshy.It Li p6-br-miss-pred-retired
1313ebccf1e3SJoseph KoshyCount the number of mispredicted branch instructions retired.
1314ebccf1e3SJoseph Koshy.It Li p6-br-miss-pred-taken-ret
1315ebccf1e3SJoseph KoshyCount the number of taken mispredicted branches retired.
1316ebccf1e3SJoseph Koshy.It Li p6-br-missp-exec
1317ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1318ebccf1e3SJoseph KoshyCount the number of branch instructions executed that were
1319ebccf1e3SJoseph Koshymispredicted at execution.
1320ebccf1e3SJoseph Koshy.It Li p6-br-ret-bac-missp-exec
1321ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1322ebccf1e3SJoseph KoshyCount the number of return instructions executed that were
1323ebccf1e3SJoseph Koshymispredicted at the Front End (BAC).
1324ebccf1e3SJoseph Koshy.It Li p6-br-ret-exec
1325ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1326ebccf1e3SJoseph KoshyCount the number of return instructions executed.
1327ebccf1e3SJoseph Koshy.It Li p6-br-ret-missp-exec
1328ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1329ebccf1e3SJoseph KoshyCount the number of return instructions executed that were
1330ebccf1e3SJoseph Koshymispredicted at execution.
1331ebccf1e3SJoseph Koshy.It Li p6-br-taken-retired
1332ebccf1e3SJoseph KoshyCount the number of taken branches retired.
1333ebccf1e3SJoseph Koshy.It Li p6-btb-misses
1334ebccf1e3SJoseph KoshyCount the number of branches for which the BTB did not produce a
1335ebccf1e3SJoseph Koshyprediction.
1336ebccf1e3SJoseph Koshy.It Li p6-bus-bnr-drv
1337ebccf1e3SJoseph KoshyCount the number of bus clock cycles during which this processor is
1338ebccf1e3SJoseph Koshydriving the BNR# pin.
1339ebccf1e3SJoseph Koshy.It Li p6-bus-data-rcv
1340ebccf1e3SJoseph KoshyCount the number of bus clock cycles during which this processor is
1341ebccf1e3SJoseph Koshyreceiving data.
1342ebccf1e3SJoseph Koshy.It Li p6-bus-drdy-clocks Op Li ,umask= Ns Ar qualifier
1343ebccf1e3SJoseph KoshyCount the number of clocks during which DRDY# is asserted.
1344ebccf1e3SJoseph KoshyAn additional qualifier may be specified, and comprises one of the
1345ebccf1e3SJoseph Koshyfollowing keywords:
13469abe909bSRuslan Ermilov.Pp
1347ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1348ebccf1e3SJoseph Koshy.It Li any
1349ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1350ebccf1e3SJoseph Koshy.It Li self
1351ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1352ebccf1e3SJoseph Koshy.El
13539abe909bSRuslan Ermilov.Pp
1354ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1355ebccf1e3SJoseph Koshy.It Li p6-bus-hit-drv
1356ebccf1e3SJoseph KoshyCount the number of bus clock cycles during which this processor is
1357ebccf1e3SJoseph Koshydriving the HIT# pin.
1358ebccf1e3SJoseph Koshy.It Li p6-bus-hitm-drv
1359ebccf1e3SJoseph KoshyCount the number of bus clock cycles during which this processor is
1360ebccf1e3SJoseph Koshydriving the HITM# pin.
1361ebccf1e3SJoseph Koshy.It Li p6-bus-lock-clocks Op Li ,umask= Ns Ar qualifier
1362ebccf1e3SJoseph KoshyCount the number of clocks during with LOCK# is asserted on the
1363ebccf1e3SJoseph Koshyexternal system bus.
1364ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1365ebccf1e3SJoseph Koshykeywords:
13669abe909bSRuslan Ermilov.Pp
1367ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1368ebccf1e3SJoseph Koshy.It Li any
1369ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1370ebccf1e3SJoseph Koshy.It Li self
1371ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1372ebccf1e3SJoseph Koshy.El
13739abe909bSRuslan Ermilov.Pp
1374ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1375ebccf1e3SJoseph Koshy.It Li p6-bus-req-outstanding
1376ebccf1e3SJoseph KoshyCount the number of bus requests outstanding in any given cycle.
1377ebccf1e3SJoseph Koshy.It Li p6-bus-snoop-stall
1378ebccf1e3SJoseph KoshyCount the number of clock cycles during which the bus is snoop stalled.
1379ebccf1e3SJoseph Koshy.It Li p6-bus-tran-any Op Li ,umask= Ns Ar qualifier
1380ebccf1e3SJoseph KoshyCount the number of completed bus transactions of any kind.
1381ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1382ebccf1e3SJoseph Koshykeywords:
13839abe909bSRuslan Ermilov.Pp
1384ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1385ebccf1e3SJoseph Koshy.It Li any
1386ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1387ebccf1e3SJoseph Koshy.It Li self
1388ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1389ebccf1e3SJoseph Koshy.El
13909abe909bSRuslan Ermilov.Pp
1391ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1392ebccf1e3SJoseph Koshy.It Li p6-bus-tran-brd Op Li ,umask= Ns Ar qualifier
1393ebccf1e3SJoseph KoshyCount the number of burst read transactions.
1394ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1395ebccf1e3SJoseph Koshykeywords:
13969abe909bSRuslan Ermilov.Pp
1397ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1398ebccf1e3SJoseph Koshy.It Li any
1399ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1400ebccf1e3SJoseph Koshy.It Li self
1401ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1402ebccf1e3SJoseph Koshy.El
14039abe909bSRuslan Ermilov.Pp
1404ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1405ebccf1e3SJoseph Koshy.It Li p6-bus-tran-burst Op Li ,umask= Ns Ar qualifier
1406ebccf1e3SJoseph KoshyCount the number of completed burst transactions.
1407ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1408ebccf1e3SJoseph Koshykeywords:
14099abe909bSRuslan Ermilov.Pp
1410ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1411ebccf1e3SJoseph Koshy.It Li any
1412ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1413ebccf1e3SJoseph Koshy.It Li self
1414ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1415ebccf1e3SJoseph Koshy.El
14169abe909bSRuslan Ermilov.Pp
1417ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1418ebccf1e3SJoseph Koshy.It Li p6-bus-tran-def Op Li ,umask= Ns Ar qualifier
1419ebccf1e3SJoseph KoshyCount the number of completed deferred transactions.
1420ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1421ebccf1e3SJoseph Koshykeywords:
14229abe909bSRuslan Ermilov.Pp
1423ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1424ebccf1e3SJoseph Koshy.It Li any
1425ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1426ebccf1e3SJoseph Koshy.It Li self
1427ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1428ebccf1e3SJoseph Koshy.El
14299abe909bSRuslan Ermilov.Pp
1430ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1431ebccf1e3SJoseph Koshy.It Li p6-bus-tran-ifetch Op Li ,umask= Ns Ar qualifier
1432ebccf1e3SJoseph KoshyCount the number of completed instruction fetch transactions.
1433ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1434ebccf1e3SJoseph Koshykeywords:
14359abe909bSRuslan Ermilov.Pp
1436ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1437ebccf1e3SJoseph Koshy.It Li any
1438ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1439ebccf1e3SJoseph Koshy.It Li self
1440ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1441ebccf1e3SJoseph Koshy.El
14429abe909bSRuslan Ermilov.Pp
1443ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1444ebccf1e3SJoseph Koshy.It Li p6-bus-tran-inval Op Li ,umask= Ns Ar qualifier
1445ebccf1e3SJoseph KoshyCount the number of completed invalidate transactions.
1446ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1447ebccf1e3SJoseph Koshykeywords:
14489abe909bSRuslan Ermilov.Pp
1449ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1450ebccf1e3SJoseph Koshy.It Li any
1451ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1452ebccf1e3SJoseph Koshy.It Li self
1453ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1454ebccf1e3SJoseph Koshy.El
14559abe909bSRuslan Ermilov.Pp
1456ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1457ebccf1e3SJoseph Koshy.It Li p6-bus-tran-mem Op Li ,umask= Ns Ar qualifier
1458ebccf1e3SJoseph KoshyCount the number of completed memory transactions.
1459ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1460ebccf1e3SJoseph Koshykeywords:
14619abe909bSRuslan Ermilov.Pp
1462ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1463ebccf1e3SJoseph Koshy.It Li any
1464ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1465ebccf1e3SJoseph Koshy.It Li self
1466ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1467ebccf1e3SJoseph Koshy.El
14689abe909bSRuslan Ermilov.Pp
1469ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1470ebccf1e3SJoseph Koshy.It Li p6-bus-tran-pwr Op Li ,umask= Ns Ar qualifier
1471ebccf1e3SJoseph KoshyCount the number of completed partial write transactions.
1472ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1473ebccf1e3SJoseph Koshykeywords:
14749abe909bSRuslan Ermilov.Pp
1475ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1476ebccf1e3SJoseph Koshy.It Li any
1477ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1478ebccf1e3SJoseph Koshy.It Li self
1479ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1480ebccf1e3SJoseph Koshy.El
14819abe909bSRuslan Ermilov.Pp
1482ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1483ebccf1e3SJoseph Koshy.It Li p6-bus-tran-rfo Op Li ,umask= Ns Ar qualifier
1484ebccf1e3SJoseph KoshyCount the number of completed read-for-ownership transactions.
1485ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1486ebccf1e3SJoseph Koshykeywords:
14879abe909bSRuslan Ermilov.Pp
1488ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1489ebccf1e3SJoseph Koshy.It Li any
1490ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1491ebccf1e3SJoseph Koshy.It Li self
1492ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1493ebccf1e3SJoseph Koshy.El
14949abe909bSRuslan Ermilov.Pp
1495ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1496ebccf1e3SJoseph Koshy.It Li p6-bus-trans-io Op Li ,umask= Ns Ar qualifier
1497ebccf1e3SJoseph KoshyCount the number of completed I/O transactions.
1498ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1499ebccf1e3SJoseph Koshykeywords:
15009abe909bSRuslan Ermilov.Pp
1501ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1502ebccf1e3SJoseph Koshy.It Li any
1503ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1504ebccf1e3SJoseph Koshy.It Li self
1505ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1506ebccf1e3SJoseph Koshy.El
15079abe909bSRuslan Ermilov.Pp
1508ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1509ebccf1e3SJoseph Koshy.It Li p6-bus-trans-p Op Li ,umask= Ns Ar qualifier
1510ebccf1e3SJoseph KoshyCount the number of completed partial transactions.
1511ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1512ebccf1e3SJoseph Koshykeywords:
15139abe909bSRuslan Ermilov.Pp
1514ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1515ebccf1e3SJoseph Koshy.It Li any
1516ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1517ebccf1e3SJoseph Koshy.It Li self
1518ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1519ebccf1e3SJoseph Koshy.El
15209abe909bSRuslan Ermilov.Pp
1521ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1522ebccf1e3SJoseph Koshy.It Li p6-bus-trans-wb Op Li ,umask= Ns Ar qualifier
1523ebccf1e3SJoseph KoshyCount the number of completed write-back transactions.
1524ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises one of the following
1525ebccf1e3SJoseph Koshykeywords:
15269abe909bSRuslan Ermilov.Pp
1527ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1528ebccf1e3SJoseph Koshy.It Li any
1529ebccf1e3SJoseph KoshyCount transactions generated by any agent on the bus.
1530ebccf1e3SJoseph Koshy.It Li self
1531ebccf1e3SJoseph KoshyCount transactions generated by this processor.
1532ebccf1e3SJoseph Koshy.El
15339abe909bSRuslan Ermilov.Pp
1534ebccf1e3SJoseph KoshyThe default is to count operations generated by this processor.
1535ebccf1e3SJoseph Koshy.It Li p6-cpu-clk-unhalted
1536ebccf1e3SJoseph KoshyCount the number of cycles during with the processor was not halted.
1537ebccf1e3SJoseph Koshy.Pp
1538ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1539ebccf1e3SJoseph KoshyCount the number of cycles during with the processor was not halted
1540ebccf1e3SJoseph Koshyand not in a thermal trip.
1541ebccf1e3SJoseph Koshy.It Li p6-cycles-div-busy
1542ebccf1e3SJoseph KoshyCount the number of cycles during which the divider is busy and cannot
1543ebccf1e3SJoseph Koshyaccept new divides.
1544ebccf1e3SJoseph KoshyThis event is only allocated on counter 0.
1545ebccf1e3SJoseph Koshy.It Li p6-cycles-in-pending-and-masked
1546ebccf1e3SJoseph KoshyCount the number of processor cycles for which interrupts were
1547ebccf1e3SJoseph Koshydisabled and interrupts were pending.
1548ebccf1e3SJoseph Koshy.It Li p6-cycles-int-masked
1549ebccf1e3SJoseph KoshyCount the number of processor cycles for which interrupts were
1550ebccf1e3SJoseph Koshydisabled.
1551ebccf1e3SJoseph Koshy.It Li p6-data-mem-refs
1552ebccf1e3SJoseph KoshyCount all loads and all stores using any memory type, including
1553ebccf1e3SJoseph Koshyinternal retries.
15549abe909bSRuslan ErmilovEach part of a split store is counted separately.
1555ebccf1e3SJoseph Koshy.It Li p6-dcu-lines-in
1556ebccf1e3SJoseph KoshyCount the total lines allocated in the data cache unit.
1557ebccf1e3SJoseph Koshy.It Li p6-dcu-m-lines-in
1558ebccf1e3SJoseph KoshyCount the number of M state lines allocated in the data cache unit.
1559ebccf1e3SJoseph Koshy.It Li p6-dcu-m-lines-out
1560ebccf1e3SJoseph KoshyCount the number of M state lines evicted from the data cache unit.
1561ebccf1e3SJoseph Koshy.It Li p6-dcu-miss-outstanding
1562ebccf1e3SJoseph KoshyCount the weighted number of cycles while a data cache unit miss is
1563ebccf1e3SJoseph Koshyoutstanding, incremented by the number of outstanding cache misses at
1564ebccf1e3SJoseph Koshyany time.
1565ebccf1e3SJoseph Koshy.It Li p6-div
1566d62f5d4eSJoseph KoshyCount the number of integer and floating-point divides including
1567d62f5d4eSJoseph Koshyspeculative divides.
1568ebccf1e3SJoseph KoshyThis event is only allocated on counter 1.
1569ebccf1e3SJoseph Koshy.It Li p6-emon-esp-uops
1570ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1571ebccf1e3SJoseph KoshyCount the total number of micro-ops.
1572ebccf1e3SJoseph Koshy.It Li p6-emon-est-trans Op Li ,umask= Ns Ar qualifier
1573ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1574ebccf1e3SJoseph KoshyCount the number of
1575ebccf1e3SJoseph Koshy.Tn "Enhanced Intel SpeedStep"
1576ebccf1e3SJoseph Koshytransitions.
1577ebccf1e3SJoseph KoshyAn additional qualifier may be specified, and can be one of the
1578ebccf1e3SJoseph Koshyfollowing keywords:
15799abe909bSRuslan Ermilov.Pp
1580ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1581ebccf1e3SJoseph Koshy.It Li all
1582ebccf1e3SJoseph KoshyCount all transitions.
1583ebccf1e3SJoseph Koshy.It Li freq
1584ebccf1e3SJoseph KoshyCount only frequency transitions.
1585ebccf1e3SJoseph Koshy.El
15869abe909bSRuslan Ermilov.Pp
1587ebccf1e3SJoseph KoshyThe default is to count all transitions.
1588ebccf1e3SJoseph Koshy.It Li p6-emon-fused-uops-ret Op Li ,umask= Ns Ar qualifier
1589ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1590ebccf1e3SJoseph KoshyCount the number of retired fused micro-ops.
1591ebccf1e3SJoseph KoshyAn additional qualifier may be specified, and may be one of the
1592ebccf1e3SJoseph Koshyfollowing keywords:
15939abe909bSRuslan Ermilov.Pp
1594ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1595ebccf1e3SJoseph Koshy.It Li all
1596ebccf1e3SJoseph KoshyCount all fused micro-ops.
1597ebccf1e3SJoseph Koshy.It Li loadop
1598ebccf1e3SJoseph KoshyCount only load and op micro-ops.
1599ebccf1e3SJoseph Koshy.It Li stdsta
1600ebccf1e3SJoseph KoshyCount only STD/STA micro-ops.
1601ebccf1e3SJoseph Koshy.El
16029abe909bSRuslan Ermilov.Pp
1603ebccf1e3SJoseph KoshyThe default is to count all fused micro-ops.
1604ebccf1e3SJoseph Koshy.It Li p6-emon-kni-comp-inst-ret
1605ebccf1e3SJoseph Koshy.Pq Tn "Pentium III"
1606ebccf1e3SJoseph KoshyCount the number of SSE computational instructions retired.
1607ebccf1e3SJoseph KoshyAn additional qualifier may be specified, and comprises one of the
1608ebccf1e3SJoseph Koshyfollowing keywords:
16099abe909bSRuslan Ermilov.Pp
1610ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1611ebccf1e3SJoseph Koshy.It Li packed-and-scalar
1612ebccf1e3SJoseph KoshyCount packed and scalar operations.
1613ebccf1e3SJoseph Koshy.It Li scalar
1614ebccf1e3SJoseph KoshyCount scalar operations only.
1615ebccf1e3SJoseph Koshy.El
16169abe909bSRuslan Ermilov.Pp
1617ebccf1e3SJoseph KoshyThe default is to count packed and scalar operations.
1618ebccf1e3SJoseph Koshy.It Li p6-emon-kni-inst-retired Op Li ,umask= Ns Ar qualifier
1619ebccf1e3SJoseph Koshy.Pq Tn "Pentium III"
1620ebccf1e3SJoseph KoshyCount the number of SSE instructions retired.
1621ebccf1e3SJoseph KoshyAn additional qualifier may be specified, and comprises one of the
1622ebccf1e3SJoseph Koshyfollowing keywords:
16239abe909bSRuslan Ermilov.Pp
1624ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1625ebccf1e3SJoseph Koshy.It Li packed-and-scalar
1626ebccf1e3SJoseph KoshyCount packed and scalar operations.
1627ebccf1e3SJoseph Koshy.It Li scalar
1628ebccf1e3SJoseph KoshyCount scalar operations only.
1629ebccf1e3SJoseph Koshy.El
16309abe909bSRuslan Ermilov.Pp
1631ebccf1e3SJoseph KoshyThe default is to count packed and scalar operations.
1632ebccf1e3SJoseph Koshy.It Li p6-emon-kni-pref-dispatched Op Li ,umask= Ns Ar qualifier
1633ebccf1e3SJoseph Koshy.Pq Tn "Pentium III"
1634ebccf1e3SJoseph KoshyCount the number of SSE prefetch or weakly ordered instructions
1635ebccf1e3SJoseph Koshydispatched (including speculative prefetches).
1636ebccf1e3SJoseph KoshyAn additional qualifier may be specified, and comprises one of the
1637ebccf1e3SJoseph Koshyfollowing keywords:
16389abe909bSRuslan Ermilov.Pp
1639ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1640ebccf1e3SJoseph Koshy.It Li nta
1641ebccf1e3SJoseph KoshyCount non-temporal prefetches.
1642ebccf1e3SJoseph Koshy.It Li t1
1643ebccf1e3SJoseph KoshyCount prefetches to L1.
1644ebccf1e3SJoseph Koshy.It Li t2
1645ebccf1e3SJoseph KoshyCount prefetches to L2.
1646ebccf1e3SJoseph Koshy.It Li wos
1647ebccf1e3SJoseph KoshyCount weakly ordered stores.
1648ebccf1e3SJoseph Koshy.El
16499abe909bSRuslan Ermilov.Pp
1650ebccf1e3SJoseph KoshyThe default is to count non-temporal prefetches.
1651ebccf1e3SJoseph Koshy.It Li p6-emon-kni-pref-miss Op Li ,umask= Ns Ar qualifier
1652ebccf1e3SJoseph Koshy.Pq Tn "Pentium III"
1653ebccf1e3SJoseph KoshyCount the number of prefetch or weakly ordered instructions that miss
1654ebccf1e3SJoseph Koshyall caches.
1655ebccf1e3SJoseph KoshyAn additional qualifier may be specified, and comprises one of the
1656ebccf1e3SJoseph Koshyfollowing keywords:
16579abe909bSRuslan Ermilov.Pp
1658ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1659ebccf1e3SJoseph Koshy.It Li nta
1660ebccf1e3SJoseph KoshyCount non-temporal prefetches.
1661ebccf1e3SJoseph Koshy.It Li t1
1662ebccf1e3SJoseph KoshyCount prefetches to L1.
1663ebccf1e3SJoseph Koshy.It Li t2
1664ebccf1e3SJoseph KoshyCount prefetches to L2.
1665ebccf1e3SJoseph Koshy.It Li wos
1666ebccf1e3SJoseph KoshyCount weakly ordered stores.
1667ebccf1e3SJoseph Koshy.El
16689abe909bSRuslan Ermilov.Pp
1669ebccf1e3SJoseph KoshyThe default is to count non-temporal prefetches.
1670ebccf1e3SJoseph Koshy.It Li p6-emon-pref-rqsts-dn
1671ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1672ebccf1e3SJoseph KoshyCount the number of downward prefetches issued.
1673ebccf1e3SJoseph Koshy.It Li p6-emon-pref-rqsts-up
1674ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1675ebccf1e3SJoseph KoshyCount the number of upward prefetches issued.
1676ebccf1e3SJoseph Koshy.It Li p6-emon-simd-instr-retired
1677ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1678ebccf1e3SJoseph KoshyCount the number of retired
1679ebccf1e3SJoseph Koshy.Tn MMX
1680ebccf1e3SJoseph Koshyinstructions.
1681ebccf1e3SJoseph Koshy.It Li p6-emon-sse-sse2-comp-inst-retired Op Li ,umask= Ns Ar qualifier
1682ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1683ebccf1e3SJoseph KoshyCount the number of computational SSE instructions retired.
1684ebccf1e3SJoseph KoshyAn additional qualifier may be specified and can be one of the
1685ebccf1e3SJoseph Koshyfollowing keywords:
16869abe909bSRuslan Ermilov.Pp
1687ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1688ebccf1e3SJoseph Koshy.It Li sse-packed-single
1689ebccf1e3SJoseph KoshyCount SSE packed-single instructions.
1690ebccf1e3SJoseph Koshy.It Li sse-scalar-single
1691ebccf1e3SJoseph KoshyCount SSE scalar-single instructions.
1692ebccf1e3SJoseph Koshy.It Li sse2-packed-double
1693ebccf1e3SJoseph KoshyCount SSE2 packed-double instructions.
1694ebccf1e3SJoseph Koshy.It Li sse2-scalar-double
1695ebccf1e3SJoseph KoshyCount SSE2 scalar-double instructions.
1696ebccf1e3SJoseph Koshy.El
16979abe909bSRuslan Ermilov.Pp
1698ebccf1e3SJoseph KoshyThe default is to count SSE packed-single instructions.
1699ebccf1e3SJoseph Koshy.It Li p6-emon-sse-sse2-inst-retired Op Li ,umask= Ns Ar qualifer
1700ebccf1e3SJoseph Koshy.Pp
1701ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1702ebccf1e3SJoseph KoshyCount the number of SSE instructions retired.
1703ebccf1e3SJoseph KoshyAn additional qualifier can be specified, and can be one of the
1704ebccf1e3SJoseph Koshyfollowing keywords:
17059abe909bSRuslan Ermilov.Pp
1706ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1707ebccf1e3SJoseph Koshy.It Li sse-packed-single
1708ebccf1e3SJoseph KoshyCount SSE packed-single instructions.
1709ebccf1e3SJoseph Koshy.It Li sse-packed-single-scalar-single
1710ebccf1e3SJoseph KoshyCount SSE packed-single and scalar-single instructions.
1711ebccf1e3SJoseph Koshy.It Li sse2-packed-double
1712ebccf1e3SJoseph KoshyCount SSE2 packed-double instructions.
1713ebccf1e3SJoseph Koshy.It Li sse2-scalar-double
1714ebccf1e3SJoseph KoshyCount SSE2 scalar-double instructions.
1715ebccf1e3SJoseph Koshy.El
17169abe909bSRuslan Ermilov.Pp
1717ebccf1e3SJoseph KoshyThe default is to count SSE packed-single instructions.
1718ebccf1e3SJoseph Koshy.It Li p6-emon-synch-uops
1719ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1720ebccf1e3SJoseph KoshyCount the number of sync micro-ops.
1721ebccf1e3SJoseph Koshy.It Li p6-emon-thermal-trip
1722ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1723ebccf1e3SJoseph KoshyCount the duration or occurrences of thermal trips.
1724ebccf1e3SJoseph KoshyUse the
17259abe909bSRuslan Ermilov.Dq Li edge
1726ebccf1e3SJoseph Koshyqualifier to count occurrences of thermal trips.
1727ebccf1e3SJoseph Koshy.It Li p6-emon-unfusion
1728ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1729ebccf1e3SJoseph KoshyCount the number of unfusion events in the reorder buffer.
1730ebccf1e3SJoseph Koshy.It Li p6-flops
1731ebccf1e3SJoseph KoshyCount the number of computational floating point operations retired.
1732ebccf1e3SJoseph KoshyThis event is only allocated on counter 0.
1733ebccf1e3SJoseph Koshy.It Li p6-fp-assist
1734ebccf1e3SJoseph KoshyCount the number of floating point exceptions handled by microcode.
1735ebccf1e3SJoseph KoshyThis event is only allocated on counter 1.
1736ebccf1e3SJoseph Koshy.It Li p6-fp-comps-ops-exe
1737ebccf1e3SJoseph KoshyCount the number of computation floating point operations executed.
1738ebccf1e3SJoseph KoshyThis event is only allocated on counter 0.
1739ebccf1e3SJoseph Koshy.It Li p6-fp-mmx-trans Op Li ,umask= Ns Ar qualifier
1740ebccf1e3SJoseph Koshy.Pq Tn "Pentium II" , Tn "Pentium III"
1741ebccf1e3SJoseph KoshyCount the number of transitions between MMX and floating-point
1742ebccf1e3SJoseph Koshyinstructions.
1743ebccf1e3SJoseph KoshyAn additional qualifier may be specified, and comprises one of the
1744ebccf1e3SJoseph Koshyfollowing keywords:
17459abe909bSRuslan Ermilov.Pp
1746ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1747ebccf1e3SJoseph Koshy.It Li mmxtofp
1748ebccf1e3SJoseph KoshyCount transitions from MMX instructions to floating-point instructions.
1749ebccf1e3SJoseph Koshy.It Li fptommx
1750ebccf1e3SJoseph KoshyCount transitions from floating-point instructions to MMX instructions.
1751ebccf1e3SJoseph Koshy.El
17529abe909bSRuslan Ermilov.Pp
1753ebccf1e3SJoseph KoshyThe default is to count MMX to floating-point transitions.
1754ebccf1e3SJoseph Koshy.It Li p6-hw-int-rx
1755ebccf1e3SJoseph KoshyCount the number of hardware interrupts received.
1756ebccf1e3SJoseph Koshy.It Li p6-ifu-fetch
1757ebccf1e3SJoseph KoshyCount the number of instruction fetches, both cacheable and non-cacheable.
1758ebccf1e3SJoseph Koshy.It Li p6-ifu-fetch-miss
1759ebccf1e3SJoseph KoshyCount the number of instruction fetch misses (i.e., those that produce
1760ebccf1e3SJoseph Koshymemory accesses).
1761ebccf1e3SJoseph Koshy.It Li p6-ifu-mem-stall
1762ebccf1e3SJoseph KoshyCount the number of cycles instruction fetch is stalled for any reason.
1763ebccf1e3SJoseph Koshy.It Li p6-ild-stall
1764ebccf1e3SJoseph KoshyCount the number of cycles the instruction length decoder is stalled.
1765ebccf1e3SJoseph Koshy.It Li p6-inst-decoded
1766ebccf1e3SJoseph KoshyCount the number of instructions decoded.
1767ebccf1e3SJoseph Koshy.It Li p6-inst-retired
1768ebccf1e3SJoseph KoshyCount the number of instructions retired.
1769ebccf1e3SJoseph Koshy.It Li p6-itlb-miss
1770ebccf1e3SJoseph KoshyCount the number of instruction TLB misses.
1771ebccf1e3SJoseph Koshy.It Li p6-l2-ads
1772ebccf1e3SJoseph KoshyCount the number of L2 address strobes.
1773ebccf1e3SJoseph Koshy.It Li p6-l2-dbus-busy
1774ebccf1e3SJoseph KoshyCount the number of cycles during which the L2 cache data bus was busy.
1775ebccf1e3SJoseph Koshy.It Li p6-l2-dbus-busy-rd
1776ebccf1e3SJoseph KoshyCount the number of cycles during which the L2 cache data bus was busy
1777ebccf1e3SJoseph Koshytransferring read data from L2 to the processor.
1778ebccf1e3SJoseph Koshy.It Li p6-l2-ifetch Op Li ,umask= Ns Ar qualifier
1779ebccf1e3SJoseph KoshyCount the number of L2 instruction fetches.
1780ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises a list of the following
1781ebccf1e3SJoseph Koshykeywords separated by
17829abe909bSRuslan Ermilov.Ql +
1783ebccf1e3SJoseph Koshycharacters:
17849abe909bSRuslan Ermilov.Pp
1785ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1786ebccf1e3SJoseph Koshy.It Li e
1787ebccf1e3SJoseph KoshyCount operations affecting E (exclusive) state lines.
1788ebccf1e3SJoseph Koshy.It Li i
1789ebccf1e3SJoseph KoshyCount operations affecting I (invalid) state lines.
1790ebccf1e3SJoseph Koshy.It Li m
1791ebccf1e3SJoseph KoshyCount operations affecting M (modified) state lines.
1792ebccf1e3SJoseph Koshy.It Li s
1793ebccf1e3SJoseph KoshyCount operations affecting S (shared) state lines.
1794ebccf1e3SJoseph Koshy.El
17959abe909bSRuslan Ermilov.Pp
1796ebccf1e3SJoseph KoshyThe default is to count operations affecting all (MESI) state lines.
1797ebccf1e3SJoseph Koshy.It Li p6-l2-ld Op Li ,umask= Ns Ar qualifier
1798ebccf1e3SJoseph KoshyCount the number of L2 data loads.
1799ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises a list of the following
1800ebccf1e3SJoseph Koshykeywords separated by
18019abe909bSRuslan Ermilov.Ql +
1802ebccf1e3SJoseph Koshycharacters:
18039abe909bSRuslan Ermilov.Pp
1804ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1805ebccf1e3SJoseph Koshy.It Li both
1806ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1807ebccf1e3SJoseph KoshyCount both hardware-prefetched lines and non-hardware-prefetched lines.
1808ebccf1e3SJoseph Koshy.It Li e
1809ebccf1e3SJoseph KoshyCount operations affecting E (exclusive) state lines.
1810ebccf1e3SJoseph Koshy.It Li hw
1811ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1812ebccf1e3SJoseph KoshyCount hardware-prefetched lines only.
1813ebccf1e3SJoseph Koshy.It Li i
1814ebccf1e3SJoseph KoshyCount operations affecting I (invalid) state lines.
1815ebccf1e3SJoseph Koshy.It Li m
1816ebccf1e3SJoseph KoshyCount operations affecting M (modified) state lines.
1817ebccf1e3SJoseph Koshy.It Li nonhw
1818ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1819ebccf1e3SJoseph KoshyExclude hardware-prefetched lines.
1820ebccf1e3SJoseph Koshy.It Li s
1821ebccf1e3SJoseph KoshyCount operations affecting S (shared) state lines.
1822ebccf1e3SJoseph Koshy.El
18239abe909bSRuslan Ermilov.Pp
1824ebccf1e3SJoseph KoshyThe default on processors other than
1825ebccf1e3SJoseph Koshy.Tn "Pentium M"
1826ebccf1e3SJoseph Koshyprocessors is to count operations affecting all (MESI) state lines.
1827ebccf1e3SJoseph KoshyThe default on
1828ebccf1e3SJoseph Koshy.Tn "Pentium M"
1829ebccf1e3SJoseph Koshyprocessors is to count both hardware-prefetched and
1830ebccf1e3SJoseph Koshynon-hardware-prefetch operations on all (MESI) state lines.
183167edd229SJoseph Koshy.Pq Errata
183267edd229SJoseph KoshyThis event is affected by processor errata E53.
1833ebccf1e3SJoseph Koshy.It Li p6-l2-lines-in Op Li ,umask= Ns Ar qualifier
1834ebccf1e3SJoseph KoshyCount the number of L2 lines allocated.
1835ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises a list of the following
1836ebccf1e3SJoseph Koshykeywords separated by
18379abe909bSRuslan Ermilov.Ql +
1838ebccf1e3SJoseph Koshycharacters:
18399abe909bSRuslan Ermilov.Pp
1840ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1841ebccf1e3SJoseph Koshy.It Li both
1842ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1843ebccf1e3SJoseph KoshyCount both hardware-prefetched lines and non-hardware-prefetched lines.
1844ebccf1e3SJoseph Koshy.It Li e
1845ebccf1e3SJoseph KoshyCount operations affecting E (exclusive) state lines.
1846ebccf1e3SJoseph Koshy.It Li hw
1847ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1848ebccf1e3SJoseph KoshyCount hardware-prefetched lines only.
1849ebccf1e3SJoseph Koshy.It Li i
1850ebccf1e3SJoseph KoshyCount operations affecting I (invalid) state lines.
1851ebccf1e3SJoseph Koshy.It Li m
1852ebccf1e3SJoseph KoshyCount operations affecting M (modified) state lines.
1853ebccf1e3SJoseph Koshy.It Li nonhw
1854ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1855ebccf1e3SJoseph KoshyExclude hardware-prefetched lines.
1856ebccf1e3SJoseph Koshy.It Li s
1857ebccf1e3SJoseph KoshyCount operations affecting S (shared) state lines.
1858ebccf1e3SJoseph Koshy.El
18599abe909bSRuslan Ermilov.Pp
1860ebccf1e3SJoseph KoshyThe default on processors other than
1861ebccf1e3SJoseph Koshy.Tn "Pentium M"
1862ebccf1e3SJoseph Koshyprocessors is to count operations affecting all (MESI) state lines.
1863ebccf1e3SJoseph KoshyThe default on
1864ebccf1e3SJoseph Koshy.Tn "Pentium M"
1865ebccf1e3SJoseph Koshyprocessors is to count both hardware-prefetched and
1866ebccf1e3SJoseph Koshynon-hardware-prefetch operations on all (MESI) state lines.
186767edd229SJoseph Koshy.Pq Errata
186867edd229SJoseph KoshyThis event is affected by processor errata E45.
1869ebccf1e3SJoseph Koshy.It Li p6-l2-lines-out Op Li ,umask= Ns Ar qualifier
1870ebccf1e3SJoseph KoshyCount the number of L2 lines evicted.
1871ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises a list of the following
1872ebccf1e3SJoseph Koshykeywords separated by
18739abe909bSRuslan Ermilov.Ql +
1874ebccf1e3SJoseph Koshycharacters:
18759abe909bSRuslan Ermilov.Pp
1876ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1877ebccf1e3SJoseph Koshy.It Li both
1878ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1879ebccf1e3SJoseph KoshyCount both hardware-prefetched lines and non-hardware-prefetched lines.
1880ebccf1e3SJoseph Koshy.It Li e
1881ebccf1e3SJoseph KoshyCount operations affecting E (exclusive) state lines.
1882ebccf1e3SJoseph Koshy.It Li hw
1883ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1884ebccf1e3SJoseph KoshyCount hardware-prefetched lines only.
1885ebccf1e3SJoseph Koshy.It Li i
1886ebccf1e3SJoseph KoshyCount operations affecting I (invalid) state lines.
1887ebccf1e3SJoseph Koshy.It Li m
1888ebccf1e3SJoseph KoshyCount operations affecting M (modified) state lines.
1889ebccf1e3SJoseph Koshy.It Li nonhw
1890ebccf1e3SJoseph Koshy.Pq Tn "Pentium M" only
1891ebccf1e3SJoseph KoshyExclude hardware-prefetched lines.
1892ebccf1e3SJoseph Koshy.It Li s
1893ebccf1e3SJoseph KoshyCount operations affecting S (shared) state lines.
1894ebccf1e3SJoseph Koshy.El
18959abe909bSRuslan Ermilov.Pp
1896ebccf1e3SJoseph KoshyThe default on processors other than
1897ebccf1e3SJoseph Koshy.Tn "Pentium M"
1898ebccf1e3SJoseph Koshyprocessors is to count operations affecting all (MESI) state lines.
1899ebccf1e3SJoseph KoshyThe default on
1900ebccf1e3SJoseph Koshy.Tn "Pentium M"
1901ebccf1e3SJoseph Koshyprocessors is to count both hardware-prefetched and
1902ebccf1e3SJoseph Koshynon-hardware-prefetch operations on all (MESI) state lines.
190367edd229SJoseph Koshy.Pq Errata
190467edd229SJoseph KoshyThis event is affected by processor errata E45.
1905ebccf1e3SJoseph Koshy.It Li p6-l2-m-lines-inm
1906ebccf1e3SJoseph KoshyCount the number of modified lines allocated in L2 cache.
1907ebccf1e3SJoseph Koshy.It Li p6-l2-m-lines-outm Op Li ,umask= Ns Ar qualifier
1908ebccf1e3SJoseph KoshyCount the number of L2 M-state lines evicted.
1909ebccf1e3SJoseph Koshy.Pp
1910ebccf1e3SJoseph Koshy.Pq Tn "Pentium M"
1911ebccf1e3SJoseph KoshyOn these processors an additional qualifier may be specified and
1912ebccf1e3SJoseph Koshycomprises a list of the following keywords separated by
19139abe909bSRuslan Ermilov.Ql +
1914ebccf1e3SJoseph Koshycharacters:
19159abe909bSRuslan Ermilov.Pp
1916ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1917ebccf1e3SJoseph Koshy.It Li both
1918ebccf1e3SJoseph KoshyCount both hardware-prefetched lines and non-hardware-prefetched lines.
1919ebccf1e3SJoseph Koshy.It Li hw
1920ebccf1e3SJoseph KoshyCount hardware-prefetched lines only.
1921ebccf1e3SJoseph Koshy.It Li nonhw
1922ebccf1e3SJoseph KoshyExclude hardware-prefetched lines.
1923ebccf1e3SJoseph Koshy.El
19249abe909bSRuslan Ermilov.Pp
1925ebccf1e3SJoseph KoshyThe default is to count both hardware-prefetched and
1926ebccf1e3SJoseph Koshynon-hardware-prefetch operations.
192767edd229SJoseph Koshy.Pq Errata
192867edd229SJoseph KoshyThis event is affected by processor errata E53.
1929ebccf1e3SJoseph Koshy.It Li p6-l2-rqsts Op Li ,umask= Ns Ar qualifier
1930ebccf1e3SJoseph KoshyCount the total number of L2 requests.
1931ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises a list of the following
1932ebccf1e3SJoseph Koshykeywords separated by
19339abe909bSRuslan Ermilov.Ql +
1934ebccf1e3SJoseph Koshycharacters:
19359abe909bSRuslan Ermilov.Pp
1936ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1937ebccf1e3SJoseph Koshy.It Li e
1938ebccf1e3SJoseph KoshyCount operations affecting E (exclusive) state lines.
1939ebccf1e3SJoseph Koshy.It Li i
1940ebccf1e3SJoseph KoshyCount operations affecting I (invalid) state lines.
1941ebccf1e3SJoseph Koshy.It Li m
1942ebccf1e3SJoseph KoshyCount operations affecting M (modified) state lines.
1943ebccf1e3SJoseph Koshy.It Li s
1944ebccf1e3SJoseph KoshyCount operations affecting S (shared) state lines.
1945ebccf1e3SJoseph Koshy.El
19469abe909bSRuslan Ermilov.Pp
1947ebccf1e3SJoseph KoshyThe default is to count operations affecting all (MESI) state lines.
1948ebccf1e3SJoseph Koshy.It Li p6-l2-st
1949ebccf1e3SJoseph KoshyCount the number of L2 data stores.
1950ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises a list of the following
1951ebccf1e3SJoseph Koshykeywords separated by
19529abe909bSRuslan Ermilov.Ql +
1953ebccf1e3SJoseph Koshycharacters:
19549abe909bSRuslan Ermilov.Pp
1955ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1956ebccf1e3SJoseph Koshy.It Li e
1957ebccf1e3SJoseph KoshyCount operations affecting E (exclusive) state lines.
1958ebccf1e3SJoseph Koshy.It Li i
1959ebccf1e3SJoseph KoshyCount operations affecting I (invalid) state lines.
1960ebccf1e3SJoseph Koshy.It Li m
1961ebccf1e3SJoseph KoshyCount operations affecting M (modified) state lines.
1962ebccf1e3SJoseph Koshy.It Li s
1963ebccf1e3SJoseph KoshyCount operations affecting S (shared) state lines.
1964ebccf1e3SJoseph Koshy.El
19659abe909bSRuslan Ermilov.Pp
1966ebccf1e3SJoseph KoshyThe default is to count operations affecting all (MESI) state lines.
1967ebccf1e3SJoseph Koshy.It Li p6-ld-blocks
1968ebccf1e3SJoseph KoshyCount the number of load operations delayed due to store buffer blocks.
1969ebccf1e3SJoseph Koshy.It Li p6-misalign-mem-ref
1970ebccf1e3SJoseph KoshyCount the number of misaligned data memory references (crossing a 64
1971ebccf1e3SJoseph Koshybit boundary).
1972ebccf1e3SJoseph Koshy.It Li p6-mmx-assist
1973ebccf1e3SJoseph Koshy.Pq Tn "Pentium II" , Tn "Pentium III"
1974ebccf1e3SJoseph KoshyCount the number of MMX assists executed.
1975ebccf1e3SJoseph Koshy.It Li p6-mmx-instr-exec
19769abe909bSRuslan Ermilov.Pq Tn Celeron , Tn "Pentium II"
1977ebccf1e3SJoseph KoshyCount the number of MMX instructions executed, except MOVQ and MOVD
1978ebccf1e3SJoseph Koshystores from register to memory.
1979ebccf1e3SJoseph Koshy.It Li p6-mmx-instr-ret
1980ebccf1e3SJoseph Koshy.Pq Tn "Pentium II"
1981ebccf1e3SJoseph KoshyCount the number of MMX instructions retired.
1982ebccf1e3SJoseph Koshy.It Li p6-mmx-instr-type-exec Op Li ,umask= Ns Ar qualifier
1983ebccf1e3SJoseph Koshy.Pq Tn "Pentium II" , Tn "Pentium III"
1984ebccf1e3SJoseph KoshyCount the number of MMX instructions executed.
1985ebccf1e3SJoseph KoshyAn additional qualifier may be specified and comprises a list of
1986ebccf1e3SJoseph Koshythe following keywords separated by
19879abe909bSRuslan Ermilov.Ql +
1988ebccf1e3SJoseph Koshycharacters:
19899abe909bSRuslan Ermilov.Pp
1990ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
1991ebccf1e3SJoseph Koshy.It Li pack
1992ebccf1e3SJoseph KoshyCount MMX pack operation instructions.
1993ebccf1e3SJoseph Koshy.It Li packed-arithmetic
1994ebccf1e3SJoseph KoshyCount MMX packed arithmetic instructions.
1995ebccf1e3SJoseph Koshy.It Li packed-logical
1996ebccf1e3SJoseph KoshyCount MMX packed logical instructions.
1997ebccf1e3SJoseph Koshy.It Li packed-multiply
1998ebccf1e3SJoseph KoshyCount MMX packed multiply instructions.
1999ebccf1e3SJoseph Koshy.It Li packed-shift
2000ebccf1e3SJoseph KoshyCount MMX packed shift instructions.
2001ebccf1e3SJoseph Koshy.It Li unpack
2002ebccf1e3SJoseph KoshyCount MMX unpack operation instructions.
2003ebccf1e3SJoseph Koshy.El
20049abe909bSRuslan Ermilov.Pp
2005ebccf1e3SJoseph KoshyThe default is to count all operations.
2006ebccf1e3SJoseph Koshy.It Li p6-mmx-sat-instr-exec
2007ebccf1e3SJoseph Koshy.Pq Tn "Pentium II" , Tn "Pentium III"
2008ebccf1e3SJoseph KoshyCount the number of MMX saturating instructions executed.
2009ebccf1e3SJoseph Koshy.It Li p6-mmx-uops-exec
2010ebccf1e3SJoseph Koshy.Pq Tn "Pentium II" , Tn "Pentium III"
2011ebccf1e3SJoseph KoshyCount the number of MMX micro-ops executed.
2012ebccf1e3SJoseph Koshy.It Li p6-mul
2013d62f5d4eSJoseph KoshyCount the number of integer and floating-point multiplies, including
2014d62f5d4eSJoseph Koshyspeculative multiplies.
2015ebccf1e3SJoseph KoshyThis event is only allocated on counter 1.
2016ebccf1e3SJoseph Koshy.It Li p6-partial-rat-stalls
2017ebccf1e3SJoseph KoshyCount the number of cycles or events for partial stalls.
2018ebccf1e3SJoseph Koshy.It Li p6-resource-stalls
2019ebccf1e3SJoseph KoshyCount the number of cycles there was a resource related stall of any kind.
2020ebccf1e3SJoseph Koshy.It Li p6-ret-seg-renames
2021ebccf1e3SJoseph Koshy.Pq Tn "Pentium II" , Tn "Pentium III"
2022ebccf1e3SJoseph KoshyCount the number of segment register rename events retired.
2023ebccf1e3SJoseph Koshy.It Li p6-sb-drains
2024ebccf1e3SJoseph KoshyCount the number of cycles the store buffer is draining.
2025ebccf1e3SJoseph Koshy.It Li p6-seg-reg-renames Op Li ,umask= Ns Ar qualifier
2026ebccf1e3SJoseph Koshy.Pq Tn "Pentium II" , Tn "Pentium III"
2027ebccf1e3SJoseph KoshyCount the number of segment register renames.
2028ebccf1e3SJoseph KoshyAn additional qualifier may be specified, and comprises a list of the
2029ebccf1e3SJoseph Koshyfollowing keywords separated by
20309abe909bSRuslan Ermilov.Ql +
2031ebccf1e3SJoseph Koshycharacters:
20329abe909bSRuslan Ermilov.Pp
2033ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2034ebccf1e3SJoseph Koshy.It Li ds
2035ebccf1e3SJoseph KoshyCount renames for segment register DS.
2036ebccf1e3SJoseph Koshy.It Li es
2037ebccf1e3SJoseph KoshyCount renames for segment register ES.
2038ebccf1e3SJoseph Koshy.It Li fs
2039ebccf1e3SJoseph KoshyCount renames for segment register FS.
2040ebccf1e3SJoseph Koshy.It Li gs
2041ebccf1e3SJoseph KoshyCount renames for segment register GS.
2042ebccf1e3SJoseph Koshy.El
20439abe909bSRuslan Ermilov.Pp
2044ebccf1e3SJoseph KoshyThe default is to count operations affecting all segment registers.
2045ebccf1e3SJoseph Koshy.It Li p6-seg-rename-stalls
2046ebccf1e3SJoseph Koshy.Pq Tn "Pentium II" , Tn "Pentium III"
2047ebccf1e3SJoseph KoshyCount the number of segment register renaming stalls.
2048ebccf1e3SJoseph KoshyAn additional qualifier may be specified, and comprises a list of the
2049ebccf1e3SJoseph Koshyfollowing keywords separated by
20509abe909bSRuslan Ermilov.Ql +
2051ebccf1e3SJoseph Koshycharacters:
20529abe909bSRuslan Ermilov.Pp
2053ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2054ebccf1e3SJoseph Koshy.It Li ds
2055ebccf1e3SJoseph KoshyCount stalls for segment register DS.
2056ebccf1e3SJoseph Koshy.It Li es
2057ebccf1e3SJoseph KoshyCount stalls for segment register ES.
2058ebccf1e3SJoseph Koshy.It Li fs
2059ebccf1e3SJoseph KoshyCount stalls for segment register FS.
2060ebccf1e3SJoseph Koshy.It Li gs
2061ebccf1e3SJoseph KoshyCount stalls for segment register GS.
2062ebccf1e3SJoseph Koshy.El
20639abe909bSRuslan Ermilov.Pp
2064ebccf1e3SJoseph KoshyThe default is to count operations affecting all the segment registers.
2065ebccf1e3SJoseph Koshy.It Li p6-segment-reg-loads
2066ebccf1e3SJoseph KoshyCount the number of segment register loads.
2067ebccf1e3SJoseph Koshy.It Li p6-uops-retired
2068ebccf1e3SJoseph KoshyCount the number of micro-ops retired.
2069ebccf1e3SJoseph Koshy.El
2070ebccf1e3SJoseph Koshy.Ss Intel P4 PMCS
2071ebccf1e3SJoseph KoshyIntel P4 PMCs are present in Intel
2072ebccf1e3SJoseph Koshy.Tn "Pentium 4"
2073ebccf1e3SJoseph Koshyand
2074ebccf1e3SJoseph Koshy.Tn Xeon
2075ebccf1e3SJoseph Koshyprocessors.
2076ebccf1e3SJoseph KoshyThese PMCs are documented in
2077ebccf1e3SJoseph Koshy.Rs
2078ebccf1e3SJoseph Koshy.%B "IA-32 Intel(R) Architecture Software Developer's Manual"
2079ebccf1e3SJoseph Koshy.%T "Volume 3: System Programming Guide"
2080ebccf1e3SJoseph Koshy.%N "Order Number 245472-012"
2081ebccf1e3SJoseph Koshy.%D 2003
2082ebccf1e3SJoseph Koshy.%Q "Intel Corporation"
2083ebccf1e3SJoseph Koshy.Re
2084ebccf1e3SJoseph KoshyFurther information about using these PMCs may be found in
2085ebccf1e3SJoseph Koshy.Rs
2086ebccf1e3SJoseph Koshy.%B "IA-32 Intel(R) Architecture Optimization Guide"
2087ebccf1e3SJoseph Koshy.%D 2003
2088ebccf1e3SJoseph Koshy.%N "Order Number 248966-009"
2089ebccf1e3SJoseph Koshy.%Q "Intel Corporation"
2090ebccf1e3SJoseph Koshy.Re
209167edd229SJoseph KoshySome of these events are affected by processor errata described in
209267edd229SJoseph Koshy.Rs
209367edd229SJoseph Koshy.%B "Intel(R) Pentium(R) 4 Processor Specification Update"
209467edd229SJoseph Koshy.%N "Document Number: 249199-059"
209567edd229SJoseph Koshy.%D "April 2005"
209667edd229SJoseph Koshy.%Q "Intel Corporation"
209767edd229SJoseph Koshy.Re
2098ebccf1e3SJoseph Koshy.Pp
2099ebccf1e3SJoseph KoshyEvent specifiers for Intel P4 PMCs can have the following common
2100ebccf1e3SJoseph Koshyqualifiers:
2101ebccf1e3SJoseph Koshy.Bl -tag -width indent
2102ebccf1e3SJoseph Koshy.It Li active= Ns Ar choice
2103ebccf1e3SJoseph Koshy(On P4 HTT CPUs) Filter event counting based on which logical
2104ebccf1e3SJoseph Koshyprocessors are active.
2105ebccf1e3SJoseph KoshyThe allowed values of
2106ebccf1e3SJoseph Koshy.Ar choice
2107ebccf1e3SJoseph Koshyare:
21089abe909bSRuslan Ermilov.Pp
2109ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2110ebccf1e3SJoseph Koshy.It Li any
2111ebccf1e3SJoseph KoshyCount when either logical processor is active.
2112ebccf1e3SJoseph Koshy.It Li both
2113ebccf1e3SJoseph KoshyCount when both logical processors are active.
2114ebccf1e3SJoseph Koshy.It Li none
2115ebccf1e3SJoseph KoshyCount only when neither logical processor is active.
2116ebccf1e3SJoseph Koshy.It Li single
2117ebccf1e3SJoseph KoshyCount only when one logical processor is active.
2118ebccf1e3SJoseph Koshy.El
21199abe909bSRuslan Ermilov.Pp
2120ebccf1e3SJoseph KoshyThe default is
21219abe909bSRuslan Ermilov.Dq Li both .
2122ebccf1e3SJoseph Koshy.It Li cascade
2123ebccf1e3SJoseph KoshyConfigure the PMC to cascade onto its partner.
2124ebccf1e3SJoseph KoshySee
2125ebccf1e3SJoseph Koshy.Sx "Cascading P4 PMCs"
2126ebccf1e3SJoseph Koshybelow for more information.
2127ebccf1e3SJoseph Koshy.It Li edge
2128ebccf1e3SJoseph KoshyConfigure the counter to count false to true transitions of the threshold
2129ebccf1e3SJoseph Koshycomparision output.
2130ebccf1e3SJoseph KoshyThis qualifier only takes effect if a threshold qualifier has also been
2131ebccf1e3SJoseph Koshyspecified.
2132ebccf1e3SJoseph Koshy.It Li complement
2133ebccf1e3SJoseph KoshyConfigure the counter to increment only when the event count seen is
2134ebccf1e3SJoseph Koshyless than the threshold qualifier value specified.
2135ebccf1e3SJoseph Koshy.It Li mask= Ns Ar qualifier
2136ebccf1e3SJoseph KoshyMany event specifiers for Intel P4 PMCs need to be additionally
2137ebccf1e3SJoseph Koshyqualified using a mask qualifier.
2138ebccf1e3SJoseph KoshyThe allowed syntax for these qualifiers is event specific and is
2139ebccf1e3SJoseph Koshydescribed along with the events.
2140ebccf1e3SJoseph Koshy.It Li os
2141ebccf1e3SJoseph KoshyConfigure the PMC to count when the CPL of the processor is 0.
2142ebccf1e3SJoseph Koshy.It Li precise
2143ebccf1e3SJoseph KoshySelect precise event based sampling.
2144ebccf1e3SJoseph KoshyPrecise sampling is supported by the hardware for a limited set of
2145ebccf1e3SJoseph Koshyevents.
2146ebccf1e3SJoseph Koshy.It Li tag= Ns Ar value
2147ebccf1e3SJoseph KoshyConfigure the PMC to tag the internal uop selected by the other
2148ebccf1e3SJoseph Koshyfields in this event specifier with value
2149ebccf1e3SJoseph Koshy.Ar value .
2150ebccf1e3SJoseph KoshyThis feature is used when cascading PMCs.
2151ebccf1e3SJoseph Koshy.It Li threshold= Ns Ar value
2152ebccf1e3SJoseph KoshyConfigure the PMC to increment only when the event counts seen are
2153ebccf1e3SJoseph Koshygreater than the specified threshold value
2154ebccf1e3SJoseph Koshy.Ar value .
2155ebccf1e3SJoseph Koshy.It Li usr
2156ebccf1e3SJoseph KoshyConfigure the PMC to count when the CPL of the processor is 1, 2 or 3.
2157ebccf1e3SJoseph Koshy.El
21589abe909bSRuslan Ermilov.Pp
2159ebccf1e3SJoseph KoshyIf neither of the
21609abe909bSRuslan Ermilov.Dq Li os
2161ebccf1e3SJoseph Koshyor
21629abe909bSRuslan Ermilov.Dq Li usr
2163ebccf1e3SJoseph Koshyqualifiers are specified, the default is to enable both.
2164ebccf1e3SJoseph Koshy.Pp
2165ebccf1e3SJoseph KoshyOn Intel Pentium 4 processors with HTT, events are
2166ebccf1e3SJoseph Koshydivided into two classes:
21679abe909bSRuslan Ermilov.Pp
21689abe909bSRuslan Ermilov.Bl -tag -width indent -compact
2169ebccf1e3SJoseph Koshy.It "TS Events"
2170ebccf1e3SJoseph Koshyare those where hardware can differentiate between events
2171ebccf1e3SJoseph Koshygenerated on one logical processor from those generated on the
2172ebccf1e3SJoseph Koshyother.
2173ebccf1e3SJoseph Koshy.It "TI Events"
2174ebccf1e3SJoseph Koshyare those where hardware cannot differentiate between events
2175ebccf1e3SJoseph Koshygenerated by multiple logical processors in a package.
2176ebccf1e3SJoseph Koshy.El
21779abe909bSRuslan Ermilov.Pp
2178ebccf1e3SJoseph KoshyOnly TS events are allowed for use with process-mode PMCs on
2179ebccf1e3SJoseph KoshyPentium-4/HTT CPUs.
2180ebccf1e3SJoseph Koshy.Pp
2181ebccf1e3SJoseph KoshyThe event specifiers supported by Intel P4 PMCs are:
21829abe909bSRuslan Ermilov.Pp
2183ebccf1e3SJoseph Koshy.Bl -tag -width indent
2184ebccf1e3SJoseph Koshy.It Li p4-128bit-mmx-uop Op Li ,mask= Ns Ar flags
2185ebccf1e3SJoseph Koshy.Pq "TI event"
2186ebccf1e3SJoseph KoshyCount integer SIMD SSE2 instructions that operate on 128 bit SIMD
2187ebccf1e3SJoseph Koshyoperands.
2188ebccf1e3SJoseph KoshyQualifier
2189ebccf1e3SJoseph Koshy.Ar flags
2190ebccf1e3SJoseph Koshycan take the following value (which is also the default):
21919abe909bSRuslan Ermilov.Pp
2192ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2193ebccf1e3SJoseph Koshy.It Li all
2194ebccf1e3SJoseph KoshyCount all uops operating on 128 bit SIMD integer operands in memory or
2195ebccf1e3SJoseph KoshyXMM register.
2196ebccf1e3SJoseph Koshy.El
21979abe909bSRuslan Ermilov.Pp
2198ebccf1e3SJoseph KoshyIf an instruction contains more than one 128 bit MMX uop, then each
2199ebccf1e3SJoseph Koshyuop will be counted.
2200ebccf1e3SJoseph Koshy.It Li p4-64bit-mmx-uop Op Li ,mask= Ns Ar flags
2201ebccf1e3SJoseph Koshy.Pq "TI event"
2202ebccf1e3SJoseph KoshyCount MMX instructions that operate on 64 bit SIMD operands.
2203ebccf1e3SJoseph KoshyQualifier
2204ebccf1e3SJoseph Koshy.Ar flags
2205ebccf1e3SJoseph Koshycan take the following value (which is also the default):
22069abe909bSRuslan Ermilov.Pp
2207ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2208ebccf1e3SJoseph Koshy.It Li all
2209ebccf1e3SJoseph KoshyCount all uops operating on 64 bit SIMD integer operands in memory or
2210ebccf1e3SJoseph Koshyin MMX registers.
2211ebccf1e3SJoseph Koshy.El
22129abe909bSRuslan Ermilov.Pp
2213ebccf1e3SJoseph KoshyIf an instruction contains more than one 64 bit MMX uop, then each
2214ebccf1e3SJoseph Koshyuop will be counted.
2215ebccf1e3SJoseph Koshy.It Li p4-b2b-cycles
2216ebccf1e3SJoseph Koshy.Pq "TI event"
2217ebccf1e3SJoseph KoshyCount back-to-back bys cycles.
2218ebccf1e3SJoseph KoshyFurther documentation for this event is unavailable.
2219ebccf1e3SJoseph Koshy.It Li p4-bnr
2220ebccf1e3SJoseph Koshy.Pq "TI event"
2221ebccf1e3SJoseph KoshyCount bus-not-ready conditions.
2222ebccf1e3SJoseph KoshyFurther documentation for this event is unavailable.
2223ebccf1e3SJoseph Koshy.It Li p4-bpu-fetch-request Op Li ,mask= Ns Ar qualifier
2224ebccf1e3SJoseph Koshy.Pq "TS event"
2225ebccf1e3SJoseph KoshyCount instruction fetch requests qualified by additional
2226ebccf1e3SJoseph Koshyflags specified in
2227ebccf1e3SJoseph Koshy.Ar qualifier .
2228ebccf1e3SJoseph KoshyAt this point only one flag is supported:
22299abe909bSRuslan Ermilov.Pp
2230ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2231ebccf1e3SJoseph Koshy.It Li tcmiss
2232ebccf1e3SJoseph KoshyCount trace cache lookup misses.
2233ebccf1e3SJoseph Koshy.El
22349abe909bSRuslan Ermilov.Pp
2235ebccf1e3SJoseph KoshyThe default qualifier is also
22369abe909bSRuslan Ermilov.Dq Li mask=tcmiss .
2237ebccf1e3SJoseph Koshy.It Li p4-branch-retired Op Li ,mask= Ns Ar flags
2238ebccf1e3SJoseph Koshy.Pq "TS event"
2239ebccf1e3SJoseph KoshyCounts retired branches.
2240ebccf1e3SJoseph KoshyQualifier
2241ebccf1e3SJoseph Koshy.Ar flags
2242ebccf1e3SJoseph Koshyis a list of the following
22439abe909bSRuslan Ermilov.Ql +
2244ebccf1e3SJoseph Koshyseparated strings:
22459abe909bSRuslan Ermilov.Pp
2246ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2247ebccf1e3SJoseph Koshy.It Li mmnp
2248ebccf1e3SJoseph KoshyCount branches not-taken and predicted.
2249ebccf1e3SJoseph Koshy.It Li mmnm
2250ebccf1e3SJoseph KoshyCount branches not-taken and mis-predicted.
2251ebccf1e3SJoseph Koshy.It Li mmtp
2252ebccf1e3SJoseph KoshyCount branches taken and predicted.
2253ebccf1e3SJoseph Koshy.It Li mmtm
2254ebccf1e3SJoseph KoshyCount branches taken and mis-predicted.
2255ebccf1e3SJoseph Koshy.El
22569abe909bSRuslan Ermilov.Pp
2257ebccf1e3SJoseph KoshyThe default qualifier counts all four kinds of branches.
2258ebccf1e3SJoseph Koshy.It Li p4-bsq-active-entries Op Li ,mask= Ns Ar qualifier
2259ebccf1e3SJoseph Koshy.Pq "TS event"
2260ebccf1e3SJoseph KoshyCount the number of entries (clipped at 15) currently active in the
2261ebccf1e3SJoseph KoshyBSQ.
2262ebccf1e3SJoseph KoshyQualifier
2263ebccf1e3SJoseph Koshy.Ar qualifier
2264ebccf1e3SJoseph Koshyis a
22659abe909bSRuslan Ermilov.Ql +
2266ebccf1e3SJoseph Koshyseparated set of the following flags:
22679abe909bSRuslan Ermilov.Pp
2268ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2269ebccf1e3SJoseph Koshy.It Li req-type0 , Li req-type1
2270ebccf1e3SJoseph KoshyForms a 2-bit number used to select the request type encoding:
22719abe909bSRuslan Ermilov.Pp
2272ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2273ebccf1e3SJoseph Koshy.It Li 0
2274ebccf1e3SJoseph Koshyreads excluding read invalidate
2275ebccf1e3SJoseph Koshy.It Li 1
2276ebccf1e3SJoseph Koshyread invalidates
2277ebccf1e3SJoseph Koshy.It Li 2
2278ebccf1e3SJoseph Koshywrites other than writebacks
2279ebccf1e3SJoseph Koshy.It Li 3
2280ebccf1e3SJoseph Koshywritebacks
2281ebccf1e3SJoseph Koshy.El
22829abe909bSRuslan Ermilov.Pp
2283ebccf1e3SJoseph KoshyBit
22849abe909bSRuslan Ermilov.Dq Li req-type1
2285ebccf1e3SJoseph Koshyis the MSB for this two bit number.
2286ebccf1e3SJoseph Koshy.It Li req-len0 , Li req-len1
2287ebccf1e3SJoseph KoshyForms a two-bit number that specifies the request length encoding:
22889abe909bSRuslan Ermilov.Pp
2289ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2290ebccf1e3SJoseph Koshy.It Li 0
2291ebccf1e3SJoseph Koshy0 chunks
2292ebccf1e3SJoseph Koshy.It Li 1
2293ebccf1e3SJoseph Koshy1 chunk
2294ebccf1e3SJoseph Koshy.It Li 3
2295ebccf1e3SJoseph Koshy8 chunks
2296ebccf1e3SJoseph Koshy.El
22979abe909bSRuslan Ermilov.Pp
2298ebccf1e3SJoseph KoshyBit
22999abe909bSRuslan Ermilov.Dq Li req-len1
2300ebccf1e3SJoseph Koshyis the MSB for this two bit number.
2301ebccf1e3SJoseph Koshy.It Li req-io-type
2302ebccf1e3SJoseph KoshyCount requests that are input or output requests.
2303ebccf1e3SJoseph Koshy.It Li req-lock-type
2304ebccf1e3SJoseph KoshyCount requests that lock the bus.
2305ebccf1e3SJoseph Koshy.It Li req-lock-cache
2306ebccf1e3SJoseph KoshyCount requests that lock the cache.
2307ebccf1e3SJoseph Koshy.It Li req-split-type
2308ebccf1e3SJoseph KoshyCount requests that is a bus 8-byte chunk that is split across an
2309ebccf1e3SJoseph Koshy8-byte boundary.
2310ebccf1e3SJoseph Koshy.It Li req-dem-type
2311ebccf1e3SJoseph KoshyCount requests that are demand (not prefetches) if set.
2312ebccf1e3SJoseph KoshyCount requests that are prefetches if not set.
2313ebccf1e3SJoseph Koshy.It Li req-ord-type
2314ebccf1e3SJoseph KoshyCount requests that are ordered.
2315ebccf1e3SJoseph Koshy.It Li mem-type0 , Li mem-type1 , Li mem-type2
2316ebccf1e3SJoseph KoshyForms a 3-bit number that specifies a memory type encoding:
23179abe909bSRuslan Ermilov.Pp
2318ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2319ebccf1e3SJoseph Koshy.It Li 0
2320ebccf1e3SJoseph KoshyUC
2321ebccf1e3SJoseph Koshy.It Li 1
2322ebccf1e3SJoseph KoshyUSWC
2323ebccf1e3SJoseph Koshy.It Li 4
2324ebccf1e3SJoseph KoshyWT
2325ebccf1e3SJoseph Koshy.It Li 5
2326ebccf1e3SJoseph KoshyWP
2327ebccf1e3SJoseph Koshy.It Li 6
2328ebccf1e3SJoseph KoshyWB
2329ebccf1e3SJoseph Koshy.El
23309abe909bSRuslan Ermilov.Pp
2331ebccf1e3SJoseph KoshyBit
23329abe909bSRuslan Ermilov.Dq Li mem-type2
2333ebccf1e3SJoseph Koshyis the MSB of this 3-bit number.
2334ebccf1e3SJoseph Koshy.El
23359abe909bSRuslan Ermilov.Pp
2336ebccf1e3SJoseph KoshyThe default qualifier has all the above bits set.
2337ebccf1e3SJoseph Koshy.Pp
2338ebccf1e3SJoseph KoshyEdge triggering using the
23399abe909bSRuslan Ermilov.Dq Li edge
2340ebccf1e3SJoseph Koshyqualifier should not be used with this event when counting cycles.
2341ebccf1e3SJoseph Koshy.It Li p4-bsq-allocation Op Li ,mask= Ns Ar qualifier
2342ebccf1e3SJoseph Koshy.Pq "TS event"
2343ebccf1e3SJoseph KoshyCount allocations in the bus sequence unit according to the flags
2344ebccf1e3SJoseph Koshyspecified in
2345ebccf1e3SJoseph Koshy.Ar qualifier ,
2346ebccf1e3SJoseph Koshywhich is a
23479abe909bSRuslan Ermilov.Ql +
2348ebccf1e3SJoseph Koshyseparated set of the following flags:
23499abe909bSRuslan Ermilov.Pp
2350ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2351ebccf1e3SJoseph Koshy.It Li req-type0 , Li req-type1
2352ebccf1e3SJoseph KoshyForms a 2-bit number used to select the request type encoding:
23539abe909bSRuslan Ermilov.Pp
2354ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2355ebccf1e3SJoseph Koshy.It Li 0
2356ebccf1e3SJoseph Koshyreads excluding read invalidate
2357ebccf1e3SJoseph Koshy.It Li 1
2358ebccf1e3SJoseph Koshyread invalidates
2359ebccf1e3SJoseph Koshy.It Li 2
2360ebccf1e3SJoseph Koshywrites other than writebacks
2361ebccf1e3SJoseph Koshy.It Li 3
2362ebccf1e3SJoseph Koshywritebacks
2363ebccf1e3SJoseph Koshy.El
23649abe909bSRuslan Ermilov.Pp
2365ebccf1e3SJoseph KoshyBit
23669abe909bSRuslan Ermilov.Dq Li req-type1
2367ebccf1e3SJoseph Koshyis the MSB for this two bit number.
2368ebccf1e3SJoseph Koshy.It Li req-len0 , Li req-len1
2369ebccf1e3SJoseph KoshyForms a two-bit number that specifies the request length encoding:
23709abe909bSRuslan Ermilov.Pp
2371ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2372ebccf1e3SJoseph Koshy.It Li 0
2373ebccf1e3SJoseph Koshy0 chunks
2374ebccf1e3SJoseph Koshy.It Li 1
2375ebccf1e3SJoseph Koshy1 chunk
2376ebccf1e3SJoseph Koshy.It Li 3
2377ebccf1e3SJoseph Koshy8 chunks
2378ebccf1e3SJoseph Koshy.El
23799abe909bSRuslan Ermilov.Pp
2380ebccf1e3SJoseph KoshyBit
23819abe909bSRuslan Ermilov.Dq Li req-len1
2382ebccf1e3SJoseph Koshyis the MSB for this two bit number.
2383ebccf1e3SJoseph Koshy.It Li req-io-type
2384ebccf1e3SJoseph KoshyCount requests that are input or output requests.
2385ebccf1e3SJoseph Koshy.It Li req-lock-type
2386ebccf1e3SJoseph KoshyCount requests that lock the bus.
2387ebccf1e3SJoseph Koshy.It Li req-lock-cache
2388ebccf1e3SJoseph KoshyCount requests that lock the cache.
2389ebccf1e3SJoseph Koshy.It Li req-split-type
2390ebccf1e3SJoseph KoshyCount requests that is a bus 8-byte chunk that is split across an
2391ebccf1e3SJoseph Koshy8-byte boundary.
2392ebccf1e3SJoseph Koshy.It Li req-dem-type
2393ebccf1e3SJoseph KoshyCount requests that are demand (not prefetches) if set.
2394ebccf1e3SJoseph KoshyCount requests that are prefetches if not set.
2395ebccf1e3SJoseph Koshy.It Li req-ord-type
2396ebccf1e3SJoseph KoshyCount requests that are ordered.
2397ebccf1e3SJoseph Koshy.It Li mem-type0 , Li mem-type1 , Li mem-type2
2398ebccf1e3SJoseph KoshyForms a 3-bit number that specifies a memory type encoding:
23999abe909bSRuslan Ermilov.Pp
2400ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2401ebccf1e3SJoseph Koshy.It Li 0
2402ebccf1e3SJoseph KoshyUC
2403ebccf1e3SJoseph Koshy.It Li 1
2404ebccf1e3SJoseph KoshyUSWC
2405ebccf1e3SJoseph Koshy.It Li 4
2406ebccf1e3SJoseph KoshyWT
2407ebccf1e3SJoseph Koshy.It Li 5
2408ebccf1e3SJoseph KoshyWP
2409ebccf1e3SJoseph Koshy.It Li 6
2410ebccf1e3SJoseph KoshyWB
2411ebccf1e3SJoseph Koshy.El
24129abe909bSRuslan Ermilov.Pp
2413ebccf1e3SJoseph KoshyBit
24149abe909bSRuslan Ermilov.Dq Li mem-type2
2415ebccf1e3SJoseph Koshyis the MSB of this 3-bit number.
2416ebccf1e3SJoseph Koshy.El
24179abe909bSRuslan Ermilov.Pp
2418ebccf1e3SJoseph KoshyThe default qualifier has all the above bits set.
2419ebccf1e3SJoseph Koshy.Pp
2420ebccf1e3SJoseph KoshyThis event is usually used along with the
24219abe909bSRuslan Ermilov.Dq Li edge
2422ebccf1e3SJoseph Koshyqualifier to avoid multiple counting.
2423ebccf1e3SJoseph Koshy.It Li p4-bsq-cache-reference Op Li ,mask= Ns Ar qualifier
2424ebccf1e3SJoseph Koshy.Pq "TS event"
2425ebccf1e3SJoseph KoshyCount cache references as seen by the bus unit (2nd or 3rd level
2426ebccf1e3SJoseph Koshycache references).
2427ebccf1e3SJoseph KoshyQualifier
2428ebccf1e3SJoseph Koshy.Ar qualifier
2429ebccf1e3SJoseph Koshyis a
24309abe909bSRuslan Ermilov.Ql +
2431ebccf1e3SJoseph Koshyseparated list of the following keywords:
24329abe909bSRuslan Ermilov.Pp
2433ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2434ebccf1e3SJoseph Koshy.It Li rd-2ndl-hits
2435ebccf1e3SJoseph KoshyCount 2nd level cache hits in the shared state.
2436ebccf1e3SJoseph Koshy.It Li rd-2ndl-hite
2437ebccf1e3SJoseph KoshyCount 2nd level cache hits in the exclusive state.
2438ebccf1e3SJoseph Koshy.It Li rd-2ndl-hitm
2439ebccf1e3SJoseph KoshyCount 2nd level cache hits in the modified state.
2440ebccf1e3SJoseph Koshy.It Li rd-3rdl-hits
2441ebccf1e3SJoseph KoshyCount 3rd level cache hits in the shared state.
2442ebccf1e3SJoseph Koshy.It Li rd-3rdl-hite
2443ebccf1e3SJoseph KoshyCount 3rd level cache hits in the exclusive state.
2444ebccf1e3SJoseph Koshy.It Li rd-3rdl-hitm
2445ebccf1e3SJoseph KoshyCount 3rd level cache hits in the modified state.
2446ebccf1e3SJoseph Koshy.It Li rd-2ndl-miss
2447ebccf1e3SJoseph KoshyCount 2nd level cache misses.
2448ebccf1e3SJoseph Koshy.It Li rd-3rdl-miss
2449ebccf1e3SJoseph KoshyCount 3rd level cache misses.
2450ebccf1e3SJoseph Koshy.It Li wr-2ndl-miss
2451ebccf1e3SJoseph KoshyCount write-back lookups from the data access cache that miss the 2nd
2452ebccf1e3SJoseph Koshylevel cache.
2453ebccf1e3SJoseph Koshy.El
24549abe909bSRuslan Ermilov.Pp
2455ebccf1e3SJoseph KoshyThe default is to count all the above events.
2456ebccf1e3SJoseph Koshy.It Li p4-execution-event Op Li ,mask= Ns Ar flags
2457ebccf1e3SJoseph Koshy.Pq "TS event"
2458ebccf1e3SJoseph KoshyCount the retirement of tagged uops selected through the execution
2459ebccf1e3SJoseph Koshytagging mechanism.
2460ebccf1e3SJoseph KoshyQualifier
2461ebccf1e3SJoseph Koshy.Ar flags
2462ebccf1e3SJoseph Koshycan contain the following strings separated by
24639abe909bSRuslan Ermilov.Ql +
2464ebccf1e3SJoseph Koshycharacters:
24659abe909bSRuslan Ermilov.Pp
2466ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2467ebccf1e3SJoseph Koshy.It Li nbogus0 , Li nbogus1 , Li nbogus2 , Li nbogus3
2468ebccf1e3SJoseph KoshyThe marked uops are not bogus.
2469ebccf1e3SJoseph Koshy.It Li bogus0 , Li bogus1 , Li bogus2 , Li bogus3
2470ebccf1e3SJoseph KoshyThe marked uops are bogus.
2471ebccf1e3SJoseph Koshy.El
24729abe909bSRuslan Ermilov.Pp
2473ebccf1e3SJoseph KoshyThis event requires additional (upstream) events to be allocated to
2474ebccf1e3SJoseph Koshyperform the desired uop tagging.
2475ebccf1e3SJoseph KoshyThe default is to set all the above flags.
2476ebccf1e3SJoseph KoshyThis event can be used for precise event based sampling.
2477ebccf1e3SJoseph Koshy.It Li p4-front-end-event Op Li ,mask= Ns Ar flags
2478ebccf1e3SJoseph Koshy.Pq "TS event"
2479ebccf1e3SJoseph KoshyCount the retirement of tagged uops selected through the front-end
2480ebccf1e3SJoseph Koshytagging mechanism.
2481ebccf1e3SJoseph KoshyQualifier
2482ebccf1e3SJoseph Koshy.Ar flags
2483ebccf1e3SJoseph Koshycan contain the following strings separated by
24849abe909bSRuslan Ermilov.Ql +
2485ebccf1e3SJoseph Koshycharacters:
24869abe909bSRuslan Ermilov.Pp
2487ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2488ebccf1e3SJoseph Koshy.It Li nbogus
2489ebccf1e3SJoseph KoshyThe marked uops are not bogus.
2490ebccf1e3SJoseph Koshy.It Li bogus
2491ebccf1e3SJoseph KoshyThe marked uops are bogus.
2492ebccf1e3SJoseph Koshy.El
24939abe909bSRuslan Ermilov.Pp
2494ebccf1e3SJoseph KoshyThis event requires additional (upstream) events to be allocated to
2495ebccf1e3SJoseph Koshyperform the desired uop tagging.
2496ebccf1e3SJoseph KoshyThe default is to select both kinds of events.
2497ebccf1e3SJoseph KoshyThis event can be used for precise event based sampling.
2498ebccf1e3SJoseph Koshy.It Li p4-fsb-data-activity Op Li ,mask= Ns Ar flags
2499ebccf1e3SJoseph Koshy.Pq "TI event"
2500ebccf1e3SJoseph KoshyCount each DBSY or DRDY event selected by qualifier
2501ebccf1e3SJoseph Koshy.Ar flags .
2502ebccf1e3SJoseph KoshyQualifier
2503ebccf1e3SJoseph Koshy.Ar flags
2504ebccf1e3SJoseph Koshyis a
25059abe909bSRuslan Ermilov.Ql +
2506ebccf1e3SJoseph Koshyseparated set of the following flags:
25079abe909bSRuslan Ermilov.Pp
2508ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2509ebccf1e3SJoseph Koshy.It Li drdy-drv
2510ebccf1e3SJoseph KoshyCount when this processor is driving data onto the bus.
2511ebccf1e3SJoseph Koshy.It Li drdy-own
2512ebccf1e3SJoseph KoshyCount when this processor is reading data from the bus.
2513ebccf1e3SJoseph Koshy.It Li drdy-other
2514ebccf1e3SJoseph KoshyCount when data is on the bus but not being sampled by this processor.
2515ebccf1e3SJoseph Koshy.It Li dbsy-drv
2516ebccf1e3SJoseph KoshyCount when this processor reserves the bus for use in the next cycle
2517ebccf1e3SJoseph Koshyin order to drive data.
2518ebccf1e3SJoseph Koshy.It Li dbsy-own
2519ebccf1e3SJoseph KoshyCount when some agent reserves the bus for use in the next bus cycle
2520ebccf1e3SJoseph Koshyto drive data that this processor will sample.
2521ebccf1e3SJoseph Koshy.It Li dbsy-other
2522ebccf1e3SJoseph KoshyCount when some agent reserves the bus for use in the next bus cycle
2523ebccf1e3SJoseph Koshyto drive data that this processor will not sample.
2524ebccf1e3SJoseph Koshy.El
25259abe909bSRuslan Ermilov.Pp
2526ebccf1e3SJoseph KoshyFlags
25279abe909bSRuslan Ermilov.Dq Li drdy-own
2528ebccf1e3SJoseph Koshyand
25299abe909bSRuslan Ermilov.Dq Li drdy-other
2530ebccf1e3SJoseph Koshyare mutually exclusive.
2531ebccf1e3SJoseph KoshyFlags
25329abe909bSRuslan Ermilov.Dq Li dbsy-own
2533ebccf1e3SJoseph Koshyand
25349abe909bSRuslan Ermilov.Dq Li dbsy-other
2535ebccf1e3SJoseph Koshyare mutually exclusive.
2536ebccf1e3SJoseph KoshyThe default value for
2537ebccf1e3SJoseph Koshy.Ar qualifier
2538ebccf1e3SJoseph Koshyis
25399abe909bSRuslan Ermilov.Dq Li drdy-drv+drdy-own+dbsy-drv+dbsy-own .
2540ebccf1e3SJoseph Koshy.It Li p4-global-power-events Op Li ,mask= Ns Ar flags
2541ebccf1e3SJoseph Koshy.Pq "TS event"
2542ebccf1e3SJoseph KoshyCount cycles during which the processor is not stopped.
2543ebccf1e3SJoseph KoshyQualifier
2544ebccf1e3SJoseph Koshy.Ar flags
2545ebccf1e3SJoseph Koshycan take the following value (which is also the default):
25469abe909bSRuslan Ermilov.Pp
2547ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2548ebccf1e3SJoseph Koshy.It Li running
2549ebccf1e3SJoseph KoshyCount cycles when the processor is active.
2550ebccf1e3SJoseph Koshy.El
25519abe909bSRuslan Ermilov.Pp
2552ebccf1e3SJoseph Koshy.It Li p4-instr-retired Op Li ,mask= Ns Ar flags
2553ebccf1e3SJoseph Koshy.Pq "TS event"
2554ebccf1e3SJoseph KoshyCount instructions retired during a clock cycle.
2555ebccf1e3SJoseph KoshyQualifer
2556ebccf1e3SJoseph Koshy.Ar flags
2557ebccf1e3SJoseph Koshycomprises of the following strings separated by
25589abe909bSRuslan Ermilov.Ql +
2559ebccf1e3SJoseph Koshycharacters:
25609abe909bSRuslan Ermilov.Pp
2561ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2562ebccf1e3SJoseph Koshy.It Li nbogusntag
2563ebccf1e3SJoseph KoshyCount non-bogus instructions that are not tagged.
2564ebccf1e3SJoseph Koshy.It Li nbogustag
2565ebccf1e3SJoseph KoshyCount non-bogus instructions that are tagged.
2566ebccf1e3SJoseph Koshy.It Li bogusntag
2567ebccf1e3SJoseph KoshyCount bogus instructions that are not tagged.
2568ebccf1e3SJoseph Koshy.It Li bogustag
2569ebccf1e3SJoseph KoshyCount bogus instructions that are tagged.
2570ebccf1e3SJoseph Koshy.El
25719abe909bSRuslan Ermilov.Pp
2572ebccf1e3SJoseph KoshyThe default qualifier counts all the above kinds of instructions.
2573ebccf1e3SJoseph Koshy.It Li p4-ioq-active-entries Xo
2574ebccf1e3SJoseph Koshy.Op Li ,mask= Ns Ar qualifier
2575ebccf1e3SJoseph Koshy.Op Li ,busreqtype= Ns Ar req-type
2576ebccf1e3SJoseph Koshy.Xc
2577ebccf1e3SJoseph Koshy.Pq "TS event"
2578ebccf1e3SJoseph KoshyCount the number of entries (clipped at 15) in the IOQ that are
2579ebccf1e3SJoseph Koshyactive.
2580ebccf1e3SJoseph KoshyThe event masks are specified by qualifier
2581ebccf1e3SJoseph Koshy.Ar qualifier
2582ebccf1e3SJoseph Koshyand
2583ebccf1e3SJoseph Koshy.Ar req-type .
2584ebccf1e3SJoseph Koshy.Pp
2585ebccf1e3SJoseph KoshyQualifier
2586ebccf1e3SJoseph Koshy.Ar qualifier
2587ebccf1e3SJoseph Koshyis a
25889abe909bSRuslan Ermilov.Ql +
2589ebccf1e3SJoseph Koshyseparated set of the following flags:
25909abe909bSRuslan Ermilov.Pp
2591ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2592ebccf1e3SJoseph Koshy.It Li all-read
2593ebccf1e3SJoseph KoshyCount read entries.
2594ebccf1e3SJoseph Koshy.It Li all-write
2595ebccf1e3SJoseph KoshyCount write entries.
2596ebccf1e3SJoseph Koshy.It Li mem-uc
2597ebccf1e3SJoseph KoshyCount entries accessing uncacheable memory.
2598ebccf1e3SJoseph Koshy.It Li mem-wc
2599ebccf1e3SJoseph KoshyCount entries accessing write-combining memory.
2600ebccf1e3SJoseph Koshy.It Li mem-wt
2601ebccf1e3SJoseph KoshyCount entries accessing write-through memory.
2602ebccf1e3SJoseph Koshy.It Li mem-wp
2603ebccf1e3SJoseph KoshyCount entries accessing write-protected memory
2604ebccf1e3SJoseph Koshy.It Li mem-wb
2605ebccf1e3SJoseph KoshyCount entries accessing write-back memory.
2606ebccf1e3SJoseph Koshy.It Li own
2607ebccf1e3SJoseph KoshyCount store requests driven by the processor (i.e., not by other
2608ebccf1e3SJoseph Koshyprocessors or by DMA).
2609ebccf1e3SJoseph Koshy.It Li other
2610ebccf1e3SJoseph KoshyCount store requests driven by other processors or by DMA.
2611ebccf1e3SJoseph Koshy.It Li prefetch
2612ebccf1e3SJoseph KoshyInclude hardware and software prefetch requests in the count.
2613ebccf1e3SJoseph Koshy.El
26149abe909bSRuslan Ermilov.Pp
2615ebccf1e3SJoseph KoshyThe default value for
2616ebccf1e3SJoseph Koshy.Ar qualifier
2617ebccf1e3SJoseph Koshyis to enable all the above flags.
2618ebccf1e3SJoseph Koshy.Pp
2619ebccf1e3SJoseph KoshyThe
2620ebccf1e3SJoseph Koshy.Ar req-type
2621ebccf1e3SJoseph Koshyqualifier is a 5-bit number can be additionally used to select a
2622ebccf1e3SJoseph Koshyspecific bus request type.
2623ebccf1e3SJoseph KoshyThe default is 0.
2624ebccf1e3SJoseph Koshy.Pp
2625ebccf1e3SJoseph KoshyThe
26269abe909bSRuslan Ermilov.Dq Li edge
2627ebccf1e3SJoseph Koshyqualifier should not be used when counting cycles with this event.
2628ebccf1e3SJoseph KoshyThe exact behaviour of this event depends on the processor revision.
2629ebccf1e3SJoseph Koshy.It Li p4-ioq-allocation Xo
2630ebccf1e3SJoseph Koshy.Op Li ,mask= Ns Ar qualifier
2631ebccf1e3SJoseph Koshy.Op Li ,busreqtype= Ns Ar req-type
2632ebccf1e3SJoseph Koshy.Xc
2633ebccf1e3SJoseph Koshy.Pq "TS event"
2634ebccf1e3SJoseph KoshyCount various types of transactions on the bus matching the flags set
2635ebccf1e3SJoseph Koshyin
2636ebccf1e3SJoseph Koshy.Ar qualifier
2637ebccf1e3SJoseph Koshyand
2638ebccf1e3SJoseph Koshy.Ar req-type .
2639ebccf1e3SJoseph Koshy.Pp
2640ebccf1e3SJoseph KoshyQualifier
2641ebccf1e3SJoseph Koshy.Ar qualifier
2642ebccf1e3SJoseph Koshyis a
26439abe909bSRuslan Ermilov.Ql +
2644ebccf1e3SJoseph Koshyseparated set of the following flags:
26459abe909bSRuslan Ermilov.Pp
2646ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2647ebccf1e3SJoseph Koshy.It Li all-read
2648ebccf1e3SJoseph KoshyCount read entries.
2649ebccf1e3SJoseph Koshy.It Li all-write
2650ebccf1e3SJoseph KoshyCount write entries.
2651ebccf1e3SJoseph Koshy.It Li mem-uc
2652ebccf1e3SJoseph KoshyCount entries accessing uncacheable memory.
2653ebccf1e3SJoseph Koshy.It Li mem-wc
2654ebccf1e3SJoseph KoshyCount entries accessing write-combining memory.
2655ebccf1e3SJoseph Koshy.It Li mem-wt
2656ebccf1e3SJoseph KoshyCount entries accessing write-through memory.
2657ebccf1e3SJoseph Koshy.It Li mem-wp
2658ebccf1e3SJoseph KoshyCount entries accessing write-protected memory
2659ebccf1e3SJoseph Koshy.It Li mem-wb
2660ebccf1e3SJoseph KoshyCount entries accessing write-back memory.
2661ebccf1e3SJoseph Koshy.It Li own
2662ebccf1e3SJoseph KoshyCount store requests driven by the processor (i.e., not by other
2663ebccf1e3SJoseph Koshyprocessors or by DMA).
2664ebccf1e3SJoseph Koshy.It Li other
2665ebccf1e3SJoseph KoshyCount store requests driven by other processors or by DMA.
2666ebccf1e3SJoseph Koshy.It Li prefetch
2667ebccf1e3SJoseph KoshyInclude hardware and software prefetch requests in the count.
2668ebccf1e3SJoseph Koshy.El
26699abe909bSRuslan Ermilov.Pp
2670ebccf1e3SJoseph KoshyThe default value for
2671ebccf1e3SJoseph Koshy.Ar qualifier
2672ebccf1e3SJoseph Koshyis to enable all the above flags.
2673ebccf1e3SJoseph Koshy.Pp
2674ebccf1e3SJoseph KoshyThe
2675ebccf1e3SJoseph Koshy.Ar req-type
2676ebccf1e3SJoseph Koshyqualifier is a 5-bit number can be additionally used to select a
2677ebccf1e3SJoseph Koshyspecific bus request type.
2678ebccf1e3SJoseph KoshyThe default is 0.
2679ebccf1e3SJoseph Koshy.Pp
2680ebccf1e3SJoseph KoshyThe
26819abe909bSRuslan Ermilov.Dq Li edge
2682ebccf1e3SJoseph Koshyqualifier is normally used with this event to prevent multiple
2683ebccf1e3SJoseph Koshycounting.
2684ebccf1e3SJoseph KoshyThe exact behaviour of this event depends on the processor revision.
2685ebccf1e3SJoseph Koshy.It Li p4-itlb-reference Op mask= Ns Ar qualifier
2686ebccf1e3SJoseph Koshy.Pq "TS event"
2687ebccf1e3SJoseph KoshyCount translations using the intruction translation look-aside
2688ebccf1e3SJoseph Koshybuffer.
2689ebccf1e3SJoseph KoshyThe
2690ebccf1e3SJoseph Koshy.Ar qualifier
2691ebccf1e3SJoseph Koshyargument is a list of the following strings separated by
26929abe909bSRuslan Ermilov.Ql +
2693ebccf1e3SJoseph Koshycharacters.
26949abe909bSRuslan Ermilov.Pp
2695ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2696ebccf1e3SJoseph Koshy.It Li hit
2697ebccf1e3SJoseph KoshyCount ITLB hits.
2698ebccf1e3SJoseph Koshy.It Li miss
2699ebccf1e3SJoseph KoshyCount ITLB misses.
2700ebccf1e3SJoseph Koshy.It Li hit-uc
2701ebccf1e3SJoseph KoshyCount uncacheable ITLB hits.
2702ebccf1e3SJoseph Koshy.El
27039abe909bSRuslan Ermilov.Pp
2704ebccf1e3SJoseph KoshyIf no
2705ebccf1e3SJoseph Koshy.Ar qualifier
2706ebccf1e3SJoseph Koshyis specified the default is to count all the three kinds of ITLB
2707ebccf1e3SJoseph Koshytranslations.
2708ebccf1e3SJoseph Koshy.It Li p4-load-port-replay Op Li ,mask= Ns Ar qualifier
2709ebccf1e3SJoseph Koshy.Pq "TS event"
2710ebccf1e3SJoseph KoshyCount replayed events at the load port.
2711ebccf1e3SJoseph KoshyQualifier
2712ebccf1e3SJoseph Koshy.Ar qualifier
2713ebccf1e3SJoseph Koshycan take on one value:
27149abe909bSRuslan Ermilov.Pp
2715ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2716ebccf1e3SJoseph Koshy.It Li split-ld
2717ebccf1e3SJoseph KoshyCount split loads.
2718ebccf1e3SJoseph Koshy.El
27199abe909bSRuslan Ermilov.Pp
2720ebccf1e3SJoseph KoshyThe default value for
2721ebccf1e3SJoseph Koshy.Ar qualifier
2722ebccf1e3SJoseph Koshyis
27239abe909bSRuslan Ermilov.Dq Li split-ld .
2724ebccf1e3SJoseph Koshy.It Li p4-mispred-branch-retired Op Li ,mask= Ns Ar flags
2725ebccf1e3SJoseph Koshy.Pq "TS event"
2726ebccf1e3SJoseph KoshyCount mispredicted IA-32 branch instructions.
2727ebccf1e3SJoseph KoshyQualifier
2728ebccf1e3SJoseph Koshy.Ar flags
2729ebccf1e3SJoseph Koshycan take the following value (which is also the default):
27309abe909bSRuslan Ermilov.Pp
2731ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2732ebccf1e3SJoseph Koshy.It Li nbogus
2733ebccf1e3SJoseph KoshyCount non-bogus retired branch instructions.
2734ebccf1e3SJoseph Koshy.El
2735ebccf1e3SJoseph Koshy.It Li p4-machine-clear Op Li ,mask= Ns Ar flags
2736ebccf1e3SJoseph Koshy.Pq "TS event"
2737ebccf1e3SJoseph KoshyCount the number of pipeline clears seen by the processor.
2738ebccf1e3SJoseph KoshyQualifer
2739ebccf1e3SJoseph Koshy.Ar flags
2740ebccf1e3SJoseph Koshyis a list of the following strings separated by
27419abe909bSRuslan Ermilov.Ql +
2742ebccf1e3SJoseph Koshycharacters:
27439abe909bSRuslan Ermilov.Pp
2744ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2745ebccf1e3SJoseph Koshy.It Li clear
2746ebccf1e3SJoseph KoshyCount for a portion of the many cycles when the machine is being
2747ebccf1e3SJoseph Koshycleared for any reason.
2748ebccf1e3SJoseph Koshy.It Li moclear
2749ebccf1e3SJoseph KoshyCount machine clears due to memory ordering issues.
2750ebccf1e3SJoseph Koshy.It Li smclear
2751ebccf1e3SJoseph KoshyCount machine clears due to self-modifying code.
2752ebccf1e3SJoseph Koshy.El
27539abe909bSRuslan Ermilov.Pp
2754ebccf1e3SJoseph KoshyUse qualifier
27559abe909bSRuslan Ermilov.Dq Li edge
2756ebccf1e3SJoseph Koshyto get a count of occurrences of machine clears.
2757ebccf1e3SJoseph KoshyThe default qualifier is
27589abe909bSRuslan Ermilov.Dq Li clear .
2759ebccf1e3SJoseph Koshy.It Li p4-memory-cancel Op Li ,mask= Ns Ar event-list
2760ebccf1e3SJoseph Koshy.Pq "TS event"
2761ebccf1e3SJoseph KoshyCount the cancelling of various kinds of requests in the data cache
2762ebccf1e3SJoseph Koshyaddress control unit of the CPU.
2763ebccf1e3SJoseph KoshyThe qualifier
2764ebccf1e3SJoseph Koshy.Ar event-list
2765ebccf1e3SJoseph Koshyis a list of the following strings separated by
27669abe909bSRuslan Ermilov.Ql +
2767ebccf1e3SJoseph Koshycharacters:
27689abe909bSRuslan Ermilov.Pp
2769ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2770ebccf1e3SJoseph Koshy.It Li st-rb-full
2771ebccf1e3SJoseph KoshyRequests cancelled because no store request buffer was available.
2772ebccf1e3SJoseph Koshy.It Li 64k-conf
2773ebccf1e3SJoseph KoshyRequests that conflict due to 64K aliasing.
2774ebccf1e3SJoseph Koshy.El
27759abe909bSRuslan Ermilov.Pp
2776ebccf1e3SJoseph KoshyIf
2777ebccf1e3SJoseph Koshy.Ar event-list
2778ebccf1e3SJoseph Koshyis not specified, then the default is to count both kinds of events.
2779ebccf1e3SJoseph Koshy.It Li p4-memory-complete Op Li ,mask= Ns Ar event-list
2780ebccf1e3SJoseph Koshy.Pq "TS event"
2781ebccf1e3SJoseph KoshyCount the completion of load split, store split, uncacheable split and
2782ebccf1e3SJoseph Koshyuncacheable load operations selected by qualifier
2783ebccf1e3SJoseph Koshy.Ar event-list .
2784ebccf1e3SJoseph KoshyThe qualifier
2785ebccf1e3SJoseph Koshy.Ar event-list
2786ebccf1e3SJoseph Koshyis a
27879abe909bSRuslan Ermilov.Ql +
2788ebccf1e3SJoseph Koshyseparated list of the following flags:
27899abe909bSRuslan Ermilov.Pp
2790ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2791ebccf1e3SJoseph Koshy.It Li lsc
2792ebccf1e3SJoseph KoshyCount load splits completed, excluding loads from uncacheable or
2793ebccf1e3SJoseph Koshywrite-combining areas.
2794ebccf1e3SJoseph Koshy.It Li ssc
2795ebccf1e3SJoseph KoshyCount any split stores completed.
2796ebccf1e3SJoseph Koshy.El
27979abe909bSRuslan Ermilov.Pp
2798ebccf1e3SJoseph KoshyThe default is to count both kinds of operations.
2799ebccf1e3SJoseph Koshy.It Li p4-mob-load-replay Op Li ,mask= Ns Ar qualifier
2800ebccf1e3SJoseph Koshy.Pq "TS event"
2801ebccf1e3SJoseph KoshyCount load replays triggered by the memory order buffer.
2802ebccf1e3SJoseph KoshyQualifier
2803ebccf1e3SJoseph Koshy.Ar qualifier
2804ebccf1e3SJoseph Koshycan be a
28059abe909bSRuslan Ermilov.Ql +
2806ebccf1e3SJoseph Koshyseparated list of the following flags:
28079abe909bSRuslan Ermilov.Pp
2808ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2809ebccf1e3SJoseph Koshy.It Li no-sta
2810ebccf1e3SJoseph KoshyCount replays because of unknown store addresses.
2811ebccf1e3SJoseph Koshy.It Li no-std
2812ebccf1e3SJoseph KoshyCount replays because of unknown store data.
2813ebccf1e3SJoseph Koshy.It Li partial-data
2814ebccf1e3SJoseph KoshyCount replays because of partially overlapped data accesses between
2815ebccf1e3SJoseph Koshyload and store operations.
2816ebccf1e3SJoseph Koshy.It Li unalgn-addr
2817ebccf1e3SJoseph KoshyCount replays because of mismatches in the lower 4 bits of load and
2818ebccf1e3SJoseph Koshystore operations.
2819ebccf1e3SJoseph Koshy.El
28209abe909bSRuslan Ermilov.Pp
2821ebccf1e3SJoseph KoshyThe default qualifier is
2822ebccf1e3SJoseph Koshy.Ar no-sta+no-std+partial-data+unalgn-addr .
2823ebccf1e3SJoseph Koshy.It Li p4-packed-dp-uop Op Li ,mask= Ns Ar flags
2824ebccf1e3SJoseph Koshy.Pq "TI event"
2825ebccf1e3SJoseph KoshyCount packed double-precision uops.
2826ebccf1e3SJoseph KoshyQualifier
2827ebccf1e3SJoseph Koshy.Ar flags
2828ebccf1e3SJoseph Koshycan take the following value (which is also the default):
28299abe909bSRuslan Ermilov.Pp
2830ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2831ebccf1e3SJoseph Koshy.It Li all
2832ebccf1e3SJoseph KoshyCount all uops operating on packed double-precision operands.
2833ebccf1e3SJoseph Koshy.El
2834ebccf1e3SJoseph Koshy.It Li p4-packed-sp-uop Op Li ,mask= Ns Ar flags
2835ebccf1e3SJoseph Koshy.Pq "TI event"
2836ebccf1e3SJoseph KoshyCount packed single-precision uops.
2837ebccf1e3SJoseph KoshyQualifier
2838ebccf1e3SJoseph Koshy.Ar flags
2839ebccf1e3SJoseph Koshycan take the following value (which is also the default):
28409abe909bSRuslan Ermilov.Pp
2841ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2842ebccf1e3SJoseph Koshy.It Li all
2843ebccf1e3SJoseph KoshyCount all uops operating on packed single-precision operands.
2844ebccf1e3SJoseph Koshy.El
2845ebccf1e3SJoseph Koshy.It Li p4-page-walk-type Op Li ,mask= Ns Ar qualifier
2846ebccf1e3SJoseph Koshy.Pq "TI event"
2847ebccf1e3SJoseph KoshyCount page walks performed by the page miss handler.
2848ebccf1e3SJoseph KoshyQualifier
2849ebccf1e3SJoseph Koshy.Ar qualifier
2850ebccf1e3SJoseph Koshycan be a
28519abe909bSRuslan Ermilov.Ql +
2852ebccf1e3SJoseph Koshyseparated list of the following keywords:
28539abe909bSRuslan Ermilov.Pp
2854ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2855ebccf1e3SJoseph Koshy.It Li dtmiss
2856ebccf1e3SJoseph KoshyCount page walks for data TLB misses.
2857ebccf1e3SJoseph Koshy.It Li itmiss
2858ebccf1e3SJoseph KoshyCount page walks for instruction TLB misses.
2859ebccf1e3SJoseph Koshy.El
28609abe909bSRuslan Ermilov.Pp
2861ebccf1e3SJoseph KoshyThe default value for
2862ebccf1e3SJoseph Koshy.Ar qualifier
2863ebccf1e3SJoseph Koshyis
28649abe909bSRuslan Ermilov.Dq Li dtmiss+itmiss .
2865ebccf1e3SJoseph Koshy.It Li p4-replay-event Op Li ,mask= Ns Ar flags
2866ebccf1e3SJoseph Koshy.Pq "TS event"
2867ebccf1e3SJoseph KoshyCount the retirement of tagged uops selected through the replay
2868ebccf1e3SJoseph Koshytagging mechanism.
2869ebccf1e3SJoseph KoshyQualifier
2870ebccf1e3SJoseph Koshy.Ar flags
2871ebccf1e3SJoseph Koshycontains a
28729abe909bSRuslan Ermilov.Ql +
2873ebccf1e3SJoseph Koshyseparated set of the following strings:
28749abe909bSRuslan Ermilov.Pp
2875ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2876ebccf1e3SJoseph Koshy.It Li nbogus
2877ebccf1e3SJoseph KoshyThe marked uops are not bogus.
2878ebccf1e3SJoseph Koshy.It Li bogus
2879ebccf1e3SJoseph KoshyThe marked uops are bogus.
2880ebccf1e3SJoseph Koshy.El
28819abe909bSRuslan Ermilov.Pp
2882ebccf1e3SJoseph KoshyThis event requires additional (upstream) events to be allocated to
2883ebccf1e3SJoseph Koshyperform the desired uop tagging.
2884ebccf1e3SJoseph KoshyThe default qualifier counts both kinds of uops.
2885ebccf1e3SJoseph KoshyThis event can be used for precise event based sampling.
2886ebccf1e3SJoseph Koshy.It Li p4-resource-stall Op Li ,mask= Ns Ar flags
2887ebccf1e3SJoseph Koshy.Pq "TS event"
2888ebccf1e3SJoseph KoshyCount the occurrence or latency of stalls in the allocator.
2889ebccf1e3SJoseph KoshyQualifier
2890ebccf1e3SJoseph Koshy.Ar flags
2891ebccf1e3SJoseph Koshycan take the following value (which is also the default):
28929abe909bSRuslan Ermilov.Pp
2893ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2894ebccf1e3SJoseph Koshy.It Li sbfull
2895ebccf1e3SJoseph KoshyA stall due to the lack of store buffers.
2896ebccf1e3SJoseph Koshy.El
2897ebccf1e3SJoseph Koshy.It Li p4-response
2898ebccf1e3SJoseph Koshy.Pq "TI event"
2899ebccf1e3SJoseph KoshyCount different types of responses.
2900ebccf1e3SJoseph KoshyFurther documentation on this event is not available.
2901ebccf1e3SJoseph Koshy.It Li p4-retired-branch-type Op Li ,mask= Ns Ar flags
2902ebccf1e3SJoseph Koshy.Pq "TS event"
2903ebccf1e3SJoseph KoshyCount branches retired.
2904ebccf1e3SJoseph KoshyQualifier
2905ebccf1e3SJoseph Koshy.Ar flags
2906ebccf1e3SJoseph Koshycontains a
29079abe909bSRuslan Ermilov.Ql +
2908ebccf1e3SJoseph Koshyseparated list of strings:
29099abe909bSRuslan Ermilov.Pp
2910ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2911ebccf1e3SJoseph Koshy.It Li conditional
2912ebccf1e3SJoseph KoshyCount conditional jumps.
2913ebccf1e3SJoseph Koshy.It Li call
2914ebccf1e3SJoseph KoshyCount direct and indirect call branches.
2915ebccf1e3SJoseph Koshy.It Li return
2916ebccf1e3SJoseph KoshyCount return branches.
2917ebccf1e3SJoseph Koshy.It Li indirect
2918ebccf1e3SJoseph KoshyCount returns, indirect calls or indirect jumps.
2919ebccf1e3SJoseph Koshy.El
29209abe909bSRuslan Ermilov.Pp
2921ebccf1e3SJoseph KoshyThe default qualifier counts all the above branch types.
2922ebccf1e3SJoseph Koshy.It Li p4-retired-mispred-branch-type Op Li ,mask= Ns Ar flags
2923ebccf1e3SJoseph Koshy.Pq "TS event"
2924ebccf1e3SJoseph KoshyCount mispredicted branches retired.
2925ebccf1e3SJoseph KoshyQualifier
2926ebccf1e3SJoseph Koshy.Ar flags
2927ebccf1e3SJoseph Koshycontains a
29289abe909bSRuslan Ermilov.Ql +
2929ebccf1e3SJoseph Koshyseparated list of strings:
29309abe909bSRuslan Ermilov.Pp
2931ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2932ebccf1e3SJoseph Koshy.It Li conditional
2933ebccf1e3SJoseph KoshyCount conditional jumps.
2934ebccf1e3SJoseph Koshy.It Li call
2935ebccf1e3SJoseph KoshyCount indirect call branches.
2936ebccf1e3SJoseph Koshy.It Li return
2937ebccf1e3SJoseph KoshyCount return branches.
2938ebccf1e3SJoseph Koshy.It Li indirect
2939ebccf1e3SJoseph KoshyCount returns, indirect calls or indirect jumps.
2940ebccf1e3SJoseph Koshy.El
29419abe909bSRuslan Ermilov.Pp
2942ebccf1e3SJoseph KoshyThe default qualifier counts all the above branch types.
2943ebccf1e3SJoseph Koshy.It Li p4-scalar-dp-uop Op Li ,mask= Ns Ar flags
2944ebccf1e3SJoseph Koshy.Pq "TI event"
2945ebccf1e3SJoseph KoshyCount the number of scalar double-precision uops.
2946ebccf1e3SJoseph KoshyQualifier
2947ebccf1e3SJoseph Koshy.Ar flags
2948ebccf1e3SJoseph Koshycan take the following value (which is also the default):
29499abe909bSRuslan Ermilov.Pp
2950ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2951ebccf1e3SJoseph Koshy.It Li all
2952ebccf1e3SJoseph KoshyCount the number of scalar double-precision uops.
2953ebccf1e3SJoseph Koshy.El
2954ebccf1e3SJoseph Koshy.It Li p4-scalar-sp-uop Op Li ,mask= Ns Ar flags
2955ebccf1e3SJoseph Koshy.Pq "TI event"
2956ebccf1e3SJoseph KoshyCount the number of scalar single-precision uops.
2957ebccf1e3SJoseph KoshyQualifier
2958ebccf1e3SJoseph Koshy.Ar flags
2959ebccf1e3SJoseph Koshycan take the following value (which is also the default):
29609abe909bSRuslan Ermilov.Pp
2961ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2962ebccf1e3SJoseph Koshy.It Li all
2963ebccf1e3SJoseph KoshyCount all uops operating on scalar single-precision operands.
2964ebccf1e3SJoseph Koshy.El
2965ebccf1e3SJoseph Koshy.It Li p4-snoop
2966ebccf1e3SJoseph Koshy.Pq "TI event"
2967ebccf1e3SJoseph KoshyCount snoop traffic.
2968ebccf1e3SJoseph KoshyFurther documentation on this event is not available.
2969ebccf1e3SJoseph Koshy.It Li p4-sse-input-assist Op Li ,mask= Ns Ar flags
2970ebccf1e3SJoseph Koshy.Pq "TI event"
2971ebccf1e3SJoseph KoshyCount the number of times an assist is required to handle problems
2972ebccf1e3SJoseph Koshywith the operands for SSE and SSE2 operations.
2973ebccf1e3SJoseph KoshyQualifier
2974ebccf1e3SJoseph Koshy.Ar flags
2975ebccf1e3SJoseph Koshycan take the following value (which is also the default):
29769abe909bSRuslan Ermilov.Pp
2977ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2978ebccf1e3SJoseph Koshy.It Li all
2979ebccf1e3SJoseph KoshyCount assists for all SSE and SSE2 uops.
2980ebccf1e3SJoseph Koshy.El
2981ebccf1e3SJoseph Koshy.It Li p4-store-port-replay Op Li ,mask= Ns Ar qualifier
2982ebccf1e3SJoseph Koshy.Pq "TS event"
2983ebccf1e3SJoseph KoshyCount events replayed at the store port.
2984ebccf1e3SJoseph KoshyQualifier
2985ebccf1e3SJoseph Koshy.Ar qualifier
2986ebccf1e3SJoseph Koshycan take on one value:
29879abe909bSRuslan Ermilov.Pp
2988ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
2989ebccf1e3SJoseph Koshy.It Li split-st
2990ebccf1e3SJoseph KoshyCount split stores.
2991ebccf1e3SJoseph Koshy.El
29929abe909bSRuslan Ermilov.Pp
2993ebccf1e3SJoseph KoshyThe default value for
2994ebccf1e3SJoseph Koshy.Ar qualifier
2995ebccf1e3SJoseph Koshyis
29969abe909bSRuslan Ermilov.Dq Li split-st .
2997ebccf1e3SJoseph Koshy.It Li p4-tc-deliver-mode Op Li ,mask= Ns Ar qualifier
2998ebccf1e3SJoseph Koshy.Pq "TI event"
2999ebccf1e3SJoseph KoshyCount the duration in cycles of operating modes of the trace cache and
3000ebccf1e3SJoseph Koshydecode engine.
3001ebccf1e3SJoseph KoshyThe desired operating mode is selected by
3002ebccf1e3SJoseph Koshy.Ar qualifier ,
3003ebccf1e3SJoseph Koshywhich is a list of the following strings separated by
30049abe909bSRuslan Ermilov.Ql +
3005ebccf1e3SJoseph Koshycharacters:
30069abe909bSRuslan Ermilov.Pp
3007ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
3008ebccf1e3SJoseph Koshy.It Li DD
3009ebccf1e3SJoseph KoshyBoth logical processors are in deliver mode.
3010ebccf1e3SJoseph Koshy.It Li DB
3011ebccf1e3SJoseph KoshyLogical processor 0 is in deliver mode while logical processor 1 is in
3012ebccf1e3SJoseph Koshybuild mode.
3013ebccf1e3SJoseph Koshy.It Li DI
3014ebccf1e3SJoseph KoshyLogical processor 0 is in deliver mode while logical processor 1 is
3015ebccf1e3SJoseph Koshyhalted, or in machine clear, or transitioning to a long microcode
3016ebccf1e3SJoseph Koshyflow.
3017ebccf1e3SJoseph Koshy.It Li BD
3018ebccf1e3SJoseph KoshyLogical processor 0 is in build mode while logical processor 1 is in
3019ebccf1e3SJoseph Koshydeliver mode.
3020ebccf1e3SJoseph Koshy.It Li BB
3021ebccf1e3SJoseph KoshyBoth logical processors are in build mode.
3022ebccf1e3SJoseph Koshy.It Li BI
3023ebccf1e3SJoseph KoshyLogical processor 0 is in build mode while logical processor 1 is
3024ebccf1e3SJoseph Koshyhalted, or in machine clear or transitioning to a long microcode
3025ebccf1e3SJoseph Koshyflow.
3026ebccf1e3SJoseph Koshy.It Li ID
3027ebccf1e3SJoseph KoshyLogical processor 0 is halted, or in machine clear or transitioning to
3028ebccf1e3SJoseph Koshya long microcode flow while logical processor 1 is in deliver mode.
3029ebccf1e3SJoseph Koshy.It Li IB
3030ebccf1e3SJoseph KoshyLogical processor 0 is halted, or in machine clear or transitioning to
3031ebccf1e3SJoseph Koshya long microcode flow while logical processor 1 is in build mode.
3032ebccf1e3SJoseph Koshy.El
30339abe909bSRuslan Ermilov.Pp
3034ebccf1e3SJoseph KoshyIf there is only one logical processor in the processor package then
3035ebccf1e3SJoseph Koshythe qualifier for logical processor 1 is ignored.
3036ebccf1e3SJoseph KoshyIf no qualifier is specified, the default qualifier is
30379abe909bSRuslan Ermilov.Dq Li DD+DB+DI+BD+BB+BI+ID+IB .
3038ebccf1e3SJoseph Koshy.It Li p4-tc-ms-xfer Op Li ,mask= Ns Ar flags
3039ebccf1e3SJoseph Koshy.Pq "TI event"
3040ebccf1e3SJoseph KoshyCount the number of times uop delivery changed from the trace cache to
3041ebccf1e3SJoseph KoshyMS ROM.
3042ebccf1e3SJoseph KoshyQualifier
3043ebccf1e3SJoseph Koshy.Ar flags
3044ebccf1e3SJoseph Koshycan take the following value (which is also the default):
30459abe909bSRuslan Ermilov.Pp
3046ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
3047ebccf1e3SJoseph Koshy.It Li cisc
3048ebccf1e3SJoseph KoshyCount TC to MS transfers.
3049ebccf1e3SJoseph Koshy.El
3050ebccf1e3SJoseph Koshy.It Li p4-uop-queue-writes Op Li ,mask= Ns Ar flags
3051ebccf1e3SJoseph Koshy.Pq "TS event"
3052ebccf1e3SJoseph KoshyCount the number of valid uops written to the uop queue.
3053ebccf1e3SJoseph KoshyQualifier
3054ebccf1e3SJoseph Koshy.Ar flags
3055ebccf1e3SJoseph Koshyis a list of the following strings, separated by
30569abe909bSRuslan Ermilov.Ql +
3057ebccf1e3SJoseph Koshycharacters:
30589abe909bSRuslan Ermilov.Pp
3059ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
3060ebccf1e3SJoseph Koshy.It Li from-tc-build
3061ebccf1e3SJoseph KoshyCount uops being written from the trace cache in build mode.
3062ebccf1e3SJoseph Koshy.It Li from-tc-deliver
3063ebccf1e3SJoseph KoshyCount uops being written from the trace cache in deliver mode.
3064ebccf1e3SJoseph Koshy.It Li from-rom
3065ebccf1e3SJoseph KoshyCount uops being written from microcode ROM.
3066ebccf1e3SJoseph Koshy.El
30679abe909bSRuslan Ermilov.Pp
3068ebccf1e3SJoseph KoshyThe default qualifier counts all the above kinds of uops.
3069ebccf1e3SJoseph Koshy.It Li p4-uop-type Op Li ,mask= Ns Ar flags
3070ebccf1e3SJoseph Koshy.Pq "TS event"
3071ebccf1e3SJoseph KoshyThis event is used in conjunction with the front-end at-retirement
3072ebccf1e3SJoseph Koshymechanism to tag load and store uops.
3073ebccf1e3SJoseph KoshyQualifer
3074ebccf1e3SJoseph Koshy.Ar flags
3075ebccf1e3SJoseph Koshycomprises the following strings separated by
30769abe909bSRuslan Ermilov.Ql +
3077ebccf1e3SJoseph Koshycharacters:
30789abe909bSRuslan Ermilov.Pp
3079ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
3080ebccf1e3SJoseph Koshy.It Li tagloads
3081ebccf1e3SJoseph KoshyMark uops that are load operations.
3082ebccf1e3SJoseph Koshy.It Li tagstores
3083ebccf1e3SJoseph KoshyMark uops that are store operations.
3084ebccf1e3SJoseph Koshy.El
30859abe909bSRuslan Ermilov.Pp
3086ebccf1e3SJoseph KoshyThe default qualifier counts both kinds of uops.
3087ebccf1e3SJoseph Koshy.It Li p4-uops-retired Op Li ,mask= Ns Ar flags
3088ebccf1e3SJoseph Koshy.Pq "TS event"
3089ebccf1e3SJoseph KoshyCount uops retired during a clock cycle.
3090ebccf1e3SJoseph KoshyQualifier
3091ebccf1e3SJoseph Koshy.Ar flags
3092ebccf1e3SJoseph Koshycomprises the following strings separated by
30939abe909bSRuslan Ermilov.Ql +
3094ebccf1e3SJoseph Koshycharacters:
30959abe909bSRuslan Ermilov.Pp
3096ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
3097ebccf1e3SJoseph Koshy.It Li nbogus
3098ebccf1e3SJoseph KoshyCount marked uops that are not bogus.
3099ebccf1e3SJoseph Koshy.It Li bogus
3100ebccf1e3SJoseph KoshyCount marked uops that are bogus.
3101ebccf1e3SJoseph Koshy.El
31029abe909bSRuslan Ermilov.Pp
3103ebccf1e3SJoseph KoshyThe default qualifier counts both kinds of uops.
3104ebccf1e3SJoseph Koshy.It Li p4-wc-buffer Op Li ,mask= Ns Ar flags
3105ebccf1e3SJoseph Koshy.Pq "TI event"
3106ebccf1e3SJoseph KoshyCount write-combining buffer operations.
3107ebccf1e3SJoseph KoshyQualifier
3108ebccf1e3SJoseph Koshy.Ar flags
3109ebccf1e3SJoseph Koshycontains the following strings separated by
31109abe909bSRuslan Ermilov.Ql +
3111ebccf1e3SJoseph Koshycharacters:
31129abe909bSRuslan Ermilov.Pp
3113ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
3114ebccf1e3SJoseph Koshy.It Li wcb-evicts
3115ebccf1e3SJoseph KoshyWC buffer evictions due to any cause.
3116ebccf1e3SJoseph Koshy.It Li wcb-full-evict
3117ebccf1e3SJoseph KoshyWC buffer evictions due to no WC buffer being available.
3118ebccf1e3SJoseph Koshy.El
31199abe909bSRuslan Ermilov.Pp
3120ebccf1e3SJoseph KoshyThe default qualifer counts both kinds of evictions.
3121ebccf1e3SJoseph Koshy.It Li p4-x87-assist Op Li ,mask= Ns Ar flags
3122ebccf1e3SJoseph Koshy.Pq "TS event"
3123ebccf1e3SJoseph KoshyCount the retirement of x87 instructions that required special
3124ebccf1e3SJoseph Koshyhandling.
3125ebccf1e3SJoseph KoshyQualifier
3126ebccf1e3SJoseph Koshy.Ar flags
3127ebccf1e3SJoseph Koshycontains the following strings separated by
31289abe909bSRuslan Ermilov.Ql +
3129ebccf1e3SJoseph Koshycharacters:
31309abe909bSRuslan Ermilov.Pp
3131ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
3132ebccf1e3SJoseph Koshy.It Li fpsu
3133ebccf1e3SJoseph KoshyCount instructions that saw an FP stack underflow.
3134ebccf1e3SJoseph Koshy.It Li fpso
3135ebccf1e3SJoseph KoshyCount instructions that saw an FP stack overflow.
3136ebccf1e3SJoseph Koshy.It Li poao
3137ebccf1e3SJoseph KoshyCount instructions that saw an x87 output overflow.
3138ebccf1e3SJoseph Koshy.It Li poau
3139ebccf1e3SJoseph KoshyCount instructions that saw an x87 output underflow.
3140ebccf1e3SJoseph Koshy.It Li prea
3141ebccf1e3SJoseph KoshyCount instructions that needed an x87 input assist.
3142ebccf1e3SJoseph Koshy.El
31439abe909bSRuslan Ermilov.Pp
3144ebccf1e3SJoseph KoshyThe default qualifier counts all the above types of instruction
3145ebccf1e3SJoseph Koshyretirements.
3146ebccf1e3SJoseph Koshy.It Li p4-x87-fp-uop Op Li ,mask= Ns Ar flags
3147ebccf1e3SJoseph Koshy.Pq "TI event"
3148ebccf1e3SJoseph KoshyCount x87 floating-point uops.
3149ebccf1e3SJoseph KoshyQualifier
3150ebccf1e3SJoseph Koshy.Ar flags
3151ebccf1e3SJoseph Koshycan take the following value (which is also the default):
31529abe909bSRuslan Ermilov.Pp
3153ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
3154ebccf1e3SJoseph Koshy.It Li all
3155ebccf1e3SJoseph KoshyCount all x87 floating-point uops.
3156ebccf1e3SJoseph Koshy.El
31579abe909bSRuslan Ermilov.Pp
3158ebccf1e3SJoseph KoshyIf an instruction contains more than one x87 floating-point uops, then
3159ebccf1e3SJoseph Koshyall x87 floating-point uops will be counted.
3160ebccf1e3SJoseph KoshyThis event does not count x87 floating-point data movement operations.
3161ebccf1e3SJoseph Koshy.It Li p4-x87-simd-moves-uop Op Li ,mask= Ns Ar flags
3162ebccf1e3SJoseph Koshy.Pq "TI event"
3163ebccf1e3SJoseph KoshyCount each x87 FPU, MMX, SSE, or SSE2 uops that load data or store
3164ebccf1e3SJoseph Koshydata or perform register-to-register moves.
3165ebccf1e3SJoseph KoshyThis event does not count integer move uops.
3166ebccf1e3SJoseph KoshyQualifier
3167ebccf1e3SJoseph Koshy.Ar flags
3168ebccf1e3SJoseph Koshymay contain the following keywords separated by
31699abe909bSRuslan Ermilov.Ql +
3170ebccf1e3SJoseph Koshycharacters:
31719abe909bSRuslan Ermilov.Pp
3172ebccf1e3SJoseph Koshy.Bl -tag -width indent -compact
3173ebccf1e3SJoseph Koshy.It Li allp0
3174ebccf1e3SJoseph KoshyCount all x87 and SIMD store and move uops.
3175ebccf1e3SJoseph Koshy.It Li allp2
3176ebccf1e3SJoseph KoshyCount all x87 and SIMD load uops.
3177ebccf1e3SJoseph Koshy.El
31789abe909bSRuslan Ermilov.Pp
3179ebccf1e3SJoseph KoshyThe default is to count all uops.
318067edd229SJoseph Koshy.Pq Errata
318167edd229SJoseph KoshyThis event may be affected by processor errata N43.
3182ebccf1e3SJoseph Koshy.El
3183ebccf1e3SJoseph Koshy.Ss "Cascading P4 PMCs"
31849abe909bSRuslan ErmilovPMC cascading support is currently poorly implemented.
31859abe909bSRuslan ErmilovWhile individual event counters may be allocated with a
31869abe909bSRuslan Ermilov.Dq Li cascade
31879abe909bSRuslan Ermilovqualifier, the current API does not offer the ability
31889abe909bSRuslan Ermilovto name and allocate all the resources needed for a
31899abe909bSRuslan Ermilovcascaded event counter pair in a single operation.
3190ebccf1e3SJoseph Koshy.Ss "Precise Event Based Sampling"
31919abe909bSRuslan ErmilovSupport for precise event based sampling is currently
3192c89d1cf5SJoseph Koshyunimplemented.
31935138c36aSJoseph Koshy.Sh COMPATIBILITY
31945138c36aSJoseph KoshyThe interface between the
3195110e1704SRuslan Ermilov.Nm pmc
31965138c36aSJoseph Koshylibrary and the
31975138c36aSJoseph Koshy.Xr hwpmc 4
31985138c36aSJoseph Koshydriver is intended to be private to the implementation and may
31995138c36aSJoseph Koshychange.
32005138c36aSJoseph KoshyIn order to ease forward compatibility with future versions of the
32015138c36aSJoseph Koshy.Xr hwpmc 4
32025138c36aSJoseph Koshydriver, applications are urged to dynamically link with the
3203110e1704SRuslan Ermilov.Nm pmc
32045138c36aSJoseph Koshylibrary.
32055138c36aSJoseph Koshy.Pp
32065138c36aSJoseph KoshyThe
3207110e1704SRuslan Ermilov.Nm pmc
32085138c36aSJoseph KoshyAPI is
32095138c36aSJoseph Koshy.Ud
3210ebccf1e3SJoseph Koshy.Sh SEE ALSO
3211f263522aSJoseph Koshy.Xr pmclog 3 ,
3212ebccf1e3SJoseph Koshy.Xr hwpmc 4 ,
3213ebccf1e3SJoseph Koshy.Xr pmccontrol 8 ,
3214ebccf1e3SJoseph Koshy.Xr pmcstat 8
32155138c36aSJoseph Koshy.Sh HISTORY
32165138c36aSJoseph KoshyThe
3217110e1704SRuslan Ermilov.Nm pmc
32185138c36aSJoseph Koshylibrary first appeared in
32195138c36aSJoseph Koshy.Fx 6.0 .
3220c89d1cf5SJoseph Koshy.Sh AUTHORS
3221c89d1cf5SJoseph KoshyThe
3222c89d1cf5SJoseph Koshy.Lb libpmc
3223c89d1cf5SJoseph Koshylibrary was written by
3224c89d1cf5SJoseph Koshy.An "Joseph Koshy"
3225c89d1cf5SJoseph Koshy.Aq jkoshy@FreeBSD.org .
3226