aboutsummaryrefslogtreecommitdiff
path: root/sys/sys/gmon.h
Commit message (Collapse)AuthorAgeFilesLines
* sys: further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-201-0/+2
| | | | | | | | | | | | | | | | | Mainly focus on files that use BSD 3-Clause license. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point. Notes: svn path=/head/; revision=326023
* Renumber copyright clause 4Warner Losh2017-02-281-1/+1
| | | | | | | | | | | | Renumber cluase 4 to 3, per what everybody else did when BSD granted them permission to remove clause 3. My insistance on keeping the same numbering for legal reasons is too pedantic, so give up on that point. Submitted by: Jan Schaumann <jschauma@stevens.edu> Pull Request: https://github.com/freebsd/freebsd/pull/96 Notes: svn path=/head/; revision=314436
* Move the PC_TO_I() and KCOUNT() macros so they aren't GUPROF specificJohn Baldwin2006-03-291-3/+4
| | | | | | | | | | | since they operate on fields of struct gmonparam which is not GUPROF specific. Approved by: bde Reported by: alc Notes: svn path=/head/; revision=157268
* Add prototypes for the userland gmon support functions, which normallyBruce M Simpson2004-06-141-0/+9
| | | | | | | | | | | live in src/lib/libc/gmon/gmon.c. glibc puts these prototypes in the same header, so put them here for the sake of consistency. PR: bin/4459 Reviewed by: bde Notes: svn path=/head/; revision=130484
* Moved most of the "MI" definitions and declarations from <machine/profile.h>Bruce Evans2004-05-191-0/+32
| | | | | | | | | to <sys/gmon.h>. Cleaned them up a little by not attempting to ifdef for incomplete and out of date support for GUPROF in userland, as in the sparc64 version. Notes: svn path=/head/; revision=129444
* Remove advertising clause from University of California Regent's license,Warner Losh2004-04-071-4/+0
| | | | | | | | | per letter dated July 22, 1999. Approved by: core Notes: svn path=/head/; revision=127976
* Reserved one of the spare fields in struct gmon to record the historyBruce Evans2002-02-211-2/+3
| | | | | | | | | | | | | | | | | | | | | | counter type, as threatened in rev.1.8 (the density doesn't need to be recorded since it can be derived from other fields). This doesn't affect binary compatibility, but new utilities won't be able to depend on the contents of this field because libc/gmon/gmon.c was broken -- it wrote garbage to the spare fields. Added a history counter type field to struct gmonparam. This breaks binary compatibility a little, since kgmon wanted to read the whole struct. Fixed kgmon to only depend on reading the critical earlier parts of the struct. This should also fix 6+ year old breakage of binary compatibility when the profrate field was added. Only initialize the new field in struct gmon for now, so that the compatibility code for this (in kgmon) gets tested. The compatibility code has to guesstimate the value. The new field in struct gmonparam is for the kernel to initialize so that kgmon doesn't have to guess. Notes: svn path=/head/; revision=91009
* $Id$ -> $FreeBSD$Peter Wemm1999-08-281-1/+1
| | | | Notes: svn path=/head/; revision=50477
* Changed to the C9x draft spelling of the (unsigned) integral typeBruce Evans1998-07-141-3/+3
| | | | | | | | | | | suitable for holding object pointers (ptrint_t -> uintptr_t). Added corresponding signed type (intptr_t). Changed/added corresponding non-C9x types for function pointers to match. Don't use nonstandard types to implement these types, and don't comment on them in <machine/types.h>. Notes: svn path=/head/; revision=37629
* 32-bit counters aren't large enough for 100+MHz clocks. Use 64-bitBruce Evans1997-07-131-2/+2
| | | | | | | | counters. `4' in GPROF4 and gprof4 now means 8. gprof4 needs to be recompiled to match the kernel. Notes: svn path=/head/; revision=27379
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notPeter Wemm1997-02-221-1/+1
| | | | | | | ready for it yet. Notes: svn path=/head/; revision=22975
* Moved definition of FUNCTION_ALIGNMENT to a machine-dependent place.Bruce Evans1997-02-131-5/+0
| | | | | | | | | | | | | | Changed it from 4 to 16 for i386's. It can be anything for i386's, but compiler options limit it to a power of 2, and assembler and linker deficiencies limit it to a small power of 2 (<= 16). We use 16 in the kernel to get smaller tables (see Makefile.i386 and <machine/asmacros.h>). We still use the default of 4 in user mode. Use HISTCOUNTER instead of (*kcount) in the definition of KCOUNT() for consistency with other macros. Notes: svn path=/head/; revision=22639
* Make the long-awaited change from $Id$ to $FreeBSD$Jordan K. Hubbard1997-01-141-1/+1
| | | | | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise. Notes: svn path=/head/; revision=21673
* Improved non-statistical (GUPROF) profiling:Bruce Evans1996-10-171-15/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - use a more accurate and more efficient method of compensating for overheads. The old method counted too much time against leaf functions. - normally use the Pentium timestamp counter if available. On Pentiums, the times are now accurate to within a couple of cpu clock cycles per function call in the (unlikely) event that there are no cache misses in or caused by the profiling code. - optionally use an arbitrary Pentium event counter if available. - optionally regress to using the i8254 counter. - scaled the i8254 counter by a factor of 128. Now the i8254 counters overflow slightly faster than the TSC counters for a 150MHz Pentium :-) (after about 16 seconds). This is to avoid fractional overheads. files.i386: permon.c temporarily has to be classified as a profiling-routine because a couple of functions in it may be called from profiling code. options.i386: - I586_CTR_GUPROF is currently unused (oops). - I586_PMC_GUPROF should be something like 0x70000 to enable (but not use unless prof_machdep.c is changed) support for Pentium event counters. 7 is a control mode and the counter number 0 is somewhere in the 0000 bits (see perfmon.h for the encoding). profile.h: - added declarations. - cleaned up separation of user mode declarations. prof_machdep.c: Mostly clock-select changes. The default clock can be changed by editing kmem. There should be a sysctl for this. subr_prof.c: - added copyright. - calibrate overheads for the new method. - documented new method. - fixed races and and machine dependencies in start/stop code. mcount.c: Use the new overhead compensation method. gmon.h: - changed GPROF4 counter type from unsigned to int. Oops, this should be machine-dependent and/or int32_t. - reorganized overhead counters. Submitted by: Pentium event counter changes mostly by wollman Notes: svn path=/head/; revision=19000
* Implemented non-statistical kernel profiling. This is based onBruce Evans1995-12-291-8/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | looking at a high resolution clock for each of the following events: function call, function return, interrupt entry, interrupt exit, and interesting branches. The differences between the times of these events are added at appropriate places in a ordinary histogram (as if very fast statistical profiling sampled the pc at those places) so that ordinary gprof can be used to analyze the times. gmon.h: Histogram counters need to be 4 bytes for microsecond resolutions. They will need to be larger for the 586 clock. The comments were vax-centric and wrong even on vaxes. Does anyone disagree? gprof4.c: The standard gprof should support counters of all integral sizes and the size of the counter should be in the gmon header. This hack will do until then. (Use gprof4 -u to examine the results of non-statistical profiling.) config/*: Non-statistical profiling is configured with `config -pp'. `config -p' still gives ordinary profiling. kgmon/*: Non-statistical profiling is enabled with `kgmon -B'. `kgmon -b' still enables ordinary profiling (and distables non-statistical profiling) if non-statistical profiling is configured. Notes: svn path=/head/; revision=13107
* kmstartup had the wrong type and unnecessarily external linkage for aBruce Evans1995-08-291-5/+2
| | | | | | | | | | sysinit function. subr_prof.c: Remove useless comment. Notes: svn path=/head/; revision=10407
* Remove trailing whitespace.Rodney W. Grimes1995-05-301-5/+5
| | | | Notes: svn path=/head/; revision=8876
* Changed swap partition handling/allocation so that it doesn'tDavid Greenman1995-05-141-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | require specific partitions be mentioned in the kernel config file ("swap on foo" is now obsolete). From Poul-Henning: The visible effect is this: As default, unless options "NSWAPDEV=23" is in your config, you will have four swap-devices. You can swapon(2) any block device you feel like, it doesn't have to be in the kernel config. There is a performance/resource win available by getting the NSWAPDEV right (but only if you have just one swap-device ??), but using that as default would be too restrictive. The invisible effect is that: Swap-handling disappears from the $arch part of the kernel. It gets a lot simpler (-145 lines) and cleaner. Reviewed by: John Dyson, David Greenman Submitted by: Poul-Henning Kamp, with minor changes by me. Notes: svn path=/head/; revision=8504
* Add and move declarations to fix all of the warnings from `gcc -Wimplicit'Bruce Evans1995-03-161-1/+5
| | | | | | | | | (except in netccitt, netiso and netns) and most of the warnings from `gcc -Wnested-externs'. Fix all the bugs found. There were no serious ones. Notes: svn path=/head/; revision=7090
* Define MAXARCS correctly. It has nothing to do with HISTCOUNTER, andBruce Evans1995-01-291-2/+7
| | | | | | | overflowed when I enlarged HISTCOUNTER to u_int. Notes: svn path=/head/; revision=6010
* Added $Id$David Greenman1994-08-021-0/+1
| | | | Notes: svn path=/head/; revision=1817
* BSD 4.4 Lite Kernel SourcesRodney W. Grimes1994-05-241-0/+159
Notes: svn path=/head/; revision=1541