2010-03-23 11:33:08 +00:00
|
|
|
.\" Copyright (c) 2009, 2010 Rui Paulo. All rights reserved.
|
2009-12-23 23:16:54 +00:00
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
.\"
|
2012-02-17 11:09:51 +00:00
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
.\" SUCH DAMAGE.
|
2009-12-23 23:16:54 +00:00
|
|
|
.\"
|
|
|
|
.\" $FreeBSD$
|
|
|
|
.\"
|
|
|
|
.Dd December 23, 2009
|
|
|
|
.Dt PMC.XSCALE 3
|
2010-11-06 10:54:33 +00:00
|
|
|
.Os
|
2009-12-23 23:16:54 +00:00
|
|
|
.Sh NAME
|
|
|
|
.Nm pmc.xscale
|
|
|
|
.Nd measurement events for
|
|
|
|
.Tn Intel
|
|
|
|
.Tn XScale
|
|
|
|
family CPUs
|
|
|
|
.Sh LIBRARY
|
|
|
|
.Lb libpmc
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
.In pmc.h
|
|
|
|
.Sh DESCRIPTION
|
2010-03-23 11:33:08 +00:00
|
|
|
.Tn Intel XScale
|
|
|
|
CPUs are ARM CPUs based on the ARMv5e core.
|
|
|
|
.Pp
|
|
|
|
Second generation cores have 2 counters, while third generation cores
|
|
|
|
have 4 counters.
|
|
|
|
Third generation cores also have an increased number of PMC events.
|
|
|
|
.Pp
|
|
|
|
.Tn Intel XScale
|
2012-03-29 05:02:12 +00:00
|
|
|
PMCs are documented in
|
2010-03-23 11:33:08 +00:00
|
|
|
.Rs
|
|
|
|
.%B "3rd Generation Intel XScale Microarchitecture Developer's Manual"
|
|
|
|
.%D May 2007
|
|
|
|
.Re
|
|
|
|
.Ss Event Specifiers (Programmable PMCs)
|
|
|
|
.Tn Intel XScale
|
|
|
|
programmable PMCs support the following events:
|
|
|
|
.Bl -tag -width indent
|
|
|
|
.It Li IC_FETCH
|
|
|
|
External memory fetch due to L1 instruction cache miss.
|
|
|
|
.It Li IC_MISS
|
|
|
|
Instruction cache or TLB miss.
|
|
|
|
.It Li DATA_DEPENDENCY_STALLED
|
|
|
|
A data dependency stalled
|
|
|
|
.It Li ITLB_MISS
|
|
|
|
Instruction TLB miss.
|
|
|
|
.It Li DTLB_MISS
|
|
|
|
Data TLB miss.
|
|
|
|
.It Li BRANCH_RETIRED
|
|
|
|
Branch instruction retired (executed).
|
|
|
|
.It Li BRANCH_MISPRED
|
|
|
|
Branch mispredicted.
|
|
|
|
.It Li INSTR_RETIRED
|
|
|
|
Instructions retired (executed).
|
|
|
|
.It Li DC_FULL_CYCLE
|
|
|
|
L1 data cache buffer full stall.
|
|
|
|
Event occurs on every cycle the
|
|
|
|
condition is present.
|
|
|
|
.It Li DC_FULL_CONTIG
|
|
|
|
L1 data cache buffer full stall.
|
|
|
|
Event occurs once for each contiguous sequence of this type of stall.
|
|
|
|
.It Li DC_ACCESS
|
|
|
|
L1 data cache access, not including cache operations.
|
|
|
|
.It Li DC_MISS
|
|
|
|
L1 data cache miss, not including cache operations.
|
|
|
|
.It Li DC_WRITEBACK
|
|
|
|
L1 data cache write-back.
|
|
|
|
Occurs for each cache line that's written back from the cache.
|
|
|
|
.It Li PC_CHANGE
|
|
|
|
Software changed the program counter.
|
|
|
|
.It Li BRANCH_RETIRED_ALL
|
|
|
|
Branch instruction retired (executed).
|
|
|
|
This event counts all branch instructions, indirect or direct.
|
|
|
|
.It Li INSTR_CYCLE
|
|
|
|
Count the number of microarchitecture cycles each instruction requires
|
|
|
|
to issue.
|
|
|
|
.It Li CP_STALL
|
|
|
|
Coprocessor stalled the instruction pipeline.
|
|
|
|
.It Li PC_CHANGE_ALL
|
|
|
|
Software changed the program counter (includes exceptions).
|
|
|
|
.It Li PIPELINE_FLUSH
|
|
|
|
Pipeline flushes due to mispredictions or exceptions.
|
|
|
|
.It Li BACKEND_STALL
|
|
|
|
Backend stalled the instruction pipeline.
|
|
|
|
.It Li MULTIPLIER_USE
|
|
|
|
Multiplier used.
|
|
|
|
.It Li MULTIPLIER_STALLED
|
|
|
|
Multiplier stalled the instruction pipeline.
|
|
|
|
.It Li DATA_CACHE_STALLED
|
|
|
|
Data cache stalled the instruction pipeline.
|
|
|
|
.It Li L2_CACHE_REQ
|
2010-08-03 17:40:09 +00:00
|
|
|
L2 cache request, not including cache operations.
|
2010-03-23 11:33:08 +00:00
|
|
|
.It Li L2_CACHE_MISS
|
|
|
|
L2 cache miss, not including cache operations.
|
|
|
|
.It Li ADDRESS_BUS_TRANS
|
|
|
|
Address bus transaction.
|
|
|
|
.It Li SELF_ADDRESS_BUS_TRANS
|
|
|
|
Self initiated address bus transaction.
|
|
|
|
.It Li DATA_BUS_TRANS
|
|
|
|
Data bus transaction.
|
|
|
|
.El
|
2012-03-29 05:02:12 +00:00
|
|
|
.Ss Event Name Aliases
|
2010-03-23 11:33:08 +00:00
|
|
|
The following table shows the mapping between the PMC-independent
|
|
|
|
aliases supported by
|
|
|
|
.Lb libpmc
|
|
|
|
and the underlying hardware events used.
|
|
|
|
.Bl -column "branch-mispredicts" "BRANCH_MISPRED"
|
2012-03-27 15:55:56 +00:00
|
|
|
.It Em Alias Ta Em Event
|
|
|
|
.It Li branches Ta Li BRANCH_RETIRED
|
|
|
|
.It Li branch-mispredicts Ta Li BRANCH_MISPRED
|
|
|
|
.It Li dc-misses Ta Li DC_MISS
|
|
|
|
.It Li ic-misses Ta Li IC_MISS
|
|
|
|
.It Li instructions Ta Li INSTR_RETIRED
|
2010-03-23 11:33:08 +00:00
|
|
|
.El
|
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr pmc 3 ,
|
2015-01-04 12:38:00 +00:00
|
|
|
.Xr pmc.soft 3 ,
|
2010-03-23 11:33:08 +00:00
|
|
|
.Xr pmc_cpuinfo 3 ,
|
|
|
|
.Xr pmclog 3 ,
|
|
|
|
.Xr hwpmc 4
|
|
|
|
.Sh HISTORY
|
|
|
|
The
|
|
|
|
.Nm pmc
|
|
|
|
library first appeared in
|
|
|
|
.Fx 6.0 .
|
|
|
|
Intel XScale support first appeared in
|
|
|
|
.Fx 9.0 .
|
|
|
|
.Sh AUTHORS
|
2014-06-23 08:23:05 +00:00
|
|
|
.An -nosplit
|
2010-03-23 11:33:08 +00:00
|
|
|
The
|
|
|
|
.Lb libpmc
|
|
|
|
library was written by
|
2014-06-23 08:23:05 +00:00
|
|
|
.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org .
|
2010-03-23 11:33:08 +00:00
|
|
|
.Pp
|
|
|
|
Intel XScale support was added by
|
2014-06-23 08:23:05 +00:00
|
|
|
.An Rui Paulo Aq Mt rpaulo@FreeBSD.org .
|
2010-05-13 12:07:55 +00:00
|
|
|
.Sh CAVEATS
|
|
|
|
The Intel XScale code does not yet support sampling.
|