#
94fb5ab9 |
| 29-Jan-2025 |
Mark Johnston <markj@FreeBSD.org> |
Revert "dtrace/arm64: Simplify dtrace_getarg() slightly"
The change is clearly wrong as it removes a dereference of the pointer into the stack. Just revert for now.
This reverts commit 70c06706221
Revert "dtrace/arm64: Simplify dtrace_getarg() slightly"
The change is clearly wrong as it removes a dereference of the pointer into the stack. Just revert for now.
This reverts commit 70c067062217a5295ed321427b91cfd857c18b77.
Reported by: jrtc27
show more ...
|
#
70c06706 |
| 29-Jan-2025 |
Mark Johnston <markj@FreeBSD.org> |
dtrace/arm64: Simplify dtrace_getarg() slightly
The use of memcpy here is redundant, and also incorrect since memcpy() might be instrumented by fbt or kinst. dtrace_bcopy() exists, but we don't nee
dtrace/arm64: Simplify dtrace_getarg() slightly
The use of memcpy here is redundant, and also incorrect since memcpy() might be instrumented by fbt or kinst. dtrace_bcopy() exists, but we don't need it.
MFC after: 2 weeks Sponsored by: Innovate UK
show more ...
|
Revision tags: release/14.2.0, release/13.4.0 |
|
#
82283cad |
| 24-Jul-2024 |
Mark Johnston <markj@FreeBSD.org> |
dtrace: Avoid including dtrace_isa.c directly into dtrace.c
This was done in the original DTrace import, presumably because that made it a bit easier to handle includes. However, this can cause dtr
dtrace: Avoid including dtrace_isa.c directly into dtrace.c
This was done in the original DTrace import, presumably because that made it a bit easier to handle includes. However, this can cause dtrace_getpcstack() to be inlined into dtrace_probe(), resulting in a missing frame in stack traces since dtrace_getpcstack() takes care to bump "aframes" to account for its own stack frame.
To avoid this, compile dtrace_isa.c separately on all platforms. Add requisite includes.
MFC after: 2 weeks Sponsored by: Innovate UK
show more ...
|
#
bae00433 |
| 20-Jun-2024 |
Mark Johnston <markj@FreeBSD.org> |
dtrace: Add a partial implementation of dtrace_getarg() on arm64
For invop providers (i.e., fbt and kinst) we can simply reach into the invop trapframe to fetch argument registers for arguments 0-7;
dtrace: Add a partial implementation of dtrace_getarg() on arm64
For invop providers (i.e., fbt and kinst) we can simply reach into the invop trapframe to fetch argument registers for arguments 0-7; for argument 8 and beyond we have to read the value off of the stack.
Reviewed by: Domagoj Stolfa, avg MFC after: 2 weeks Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D45649
show more ...
|
Revision tags: release/14.1.0, release/13.3.0, release/14.0.0 |
|
#
95ee2897 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
d3251842 |
| 15-Jun-2023 |
Mark Johnston <markj@FreeBSD.org> |
arm64: Remove struct arm64_frame
It was used in one place and was added specifically to support dtrace stack unwinding code. Write an equivalent expression using struct unwind_state instead. No fu
arm64: Remove struct arm64_frame
It was used in one place and was added specifically to support dtrace stack unwinding code. Write an equivalent expression using struct unwind_state instead. No functional change intended.
Reviewed by: andrew MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D40538
show more ...
|
#
98ab9802 |
| 23-May-2023 |
Christos Margiolis <christos@FreeBSD.org> |
dtrace: rename rp to frame in dtrace_getreg()
Reviewed by: mhorne, markj Approved by: markj (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40231
|
#
21a16d55 |
| 23-May-2023 |
Christos Margiolis <christos@FreeBSD.org> |
dtrace: add register bindings for arm64
Reviewed by: mhorne, markj Approved by: markj (mentor) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D39956
|
Revision tags: release/13.2.0 |
|
#
2f2ec4bc |
| 11-Jan-2023 |
Mitchell Horne <mhorne@FreeBSD.org> |
dtrace: remove unused defines
Reviewed by: markj, emaste MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37659
|
Revision tags: release/12.4.0, release/13.1.0, release/12.3.0 |
|
#
b7924341 |
| 27-Aug-2021 |
Andrew Turner <andrew@FreeBSD.org> |
Create sys/reg.h for the common code previously in machine/reg.h
Move the common kernel function signatures from machine/reg.h to a new sys/reg.h. This is in preperation for adding PT_GETREGSET to p
Create sys/reg.h for the common code previously in machine/reg.h
Move the common kernel function signatures from machine/reg.h to a new sys/reg.h. This is in preperation for adding PT_GETREGSET to ptrace(2).
Reviewed by: imp, markj Sponsored by: DARPA, AFRL (original work) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D19830
show more ...
|
Revision tags: release/13.0.0 |
|
#
05985a7f |
| 01-Feb-2021 |
Jessica Clarke <jrtc27@FreeBSD.org> |
arm64: Improve DDB backtrace support
The existing implementation relies on each trap handler saving a normal stack frame record, which is a waste of time and space when we're already saving a trapfr
arm64: Improve DDB backtrace support
The existing implementation relies on each trap handler saving a normal stack frame record, which is a waste of time and space when we're already saving a trapframe to the stack. It's also wrong as it currently saves LR not ELR.
Instead of patching it up, rewrite it based on the RISC-V implementation with inspiration from the amd64 implementation for how to handle vectored traps to provide an improved implementation. This includes compressing the information down to one line like other architectures rather than the highly-verbose old form that repeats itself by printing LR and FP in one frame only to print them as PC and SP in the next. It also includes printing out actually useful information about the traps that occurred, though FAR is not saved in the trapframe so we cannot print it (in general it can be clobbered between when the trap happened and now), only ESR.
The AAPCS also allows the stack frame record to be located anywhere in the frame, not just the top, so the caller's SP is not at a fixed offset from the callee's FP like on almost all other architectures in existence. This means there is no way to derive the caller's SP in the unwinder, and so we have to drop that bit of (unused) state everywhere.
Reviewed by: jhb, markj Differential Revision: https://reviews.freebsd.org/D28026
show more ...
|
#
ae953968 |
| 08-Dec-2020 |
John Baldwin <jhb@FreeBSD.org> |
Check that the frame pointer is within the current stack.
This same check is used on other architectures. Previously this would permit a stack frame to unwind into any arbitrary kernel address (inc
Check that the frame pointer is within the current stack.
This same check is used on other architectures. Previously this would permit a stack frame to unwind into any arbitrary kernel address (including unmapped addresses).
Reviewed by: andrew, markj Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D27362
show more ...
|
#
4d16f941 |
| 01-Dec-2020 |
John Baldwin <jhb@FreeBSD.org> |
Use uintptr_t instead of uint64_t for pointers in stack frames.
Reviewed by: andrew Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D27361
|
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0 |
|
#
5f05bda6 |
| 12-May-2018 |
Mark Johnston <markj@FreeBSD.org> |
DTrace aarch64: Avoid calling unwind_frame() in the probe context.
unwind_frame() may be instrumented by FBT, leading to recursion into dtrace_probe(). Manually inline unwind_frame() as we do with s
DTrace aarch64: Avoid calling unwind_frame() in the probe context.
unwind_frame() may be instrumented by FBT, leading to recursion into dtrace_probe(). Manually inline unwind_frame() as we do with stack unwinding code for other architectures.
Submitted by: Domagoj Stolfa Reviewed by: manu MFC after: 1 week Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D15359
show more ...
|
Revision tags: release/10.4.0, release/11.1.0, release/11.0.1, release/11.0.0 |
|
#
1cb290d2 |
| 31-May-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Set oldfp so the check for fp == oldfp works as expected.
Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation
|
#
876d357f |
| 11-Apr-2016 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: The FreeBSD Foundation
|
#
1c7c13aa |
| 06-Apr-2016 |
Wojciech Macek <wma@FreeBSD.org> |
Implement dtrace_getupcstack in ARM64
Allow using DTRACE for performance analysis of userspace applications - the function call stack can be captured. This is almost an exact copy of AMD64 solution.
Implement dtrace_getupcstack in ARM64
Allow using DTRACE for performance analysis of userspace applications - the function call stack can be captured. This is almost an exact copy of AMD64 solution.
Obtained from: Semihalf Sponsored by: Cavium Reviewed by: emaste, gnn, jhibbits Differential Revision: https://reviews.freebsd.org/D5779
show more ...
|
Revision tags: release/10.3.0 |
|
#
76f38317 |
| 22-Feb-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r295845 through r295901.
|
#
317cec3c |
| 22-Feb-2016 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: The FreeBSD Foundation
|
#
35a0bc12 |
| 22-Feb-2016 |
Svatopluk Kraus <skra@FreeBSD.org> |
As <machine/vmparam.h> is included from <vm/vm_param.h>, there is no need to include it explicitly when <vm/vm_param.h> is already included.
Suggested by: alc Reviewed by: alc Differential Revision:
As <machine/vmparam.h> is included from <vm/vm_param.h>, there is no need to include it explicitly when <vm/vm_param.h> is already included.
Suggested by: alc Reviewed by: alc Differential Revision: https://reviews.freebsd.org/D5379
show more ...
|
#
b5ff185e |
| 12-Sep-2015 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Merge from head
|
#
ab875b71 |
| 14-Aug-2015 |
Navdeep Parhar <np@FreeBSD.org> |
Catch up with head, primarily for the 1.14.4.0 firmware.
|
Revision tags: release/10.2.0 |
|
#
4cd9b24e |
| 04-Jul-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r284737 through r285152.
|
#
b78ee15e |
| 01-Jul-2015 |
Ruslan Bukin <br@FreeBSD.org> |
First cut of DTrace for AArch64.
Reviewed by: andrew, emaste Sponsored by: ARM Limited Differential Revision: https://reviews.freebsd.org/D2738
|