xref: /freebsd/usr.sbin/pmcstat/pmcstat.8 (revision e572c7a748cdc1bfc2a52cd9c21f86ac59a0e1e0)
1e572c7a7SJoseph Koshy.\" Copyright (c) 2003-2008 Joseph Koshy
2b6010f9eSJoseph Koshy.\" Copyright (c) 2007 The FreeBSD Foundation
3b6010f9eSJoseph Koshy.\" All rights reserved.
4ebccf1e3SJoseph Koshy.\"
5ebccf1e3SJoseph Koshy.\" Redistribution and use in source and binary forms, with or without
6ebccf1e3SJoseph Koshy.\" modification, are permitted provided that the following conditions
7ebccf1e3SJoseph Koshy.\" are met:
8ebccf1e3SJoseph Koshy.\" 1. Redistributions of source code must retain the above copyright
9ebccf1e3SJoseph Koshy.\"    notice, this list of conditions and the following disclaimer.
10ebccf1e3SJoseph Koshy.\" 2. Redistributions in binary form must reproduce the above copyright
11ebccf1e3SJoseph Koshy.\"    notice, this list of conditions and the following disclaimer in the
12ebccf1e3SJoseph Koshy.\"    documentation and/or other materials provided with the distribution.
13ebccf1e3SJoseph Koshy.\"
14ebccf1e3SJoseph Koshy.\" This software is provided by Joseph Koshy ``as is'' and
15ebccf1e3SJoseph Koshy.\" any express or implied warranties, including, but not limited to, the
16ebccf1e3SJoseph Koshy.\" implied warranties of merchantability and fitness for a particular purpose
17ebccf1e3SJoseph Koshy.\" are disclaimed.  in no event shall Joseph Koshy be liable
18ebccf1e3SJoseph Koshy.\" for any direct, indirect, incidental, special, exemplary, or consequential
19ebccf1e3SJoseph Koshy.\" damages (including, but not limited to, procurement of substitute goods
20ebccf1e3SJoseph Koshy.\" or services; loss of use, data, or profits; or business interruption)
21ebccf1e3SJoseph Koshy.\" however caused and on any theory of liability, whether in contract, strict
22ebccf1e3SJoseph Koshy.\" liability, or tort (including negligence or otherwise) arising in any way
23ebccf1e3SJoseph Koshy.\" out of the use of this software, even if advised of the possibility of
24ebccf1e3SJoseph Koshy.\" such damage.
25ebccf1e3SJoseph Koshy.\"
26ebccf1e3SJoseph Koshy.\" $FreeBSD$
27ebccf1e3SJoseph Koshy.\"
28e572c7a7SJoseph Koshy.Dd June 29, 2008
29ebccf1e3SJoseph Koshy.Os
30ebccf1e3SJoseph Koshy.Dt PMCSTAT 8
31ebccf1e3SJoseph Koshy.Sh NAME
32ebccf1e3SJoseph Koshy.Nm pmcstat
3321ce09caSJoseph Koshy.Nd "performance measurement with performance monitoring hardware"
34ebccf1e3SJoseph Koshy.Sh SYNOPSIS
35ebccf1e3SJoseph Koshy.Nm
36ebccf1e3SJoseph Koshy.Op Fl C
3715139246SJoseph Koshy.Op Fl D Ar pathname
38f263522aSJoseph Koshy.Op Fl E
39b6010f9eSJoseph Koshy.Op Fl G Ar pathname
4049874f6eSJoseph Koshy.Op Fl M Ar mapfilename
41b6010f9eSJoseph Koshy.Op Fl N
42ebccf1e3SJoseph Koshy.Op Fl O Ar logfilename
43ebccf1e3SJoseph Koshy.Op Fl P Ar event-spec
44f263522aSJoseph Koshy.Op Fl R Ar logfilename
45ebccf1e3SJoseph Koshy.Op Fl S Ar event-spec
46f263522aSJoseph Koshy.Op Fl W
47ee4910b1SJoseph Koshy.Op Fl c Ar cpu-spec
48ebccf1e3SJoseph Koshy.Op Fl d
49f263522aSJoseph Koshy.Op Fl g
5049874f6eSJoseph Koshy.Op Fl k Ar kerneldir
5121ce09caSJoseph Koshy.Op Fl n Ar rate
52ebccf1e3SJoseph Koshy.Op Fl o Ar outputfile
53ebccf1e3SJoseph Koshy.Op Fl p Ar event-spec
5449874f6eSJoseph Koshy.Op Fl q
5549874f6eSJoseph Koshy.Op Fl r Ar fsroot
56ebccf1e3SJoseph Koshy.Op Fl s Ar event-spec
57fbd8b34aSJoseph Koshy.Op Fl t Ar process-spec
5849874f6eSJoseph Koshy.Op Fl v
5921ce09caSJoseph Koshy.Op Fl w Ar secs
60b6010f9eSJoseph Koshy.Op Fl z Ar graphdepth
6121ce09caSJoseph Koshy.Op Ar command Op Ar args
62ebccf1e3SJoseph Koshy.Sh DESCRIPTION
63ebccf1e3SJoseph KoshyThe
64ebccf1e3SJoseph Koshy.Nm
65ebccf1e3SJoseph Koshyutility measures system performance using the facilities provided by
66ebccf1e3SJoseph Koshy.Xr hwpmc 4 .
67ebccf1e3SJoseph Koshy.Pp
68ebccf1e3SJoseph KoshyThe
69ebccf1e3SJoseph Koshy.Nm
70ebccf1e3SJoseph Koshyutility can measure both hardware events seen by the system as a
71fbd8b34aSJoseph Koshywhole, and those seen when a specified set of processes are executing
72fbd8b34aSJoseph Koshyon the system's CPUs.
73fbd8b34aSJoseph KoshyIf a specific set of processes is being targeted (for example,
74ebccf1e3SJoseph Koshyif the
75fbd8b34aSJoseph Koshy.Fl t Ar process-spec
76ebccf1e3SJoseph Koshyoption is specified, or if a command line is specified using
77ebccf1e3SJoseph Koshy.Ar command ) ,
78fbd8b34aSJoseph Koshythen measurement occurs till
79fbd8b34aSJoseph Koshy.Ar command
80fbd8b34aSJoseph Koshyexits, or till all target processes specified by the
81fbd8b34aSJoseph Koshy.Fl t Ar process-spec
82fbd8b34aSJoseph Koshyoptions exit, or till the
83ebccf1e3SJoseph Koshy.Nm
84ebccf1e3SJoseph Koshyutility is interrupted by the user.
85fbd8b34aSJoseph KoshyIf a specific set of processes is not targeted for measurement, then
86ebccf1e3SJoseph Koshy.Nm
87ebccf1e3SJoseph Koshywill perform system-wide measurements till interrupted by the
88ebccf1e3SJoseph Koshyuser.
89ebccf1e3SJoseph Koshy.Pp
90ebccf1e3SJoseph KoshyA given invocation of
91ebccf1e3SJoseph Koshy.Nm
92ebccf1e3SJoseph Koshycan mix allocations of system-mode and process-mode PMCs, of both
93ebccf1e3SJoseph Koshycounting and sampling flavors.
94ebccf1e3SJoseph KoshyThe values of all counting PMCs are printed in human readable form
95ebccf1e3SJoseph Koshyat regular intervals by
96ebccf1e3SJoseph Koshy.Nm .
97f263522aSJoseph KoshyThe output of sampling PMCs may be configured to go to a log file for
98f263522aSJoseph Koshysubsequent offline analysis, or, at the expense of greater
9921ce09caSJoseph Koshyoverhead, may be configured to be printed in text form on the fly.
100ebccf1e3SJoseph Koshy.Pp
101ebccf1e3SJoseph KoshyHardware events to measure are specified to
102ebccf1e3SJoseph Koshy.Nm
103ebccf1e3SJoseph Koshyusing event specifier strings
104ebccf1e3SJoseph Koshy.Ar event-spec .
105ebccf1e3SJoseph KoshyThe syntax of these event specifiers is machine dependent and is
106ebccf1e3SJoseph Koshydocumented in
107ebccf1e3SJoseph Koshy.Xr pmc 3 .
108ebccf1e3SJoseph Koshy.Pp
109ebccf1e3SJoseph KoshyA process-mode PMC may be configured to be inheritable by the target
110ebccf1e3SJoseph Koshyprocess' current and future children.
111ebccf1e3SJoseph Koshy.Sh OPTIONS
112ebccf1e3SJoseph KoshyThe following options are available:
113ebccf1e3SJoseph Koshy.Bl -tag -width indent
114ebccf1e3SJoseph Koshy.It Fl C
115f263522aSJoseph KoshyToggle between showing cumulative or incremental counts for
116ebccf1e3SJoseph Koshysubsequent counting mode PMCs specified on the command line.
117ebccf1e3SJoseph KoshyThe default is to show incremental counts.
118f263522aSJoseph Koshy.It Fl D Ar pathname
119f263522aSJoseph KoshyCreate files with per-program samples in the directory named
120f263522aSJoseph Koshyby
121f263522aSJoseph Koshy.Ar pathname .
122f263522aSJoseph KoshyThe default is to create these files in the current directory.
123f263522aSJoseph Koshy.It Fl E
124f263522aSJoseph KoshyToggle showing per-process counts at the time a tracked process
125f263522aSJoseph Koshyexits for subsequent process-mode PMCs specified on the command line.
126f263522aSJoseph KoshyThis option is useful for mapping the performance characteristics of a
127f263522aSJoseph Koshycomplex pipeline of processes when used in conjunction with the
128f263522aSJoseph Koshy.Fl d
129f263522aSJoseph Koshyoption.
130f263522aSJoseph KoshyThe default is to not to enable per-process tracking.
131b6010f9eSJoseph Koshy.It Fl G Ar pathname
132b6010f9eSJoseph KoshyPrint callchain information to file
133b6010f9eSJoseph Koshy.Ar pathname .
134b6010f9eSJoseph KoshyIf argument
135b6010f9eSJoseph Koshy.Ar pathname
136b6010f9eSJoseph Koshyis a
137b6010f9eSJoseph Koshy.Dq Li -
138b6010f9eSJoseph Koshythis information is sent to the output file specified by the
139b6010f9eSJoseph Koshy.Fl o
140b6010f9eSJoseph Koshyoption.
14149874f6eSJoseph Koshy.It Fl M Ar mapfilename
14249874f6eSJoseph KoshyWrite the mapping between executable objects encountered in the event
14349874f6eSJoseph Koshylog and the abbreviated pathnames used for
14449874f6eSJoseph Koshy.Xr gprof 1
14549874f6eSJoseph Koshyprofiles to file
14649874f6eSJoseph Koshy.Ar mapfilename .
14749874f6eSJoseph KoshyIf this option is not specified, mapping information is not written.
14849874f6eSJoseph KoshyArgument
14949874f6eSJoseph Koshy.Ar mapfilename
15049874f6eSJoseph Koshymay be a
15149874f6eSJoseph Koshy.Dq Li -
15249874f6eSJoseph Koshyin which case this mapping information is sent to the output
15349874f6eSJoseph Koshyfile configured by the
15449874f6eSJoseph Koshy.Fl o
15549874f6eSJoseph Koshyoption.
156b6010f9eSJoseph Koshy.It Fl N
157b6010f9eSJoseph KoshyToggle capturing callchain information for subsequent sampling PMCs.
158b6010f9eSJoseph KoshyThe default is for sampling PMCs to capture callchain information.
159ebccf1e3SJoseph Koshy.It Fl O Ar logfilename
16021ce09caSJoseph KoshySend logging output to file
161ebccf1e3SJoseph Koshy.Ar logfilename .
162302cbb90SJoseph KoshyIf
163302cbb90SJoseph Koshy.Ar logfilename
164302cbb90SJoseph Koshyis of the form
165302cbb90SJoseph Koshy.Ar hostname Ns : Ns Ar port ,
166302cbb90SJoseph Koshywhere
167302cbb90SJoseph Koshy.Ar hostname
168302cbb90SJoseph Koshydoes not start with a
169bc84aa4bSRuslan Ermilov.Ql \&.
170302cbb90SJoseph Koshyor a
171bc84aa4bSRuslan Ermilov.Ql / ,
172302cbb90SJoseph Koshythen
173302cbb90SJoseph Koshy.Nm
174302cbb90SJoseph Koshywill open a network socket to host
175302cbb90SJoseph Koshy.Ar hostname
176302cbb90SJoseph Koshyon port
177302cbb90SJoseph Koshy.Ar port .
178302cbb90SJoseph Koshy.Pp
179302cbb90SJoseph KoshyIf the
180302cbb90SJoseph Koshy.Fl O
181302cbb90SJoseph Koshyoption is not specified and one of the logging options is requested,
182302cbb90SJoseph Koshythen
183f263522aSJoseph Koshy.Nm
18421ce09caSJoseph Koshywill print a textual form of the logged events to the configured
185f263522aSJoseph Koshyoutput file.
186ebccf1e3SJoseph Koshy.It Fl P Ar event-spec
187ebccf1e3SJoseph KoshyAllocate a process mode sampling PMC measuring hardware events
188ebccf1e3SJoseph Koshyspecified in
189ebccf1e3SJoseph Koshy.Ar event-spec .
190f263522aSJoseph Koshy.It Fl R Ar logfilename
191f263522aSJoseph KoshyPerform offline analysis using sampling data in file
192f263522aSJoseph Koshy.Ar logfilename .
193ebccf1e3SJoseph Koshy.It Fl S Ar event-spec
194ebccf1e3SJoseph KoshyAllocate a system mode sampling PMC measuring hardware events
195ebccf1e3SJoseph Koshyspecified in
196ebccf1e3SJoseph Koshy.Ar event-spec .
197f263522aSJoseph Koshy.It Fl W
198f263522aSJoseph KoshyToggle logging the incremental counts seen by the threads of a
199f263522aSJoseph Koshytracked process each time they are scheduled on a CPU.
200f263522aSJoseph KoshyThis is an experimental feature intended to help analyse the
201f263522aSJoseph Koshydynamic behaviour of processes in the system.
202f263522aSJoseph KoshyIt may incur substantial overhead if enabled.
203f263522aSJoseph KoshyThe default is for this feature to be disabled.
204ee4910b1SJoseph Koshy.It Fl c Ar cpu-spec
205ee4910b1SJoseph KoshySet the cpus for subsequent system mode PMCs specified on the
206ebccf1e3SJoseph Koshycommand line to
207ee4910b1SJoseph Koshy.Ar cpu-spec .
208ee4910b1SJoseph KoshyArgument
209ee4910b1SJoseph Koshy.Ar cpu-spec
210ee4910b1SJoseph Koshyis a comma separated list of CPU numbers, or the literal
211ee4910b1SJoseph Koshy.Sq *
212ee4910b1SJoseph Koshydenoting all CPUs.
213b6010f9eSJoseph KoshyThe default is to allocate system mode PMCs on all active CPUs in
214b6010f9eSJoseph Koshythe system.
215ebccf1e3SJoseph Koshy.It Fl d
216ebccf1e3SJoseph KoshyToggle between process mode PMCs measuring events for the target
217ebccf1e3SJoseph Koshyprocess' current and future children or only measuring events for
218f263522aSJoseph Koshythe target process.
219ebccf1e3SJoseph KoshyThe default is to measure events for the target process alone.
220f263522aSJoseph Koshy.It Fl g
221b6010f9eSJoseph KoshyProduce profiles in a format compatible with
222f263522aSJoseph Koshy.Xr gprof 1 .
2231fdbf256SJoseph KoshyA separate profile file is generated for each executable object
2241fdbf256SJoseph Koshyencountered.
2251fdbf256SJoseph KoshyProfile files are placed in sub-directories named by their PMC
2261fdbf256SJoseph Koshyevent name.
22749874f6eSJoseph Koshy.It Fl k Ar kerneldir
22849874f6eSJoseph KoshySet the pathname of the kernel directory to argument
22949874f6eSJoseph Koshy.Ar kerneldir .
23049874f6eSJoseph KoshyThis directory specifies where
23149874f6eSJoseph Koshy.Nm
23249874f6eSJoseph Koshyshould look for the kernel and its modules.
23315139246SJoseph KoshyThe default is
23449874f6eSJoseph Koshy.Pa /boot/kernel .
235ebccf1e3SJoseph Koshy.It Fl n Ar rate
236ebccf1e3SJoseph KoshySet the default sampling rate for subsequent sampling mode
237ebccf1e3SJoseph KoshyPMCs specified on the command line.
238ebccf1e3SJoseph KoshyThe default is to configure PMCs to sample the CPU's instruction
239ebccf1e3SJoseph Koshypointer every 65536 events.
240ebccf1e3SJoseph Koshy.It Fl o Ar outputfile
24121ce09caSJoseph KoshySend counter readings and textual representations of logged data
242ebccf1e3SJoseph Koshyto file
243ebccf1e3SJoseph Koshy.Ar outputfile .
244ebccf1e3SJoseph KoshyThe default is to send output to
245b6010f9eSJoseph Koshy.Pa stderr
246b6010f9eSJoseph Koshywhen collecting live data and to
247b6010f9eSJoseph Koshy.Pa stdout
248b6010f9eSJoseph Koshywhen processing a pre-existing logfile.
249ebccf1e3SJoseph Koshy.It Fl p Ar event-spec
250ebccf1e3SJoseph KoshyAllocate a process mode counting PMC measuring hardware events
251ebccf1e3SJoseph Koshyspecified in
252ebccf1e3SJoseph Koshy.Ar event-spec .
25349874f6eSJoseph Koshy.It Fl q
25449874f6eSJoseph KoshyDecrease verbosity.
25549874f6eSJoseph Koshy.It Fl r Ar fsroot
25649874f6eSJoseph KoshySet the top of the filesystem hierarchy under which executables
25749874f6eSJoseph Koshyare located to argument
25849874f6eSJoseph Koshy.Ar fsroot .
25949874f6eSJoseph KoshyThe default is
26049874f6eSJoseph Koshy.Pa / .
261ebccf1e3SJoseph Koshy.It Fl s Ar event-spec
262ebccf1e3SJoseph KoshyAllocate a system mode counting PMC measuring hardware events
263ebccf1e3SJoseph Koshyspecified in
264ebccf1e3SJoseph Koshy.Ar event-spec .
265fbd8b34aSJoseph Koshy.It Fl t Ar process-spec
266fbd8b34aSJoseph KoshyAttach process mode PMCs to the processes named by argument
267fbd8b34aSJoseph Koshy.Ar process-spec .
268fbd8b34aSJoseph KoshyArgument
269fbd8b34aSJoseph Koshy.Ar process-spec
270fbd8b34aSJoseph Koshymay be a non-negative integer denoting a specific process id, or a
271fbd8b34aSJoseph Koshyregular expression for selecting processes based on their command names.
27249874f6eSJoseph Koshy.It Fl v
27349874f6eSJoseph KoshyIncrease verbosity.
274ebccf1e3SJoseph Koshy.It Fl w Ar secs
275ebccf1e3SJoseph KoshyPrint the values of all counting mode PMCs every
276ebccf1e3SJoseph Koshy.Ar secs
277ebccf1e3SJoseph Koshyseconds.
278ebccf1e3SJoseph KoshyThe argument
279ebccf1e3SJoseph Koshy.Ar secs
280ebccf1e3SJoseph Koshymay be a fractional value.
281ebccf1e3SJoseph KoshyThe default interval is 5 seconds.
282b6010f9eSJoseph Koshy.It Fl z Ar graphdepth
283b6010f9eSJoseph KoshyWhen printing system-wide callgraphs, limit callgraphs to the depth
284b6010f9eSJoseph Koshyspecified by argument
285b6010f9eSJoseph Koshy.Ar graphdepth .
286ebccf1e3SJoseph Koshy.El
287ebccf1e3SJoseph Koshy.Pp
288ebccf1e3SJoseph KoshyIf
289ebccf1e3SJoseph Koshy.Ar command
290ebccf1e3SJoseph Koshyis specified, it is executed using
291ebccf1e3SJoseph Koshy.Xr execvp 3 .
292ebccf1e3SJoseph Koshy.Sh EXAMPLES
293ebccf1e3SJoseph KoshyTo perform system-wide statistical sampling on an AMD Athlon CPU with
294ebccf1e3SJoseph Koshysamples taken every 32768 instruction retirals and data being sampled
295ebccf1e3SJoseph Koshyto file
29621ce09caSJoseph Koshy.Pa sample.stat ,
297ebccf1e3SJoseph Koshyuse:
29800028966SRobert Watson.Dl "pmcstat -O sample.stat -n 32768 -S k7-retired-instructions"
299ebccf1e3SJoseph Koshy.Pp
300ebccf1e3SJoseph KoshyTo execute
30121ce09caSJoseph Koshy.Nm mozilla
302ebccf1e3SJoseph Koshyand measure the number of data cache misses suffered
303ebccf1e3SJoseph Koshyby it and its children every 12 seconds on an AMD Athlon, use:
30421ce09caSJoseph Koshy.Dl "pmcstat -d -w 12 -p k7-dc-misses mozilla"
3051fdbf256SJoseph Koshy.Pp
306fbd8b34aSJoseph KoshyTo measure processor instructions retired for all processes named
307fbd8b34aSJoseph Koshy.Dq emacs
308fbd8b34aSJoseph Koshyuse:
309fbd8b34aSJoseph Koshy.Dl "pmcstat -t '^emacs$' -p instructions"
310fbd8b34aSJoseph Koshy.Pp
311ee4910b1SJoseph KoshyTo count instruction tlb-misses on CPUs 0 and 2 on a Intel
312ee4910b1SJoseph KoshyPentium Pro/Pentium III SMP system use:
313ee4910b1SJoseph Koshy.Dl "pmcstat -c 0,2 -s p6-itlb-miss"
314ee4910b1SJoseph Koshy.Pp
315b6010f9eSJoseph KoshyTo collect profiling information for a specific process with pid 1234
316b6010f9eSJoseph Koshybased on instruction cache misses seen by it use:
317b6010f9eSJoseph Koshy.Dl "pmcstat -P ic-misses -t 1234 -O /tmp/sample.out"
318b6010f9eSJoseph Koshy.Pp
319ee4910b1SJoseph KoshyTo perform system-wide sampling on all configured processors
320ee4910b1SJoseph Koshybased on processor instructions retired use:
3211fdbf256SJoseph Koshy.Dl "pmcstat -S instructions -O /tmp/sample.out"
322b6010f9eSJoseph KoshyIf callgraph capture is not desired use:
323b6010f9eSJoseph Koshy.Dl "pmcstat -N -S instructions -O /tmp/sample.out"
3241fdbf256SJoseph Koshy.Pp
325302cbb90SJoseph KoshyTo send the generated event log to a remote machine use:
326302cbb90SJoseph Koshy.Dl "pmcstat -S instructions -O remotehost:port"
327302cbb90SJoseph KoshyOn the remote machine, the sample log can be collected using
328302cbb90SJoseph Koshy.Xr nc 1 :
329302cbb90SJoseph Koshy.Dl "nc -l remotehost port > /tmp/sample.out"
330302cbb90SJoseph Koshy.Pp
3311fdbf256SJoseph KoshyTo generate
3321fdbf256SJoseph Koshy.Xr gprof 1
333b6010f9eSJoseph Koshycompatible profiles from a sample file use:
3341fdbf256SJoseph Koshy.Dl "pmcstat -R /tmp/sample.out -g"
335b6010f9eSJoseph Koshy.Pp
336b6010f9eSJoseph KoshyTo print a system-wide profile with callgraphs to file
337b6010f9eSJoseph Koshy.Pa "foo.graph"
338b6010f9eSJoseph Koshyuse:
339b6010f9eSJoseph Koshy.Dl "pmcstat -R /tmp/sample.out -G foo.graph"
340ebccf1e3SJoseph Koshy.Sh DIAGNOSTICS
341e572c7a7SJoseph KoshyIf option
342e572c7a7SJoseph Koshy.Fl v
343e572c7a7SJoseph Koshyis specified,
344e572c7a7SJoseph Koshy.Nm
345e572c7a7SJoseph Koshymay issue the following diagnostic messages:
346e572c7a7SJoseph Koshy.Bl -diag -width indent
347e572c7a7SJoseph Koshy.It "#callchain/dubious-frames"
348e572c7a7SJoseph KoshyThe number of callchain records that had an
349e572c7a7SJoseph Koshy.Dq impossible
350e572c7a7SJoseph Koshyvalue for a return address.
351e572c7a7SJoseph Koshy.It "#exec handling errors"
352e572c7a7SJoseph KoshyThe number of
353e572c7a7SJoseph Koshy.Xr exec 2
354e572c7a7SJoseph Koshyevents in the log file that named executables that could not be
355e572c7a7SJoseph Koshyanalyzed.
356e572c7a7SJoseph Koshy.It "#exec/elf"
357e572c7a7SJoseph KoshyThe number of
358e572c7a7SJoseph Koshy.Xr exec 2
359e572c7a7SJoseph Koshyevents that named ELF executables.
360e572c7a7SJoseph Koshy.It "#exec/unknown"
361e572c7a7SJoseph KoshyThe number of
362e572c7a7SJoseph Koshy.Xr exec 2
363e572c7a7SJoseph Koshyevents that named executables with unrecognized formats.
364e572c7a7SJoseph Koshy.It "#samples/total"
365e572c7a7SJoseph KoshyThe total number of samples in the log file.
366e572c7a7SJoseph Koshy.It "#samples/unclaimed"
367e572c7a7SJoseph KoshyThe number of samples that could not be correlated to a known
368e572c7a7SJoseph Koshyexecutable object (i.e., to an executable, shared library, the
369e572c7a7SJoseph Koshykernel or the runtime loader).
370e572c7a7SJoseph Koshy.It "#samples/unknown-object"
371e572c7a7SJoseph KoshyThe number of samples that were associated with an executable
372e572c7a7SJoseph Koshywith an unrecognized object format.
373e572c7a7SJoseph Koshy.El
374e572c7a7SJoseph Koshy.Pp
37521ce09caSJoseph Koshy.Ex -std
376b6010f9eSJoseph Koshy.Sh COMPATIBILITY
377b6010f9eSJoseph KoshyDue to the limitations of the
378b6010f9eSJoseph Koshy.Pa gmon.out
379b6010f9eSJoseph Koshyfile format,
380b6010f9eSJoseph Koshy.Xr gprof 1
381b6010f9eSJoseph Koshycompatible profiles generated by the
382b6010f9eSJoseph Koshy.Fl g
383b6010f9eSJoseph Koshyoption do not contain information about calls that cross executable
384b6010f9eSJoseph Koshyboundaries.
385b6010f9eSJoseph KoshyThe generated
386b6010f9eSJoseph Koshy.Pa gmon.out
387b6010f9eSJoseph Koshyfiles are also only meaningful for native executables.
388ebccf1e3SJoseph Koshy.Sh SEE ALSO
389f263522aSJoseph Koshy.Xr gprof 1 ,
390302cbb90SJoseph Koshy.Xr nc 1 ,
391ebccf1e3SJoseph Koshy.Xr execvp 3 ,
392ebccf1e3SJoseph Koshy.Xr pmc 3 ,
39321ce09caSJoseph Koshy.Xr pmclog 3 ,
394ebccf1e3SJoseph Koshy.Xr hwpmc 4 ,
395ebccf1e3SJoseph Koshy.Xr pmccontrol 8 ,
396ebccf1e3SJoseph Koshy.Xr sysctl 8
39721ce09caSJoseph Koshy.Sh HISTORY
39821ce09caSJoseph KoshyThe
39921ce09caSJoseph Koshy.Nm
40021ce09caSJoseph Koshyutility first appeared in
40121ce09caSJoseph Koshy.Fx 6.0 .
4021fdbf256SJoseph KoshyIt is
4031fdbf256SJoseph Koshy.Ud
40421ce09caSJoseph Koshy.Sh AUTHORS
40521ce09caSJoseph Koshy.An Joseph Koshy Aq jkoshy@FreeBSD.org
4069f8adcefSJoseph Koshy.Sh BUGS
407bc84aa4bSRuslan ErmilovThe
4089f8adcefSJoseph Koshy.Nm
409bc84aa4bSRuslan Ermilovutility cannot yet analyse
410302cbb90SJoseph Koshy.Xr hwpmc 4
411302cbb90SJoseph Koshylogs generated by non-native architectures.
412