Home | History | Annotate | Download | only in include
History log of /src/sys/arch/amd64/include/profile.h
RevisionDateAuthorComments
 1.21  02-Nov-2021  ryo In order to prevent _mcount() from being recursively called when built with COPTS=-O0,
sprinkle `__always_inline' to make _mcount() be generated as a single function.
 1.20  17-Apr-2021  rillig sys/arch/amd64: remove trailing whitespace
 1.19  11-Feb-2019  cherry We reorganise definitions for XEN source support as follows:

XEN - common sources required for baseline XEN support.
XENPV - sources required for support of XEN in PV mode.
XENPVHVM - sources required for support for XEN in HVM mode.
XENPVH - sources required for support for XEN in PVH mode.
 1.18  11-Apr-2016  bouyer branches: 1.18.18;
x86_lfence() calls mcount(), so inline lfence instructions in mcount
helper functions
 1.17  10-Jan-2016  ryo __mcount_lock is moved to MI from MD.
because it is needed for all MULTIPROCESSOR arch, but it is exists only in i386 and amd64.

ok christos@, on tech-kern@
 1.16  12-Sep-2013  joerg branches: 1.16.6;
Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
 1.15  26-Oct-2008  mrg branches: 1.15.28; 1.15.38; 1.15.44;
put the contents of these header files around #ifdef __x86_64__, and
#include the <i386/foo.h> in the #else clause, making these files
largely bit-size independant.
 1.14  25-May-2008  chs branches: 1.14.4;
fix profiling compilation.
 1.13  21-Apr-2008  cegger branches: 1.13.2; 1.13.4;
Access Xen's vcpu info structure per-CPU.
Tested on i386 and amd64 (both dom0 and domU) by me.
Xen2 tested (both dom0 and domU) by bouyer.
OK bouyer
 1.12  20-Dec-2007  ad branches: 1.12.6; 1.12.8;
- Make __cpu_simple_lock and similar real functions and patch at runtime.
- Remove old x86 atomic ops.
- Drop text alignment back to 16 on i386 (really, this time).
- Minor cleanup.
 1.11  24-Nov-2007  bouyer branches: 1.11.2; 1.11.6;
Make Xen profiling kernels work.
XXX assembly still needs to be fixed for non-Xen kernels.
 1.10  17-Oct-2007  garbled branches: 1.10.2;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.9  27-Sep-2007  ad Sync with i386.
 1.8  26-Sep-2007  xtraeme Fix profiling kernels:

read_psl -> x86_read_psl
write_psl -> x86_write_psl
disable_intr -> x86_disable_intr
 1.7  09-Feb-2007  ad branches: 1.7.6; 1.7.12; 1.7.14; 1.7.22; 1.7.24; 1.7.26;
Merge newlock2 to head.
 1.6  03-Feb-2006  skrll branches: 1.6.16;
Make sure we generate the right call with -fPIC.
 1.5  11-Dec-2005  christos branches: 1.5.2; 1.5.4;
merge ktrace-lwp.
 1.4  22-Sep-2005  chs pull in changes from i386 profile.h:
- allow profiling of MP kernels, add a spinlock around the body of mcount().
fixes PR 31360.
- save and restore eflags instead of just doing cli/sti.
 1.3  28-Nov-2003  fvdl branches: 1.3.14; 1.3.16;
Define the mcount function in assembler, and have it save all registers
used for argument passing, plus %rax (used to pass the number of float
arguments to varargs functions), to avoid having it clobber caller-saved
registers. mcount is emitted "under the radar", so the compiler doesn't
know it should do this.

Change the kernel mcount entry/exit macros to use plain cli/sti, like on i386.
 1.2  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.1  26-Apr-2003  fvdl branches: 1.1.2;
Rename the x86_64 port to amd64, as this is the actual name used for
the processor family now. x86_64 is kept as the MACHINE_ARCH value,
since it's already widely used (by e.g. the toolchain, etc), and
by other operating systems.
 1.1.2.4  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.1.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.1.2.1  03-Aug-2004  skrll Sync with HEAD
 1.3.16.5  21-Jan-2008  yamt sync with head
 1.3.16.4  07-Dec-2007  yamt sync with head
 1.3.16.3  27-Oct-2007  yamt sync with head.
 1.3.16.2  26-Feb-2007  yamt sync with head.
 1.3.16.1  21-Jun-2006  yamt sync with head.
 1.3.14.1  30-Sep-2005  tron Pull up following revision(s) (requested by chs in ticket #831):
sys/arch/amd64/include/profile.h: revision 1.4
pull in changes from i386 profile.h:
- allow profiling of MP kernels, add a spinlock around the body of mcount().
fixes PR 31360.
- save and restore eflags instead of just doing cli/sti.
 1.5.4.1  09-Sep-2006  rpaulo sync with head
 1.5.2.1  18-Feb-2006  yamt sync with head.
 1.6.16.1  06-Feb-2007  ad mcount(): fix entry so LOCKDEBUG+GPROF can be used together. Previously
it would recurse until eventually the machine triple faulted.
 1.7.26.1  06-Oct-2007  yamt sync with head.
 1.7.24.2  09-Jan-2008  matt sync with HEAD
 1.7.24.1  06-Nov-2007  matt sync with HEAD
 1.7.22.2  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.7.22.1  02-Oct-2007  joerg Sync with HEAD.
 1.7.14.1  03-Oct-2007  garbled Sync with HEAD
 1.7.12.1  18-Apr-2007  thorpej Convert i386 and amd64 to the new atomic ops API.
 1.7.6.3  03-Dec-2007  ad Sync with HEAD.
 1.7.6.2  03-Dec-2007  ad Sync with HEAD.
 1.7.6.1  09-Oct-2007  ad Sync with head.
 1.10.2.2  27-Dec-2007  mjf Sync with HEAD.
 1.10.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.11.6.1  02-Jan-2008  bouyer Sync with HEAD
 1.11.2.1  26-Dec-2007  ad Sync with head.
 1.12.8.2  04-Jun-2008  yamt sync with head
 1.12.8.1  18-May-2008  yamt sync with head.
 1.12.6.2  17-Jan-2009  mjf Sync with HEAD.
 1.12.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.13.4.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.13.2.1  04-May-2009  yamt sync with head.
 1.14.4.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.15.44.1  18-May-2014  rmind sync with head
 1.15.38.2  03-Dec-2017  jdolecek update from HEAD
 1.15.38.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.15.28.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.16.6.2  22-Apr-2016  skrll Sync with HEAD
 1.16.6.1  19-Mar-2016  skrll Sync with HEAD
 1.18.18.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed