Home | History | Annotate | Download | only in kgmon
History log of /src/usr.sbin/kgmon/kgmon.c
RevisionDateAuthorComments
 1.28  28-Jun-2025  andvar Spelling and grammar fixes in comments.
 1.27  14-Aug-2021  ryo Improved the performance of kernel profiling on MULTIPROCESSOR, and possible to get profiling data for each CPU.

In the current implementation, locks are acquired at the entrance of the mcount
internal function, so the higher the number of cores, the more lock conflict
occurs, making profiling performance in a MULTIPROCESSOR environment unusable
and slow. Profiling buffers has been changed to be reserved for each CPU,
improving profiling performance in MP by several to several dozen times.

- Eliminated cpu_simple_lock in mcount internal function, using per-CPU buffers.
- Add ci_gmon member to struct cpu_info of each MP arch.
- Add kern.profiling.percpu node in sysctl tree.
- Add new -c <cpuid> option to kgmon(8) to specify the cpuid, like openbsd.
For compatibility, if the -c option is not specified, the entire system can be
operated as before, and the -p option will get the total profiling data for
all CPUs.
 1.26  11-Jul-2019  msaitoh Fix typo (s/supress/suppress/).
 1.25  17-Oct-2010  uebayasi branches: 1.25.46;
Typo in an error message.
 1.24  18-Jan-2009  lukem fix -Wsign-compare issues
 1.23  21-Jul-2008  lukem Remove the \n and tabs from the __COPYRIGHT() strings.
Tweak to use a consistent format.
 1.22  04-May-2007  dogcow branches: 1.22.12;
WARNS=4 makes gcc whine about missing initializers; add them.
 1.21  04-May-2007  christos WARNS=4, pass lint
 1.20  13-Aug-2006  dyoung While I am here, KNF err(3) and errx(3) usage. Compare a pointer
with NULL instead of 0.
 1.19  13-Aug-2006  dyoung Check for fwrite(3) error returns, and exit with an error message,
instead of silently failing.
 1.18  25-May-2006  christos Coverity CID 1860: Plug memory leak.
 1.17  25-May-2006  christos Sprinkle static and use err/errx/warn instead of fprintf/perror
 1.16  06-Feb-2005  perry de-__P, ANSIfy function declarations, remove an obsolete register declaration.
 1.15  27-Jan-2005  drochner There is no point in passing "/netbsd" as namelist to kvm_open.
libkvm knows better.
 1.14  17-Nov-2004  hira usage: Add -d. Use getprogname().
Reviewed by uebayasi@. This closes PR bin/26685.
 1.13  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22366, verified by myself.
 1.12  03-Aug-2000  eeh Add a flag to turn on debugging so you don't need to recompile or patch
the binary to turn it on.
 1.11  01-Nov-1997  lukem getopt returns -1 not EOF
 1.10  23-Oct-1997  enami Add missing newline at the end of exit message.
 1.9  23-Oct-1997  enami Make this compile on NetBSD/alpha; to print size_t variable,

- use %lu instead of %d.
- cast the variable to (u_long) so that this also compiled on NetBSD/i386.
 1.8  18-Oct-1997  mrg branches: 1.8.2;
clean up, WARNS.
 1.7  18-Oct-1997  lukem rcsid fascism
 1.6  23-Dec-1994  cgd be safe with types
 1.5  11-Jun-1994  mycroft Fix up RCS ids.
 1.4  10-Jun-1994  pk update to 4.4-lite.
 1.3  30-Mar-1994  cgd kill bad casts
 1.2  01-Aug-1993  mycroft Add RCS identifiers.
 1.1  31-Mar-1993  cgd branches: 1.1.1;
added kgmon, from net-2. should work fine, because kernel does profiling
support correctly of config'd w/"-p"
 1.1.1.1  06-Jun-1993  mrg 4.4BSD-Lite2
 1.8.2.1  24-Oct-1997  mellon Pull revs 1.9 and 1.10 up from trunk
 1.22.12.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.25.46.1  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411

RSS XML Feed