freebsd-dev/sys/cddl/dev
Justin Hibbits e40a5cd3ec Fix the stack tracing for dtrace/powerpc.
Summary:
Fix the stack tracing for dtrace/powerpc by using the trapexit/asttrapexit
return address sentinels instead of checking within the kernel address space.

As part of this, I had to add new inline functions.  FBT traces the kernel, so
we have to have special case handling for this, since a trap will create a full
new trap frame, and there's no way to pass around the 'real' stack.  I handle
this by special-casing 'aframes == 0' with the trap frame.  If aframes counts
out to the trap frame, then assume we're looking for the full kernel trap frame,
so switch to the real stack pointer.

Test Plan: Tested on powerpc64

Reviewers: rpaulo, markj, nwhitehorn

Reviewed By: markj, nwhitehorn

Differential Revision: https://reviews.freebsd.org/D788

MFC after:	3 week
Relnotes:	Yes
2014-09-17 02:43:47 +00:00
..
cyclic Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
dtmalloc The dtmalloc provider uses the short description of a malloc type as the 2013-06-28 03:14:40 +00:00
dtrace Fix the stack tracing for dtrace/powerpc. 2014-09-17 02:43:47 +00:00
fbt Fix the stack tracing for dtrace/powerpc. 2014-09-17 02:43:47 +00:00
lockstat - For kernel compiled only with KDTRACE_HOOKS and not any lock debugging 2013-11-25 07:38:45 +00:00
profile Implement DTrace for PowerPC. This includes both 32-bit and 64-bit. 2012-11-07 23:45:09 +00:00
sdt Allow creation of SDT probes from a module in which no providers are 2014-06-21 19:29:40 +00:00
systrace Ensure that all eight syscall arguments are available to dtrace_probe(), 2014-04-14 00:23:18 +00:00
prototype.c