Revision tags: 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/
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0, 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 |
|
#
68cad681 |
| 21-Nov-2019 |
Andrew Turner <andrew@FreeBSD.org> |
Add kcsan_md_unsupported from NetBSD.
It's used to ignore virtual addresses that may have a different physical address depending on the CPU.
Sponsored by: DARPA, AFRL
|
#
849aef49 |
| 21-Nov-2019 |
Andrew Turner <andrew@FreeBSD.org> |
Port the NetBSD KCSAN runtime to FreeBSD.
Update the NetBSD Kernel Concurrency Sanitizer (KCSAN) runtime to work in the FreeBSD kernel. It is a useful tool for finding data races between threads exe
Port the NetBSD KCSAN runtime to FreeBSD.
Update the NetBSD Kernel Concurrency Sanitizer (KCSAN) runtime to work in the FreeBSD kernel. It is a useful tool for finding data races between threads executing on different CPUs.
This can be enabled by enabling KCSAN in the kernel config, or by using the GENERIC-KCSAN amd64 kernel. It works on amd64 and arm64, however the later needs a compiler change to allow -fsanitize=thread that KCSAN uses.
Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D22315
show more ...
|