<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src-test2/sys/libkern/mcount.c, branch release/2.2.2_cvs</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F2.2.2_cvs</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src-test2/atom?h=release%2F2.2.2_cvs'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/'/>
<updated>1997-05-19T10:35:55Z</updated>
<entry>
<title>This commit was manufactured by cvs2svn to create tag</title>
<updated>1997-05-19T10:35:55Z</updated>
<author>
<name>cvs2svn</name>
<email>cvs2svn@FreeBSD.org</email>
</author>
<published>1997-05-19T10:35:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=a0d351b26be784ec2f31673b9c873781f01bad63'/>
<id>urn:sha1:a0d351b26be784ec2f31673b9c873781f01bad63</id>
<content type='text'>
'RELENG_2_2_2_RELEASE'.

This commit was manufactured to restore the state of the 2.2.2-RELEASE image.
Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
</content>
</entry>
<entry>
<title>Unremoved used #include of &lt;sys/systm.h&gt; for the !GUPROF case.</title>
<updated>1996-10-25T06:58:53Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1996-10-25T06:58:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=1471a7951441deee29fb5f745ed67ee5209eb1f2'/>
<id>urn:sha1:1471a7951441deee29fb5f745ed67ee5209eb1f2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improved non-statistical (GUPROF) profiling:</title>
<updated>1996-10-17T19:32:31Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1996-10-17T19:32:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=d6b9e17eb5a1ed2922bd5264a1afd046c0038d6b'/>
<id>urn:sha1:d6b9e17eb5a1ed2922bd5264a1afd046c0038d6b</id>
<content type='text'>
- 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
</content>
</entry>
<entry>
<title>Cleaned up interrupt masking by declaring the state variable in a</title>
<updated>1996-08-28T20:15:32Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1996-08-28T20:15:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=1f403fcfbfe1ea07bd14df956a65ed14811539d7'/>
<id>urn:sha1:1f403fcfbfe1ea07bd14df956a65ed14811539d7</id>
<content type='text'>
machine-dependent macro and passing it to all machine-dependent
macros.

Eliminated the state variable for the GUPROF case.
</content>
</entry>
<entry>
<title>removed:</title>
<updated>1996-05-02T14:21:14Z</updated>
<author>
<name>Poul-Henning Kamp</name>
<email>phk@FreeBSD.org</email>
</author>
<published>1996-05-02T14:21:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=e911eafcbae5366e66f9560ca18bf60c5f8157a4'/>
<id>urn:sha1:e911eafcbae5366e66f9560ca18bf60c5f8157a4</id>
<content type='text'>
        CLBYTES PD_SHIFT PGSHIFT NBPG PGOFSET CLSIZELOG2 CLSIZE pdei()
        ptei() kvtopte() ptetov() ispt() ptetoav() &amp;c &amp;c
new:
        NPDEPG

Major macro cleanup.
</content>
</entry>
<entry>
<title>Copied mcount.c from the library again.  #include'ing it via a relative</title>
<updated>1995-12-30T07:24:13Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1995-12-30T07:24:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=1ae38af2be512b4afb7cc39b8abda12495e51d47'/>
<id>urn:sha1:1ae38af2be512b4afb7cc39b8abda12495e51d47</id>
<content type='text'>
path to a possibly-nonexistent place didn't work well enough.  Sigh.
</content>
</entry>
<entry>
<title>Implemented non-statistical kernel profiling.  This is based on</title>
<updated>1995-12-29T15:30:05Z</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1995-12-29T15:30:05Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=912e60377833803e8c89e2cbfd4c8eb8a6d90280'/>
<id>urn:sha1:912e60377833803e8c89e2cbfd4c8eb8a6d90280</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Remove trailing whitespace.</title>
<updated>1995-05-30T08:16:23Z</updated>
<author>
<name>Rodney W. Grimes</name>
<email>rgrimes@FreeBSD.org</email>
</author>
<published>1995-05-30T08:16:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=9b2e535452929d6f2f798a2c01b23b1f547a0b0f'/>
<id>urn:sha1:9b2e535452929d6f2f798a2c01b23b1f547a0b0f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Added -DKERNEL and  added support for kernel profiling.</title>
<updated>1994-09-15T15:41:48Z</updated>
<author>
<name>Paul Richards</name>
<email>paul@FreeBSD.org</email>
</author>
<published>1994-09-15T15:41:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=03b6d659e548ca001229bdbaedcc51f90d292d22'/>
<id>urn:sha1:03b6d659e548ca001229bdbaedcc51f90d292d22</id>
<content type='text'>
Reviewed by:	Bruce
</content>
</entry>
<entry>
<title>Added $Id$</title>
<updated>1994-08-02T07:55:43Z</updated>
<author>
<name>David Greenman</name>
<email>dg@FreeBSD.org</email>
</author>
<published>1994-08-02T07:55:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src-test2/commit/?id=3c4dd3568f411b4f00f795929afb77ca972c2325'/>
<id>urn:sha1:3c4dd3568f411b4f00f795929afb77ca972c2325</id>
<content type='text'>
</content>
</entry>
</feed>
