History log of /freebsd/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c (Results 1 – 24 of 24)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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