Page MenuHomeFreeBSD

dtrace: Add a partial implementation of dtrace_getarg() on arm64
ClosedPublic

Authored by markj on Jun 19 2024, 9:49 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jul 12, 10:17 AM
Unknown Object (File)
Mon, Jul 8, 10:13 PM
Unknown Object (File)
Mon, Jul 8, 10:10 PM
Unknown Object (File)
Mon, Jul 8, 9:33 PM
Unknown Object (File)
Thu, Jun 27, 12:21 AM
Unknown Object (File)
Wed, Jun 26, 10:42 PM
Unknown Object (File)
Jun 21 2024, 5:51 PM
Unknown Object (File)
Jun 21 2024, 8:39 AM

Details

Summary

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.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

markj requested review of this revision.Jun 19 2024, 9:49 PM
This revision is now accepted and ready to land.Jun 20 2024, 4:58 AM
domagoj.stolfa_gmail.com added inline comments.
sys/cddl/dev/dtrace/aarch64/dtrace_isa.c
257

Is it maybe worth KASSERTing alignment of tf_sp here?

sys/cddl/dev/dtrace/aarch64/dtrace_isa.c
257

A KASSERT is probably too strong, but we should set a dtrace error flag if the alignment isn't right.

sys/cddl/dev/dtrace/aarch64/dtrace_isa.c
257

Yeah, that sounds like a better idea :).

markj marked 2 inline comments as done.

Check alignment. Reduce the amount of casting we do.

This revision now requires review to proceed.Jun 20 2024, 1:36 PM
This revision is now accepted and ready to land.Jun 20 2024, 1:38 PM