Commit Graph

35 Commits

Author SHA1 Message Date
thorpej
1e627ed78e Make gmon / mcount work properly for threaded applications by keeping
thread-specific gmonparam structures and then merging them before dumping
the profile buffers.

Written by Nathan J. Williams, contributed by Wasabi Systems, Inc.
2004-05-10 22:16:42 +00:00
agc
eb7c1594f1 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
2003-08-07 16:42:00 +00:00
dsl
61a8612dd3 Use snprintf instead of hand crafted string copy and numeric conversion.
Avoids problems if/when the pid is greater than 999999.
(approved by christos)
2003-04-06 18:05:52 +00:00
thorpej
045cceecae Fix signed/unsigned comparison warnings. 2002-11-11 17:13:59 +00:00
wiz
e1cc25117e New sentence, new line. Correct punctuation. Use more markup. 2002-10-01 17:01:40 +00:00
christos
a82db51f4d disable profiling set{u,g}id binaries. 2002-04-26 16:39:52 +00:00
briggs
9c006e1248 We reference a monstartup(3), so let's actually make a link for it. 2002-01-02 04:52:55 +00:00
wiz
3e3b82275d Remove some boring whitespace, sort sections. 2001-09-16 02:29:00 +00:00
cgd
6b25d77513 convert from __progname to getprogname() 2001-02-19 22:22:16 +00:00
christos
d9ce410183 fix nested extern
fix sbrk casts
2000-12-20 20:55:23 +00:00
erh
a5c46ce842 Document the PROFDIR environment variable. 2000-10-24 19:31:59 +00:00
thorpej
9c5afcb2f0 Move the Alpha _mcount() into a .S file so that it can be
pre-processed, like other Alpha assembly files.
2000-09-05 16:28:30 +00:00
garbled
38c96853cf Last of the .Os cleanups. .Os is defined in the tmac.doc-common file,
so we shouldn't override it with versions in the manpages.  Wheee!
1999-03-22 19:44:33 +00:00
kleink
6348b7d5b5 * On architectures using ELF, and conditionally on those in transition, rename
_ASM_LABEL(cerror) and _ASM_LABEL(curbrk) to _C_LABEL(__cerror) and
_C_LABEL(__curbrk) (or their respective architecture-specific equivalents) to
avoid possible name clashes with identifiers used in user applications.
* Do the same for minbrk on all architectures to avoid a GCC-specific (and
on ELF architectures effectively useless) symbol reference renaming in MI code.
1999-01-14 22:48:18 +00:00
christos
2c89343c25 delint 1998-11-13 15:46:52 +00:00
perry
a843f0f8a5 bzero->memset, bcopy->memcpy, bcmp->memcmp 1998-08-10 02:43:08 +00:00
kleink
1045d16494 Prefer STDERR_FILENO over 2. 1998-07-04 20:22:05 +00:00
cgd
ef8dc9789a don't actually compile any code if building in a _STANDALONE environment
(e.g. libkern for boot blocks), since profiling support doesn't make
sense there.
1998-03-26 23:52:38 +00:00
perry
312aca536f add LIBRARY section to man page 1998-02-05 18:45:17 +00:00
perry
4146d58604 remove obsolete register declarations 1998-02-03 18:23:37 +00:00
christos
47cb5f1603 Fix RCSID's
Add unused attribute to _mcount, since it might be called from assembly.
1997-07-13 19:53:56 +00:00
christos
1c7406f68c Fix RCSID's
Use warn instead of perror()
Use "namespace.h"
Add missing prototypes
1997-07-13 19:53:06 +00:00
mrg
f542cc77da be safe with buffers. KNF. 1997-04-22 11:17:58 +00:00
mrg
9cd5492c02 - convert unsafe strcpy(), strcat() and sprintf() to the `n' versions.
- some KNF.
1997-01-23 14:01:45 +00:00
cgd
362c499969 prototype mcount (or, whatever function is declared by _MCOUNT_DECL;
typically mcount()) before it is defined or used.
1997-01-03 07:40:41 +00:00
cgd
a13d8bf828 use __inline and __asm, rather than inline and asm. By default (without -g)
lint won't accept the latter two, but will accept the former two as valid.
As far as gcc's concerned, they're the same.
1996-12-19 07:56:32 +00:00
abrown
347a3b2582 Copy over from libkern:
> Prevent recursive invocation of mcount() while in kernel by setting profiling
> state to BUSY while in mcount(). This allows profiling to work when mcount()
> calls a profiled routine (for example, udiv on the SPARC).
1996-06-29 14:32:58 +00:00
cgd
0396d19a02 use p->hashfraction when doing non-time-critical calculations, rather than
using HASHFRACTION directly.  in time-critical calculations, if HASHFRACTION
is a power of two, check that p->hashfraction == HASHFRACTION and if so do
the calculation with the compiled-in value so that the compiler can optimize
out (potentially) expensive divisions.  if p->hashfraction != HASHFRACTION,
actually do the division.  This has the result that on machines with slow
division, the division can be optimized out of the common case, but that
if HASHFRACTION changes from the compiled-in value (for whatever reason),
profiling will still work.  Changes suggested by Chris Torek.
1996-06-12 04:15:34 +00:00
cgd
88fce69ea9 s/KERNEL/_KERNEL/ to match libkern version. 1996-06-12 04:03:33 +00:00
jtc
5c13daa56e Add support for PROFDIR environment variable 1995-11-21 22:23:47 +00:00
cgd
3ddd2ef5ab kill a gratuitous cast of lowpc to an int 1995-11-04 00:11:40 +00:00
cgd
693e99f736 clean up Ids 1995-02-27 12:54:33 +00:00
cgd
ae9172d6cd specify man pages the new way. 1994-12-22 09:57:51 +00:00
cgd
41006bd47b rcsids. also, avoid floating point when picking scale value. doesn't
cost much, only done once.
1994-05-14 06:31:10 +00:00
cgd
da60d30fb3 user-land profiling code. 1994-05-14 06:02:57 +00:00