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