dtrace: correct the aframes value for fbt provider

Set the number of artificial frames to 5:
 1. cpu_exception_handler_supervisor()
 2. do_trap_supervisor()
 3. dtrace_invop_start()
 4. dtrace_invop()
 5. fbt_invop()

Reviewed by:	markj
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D37663
This commit is contained in:
Mitchell Horne 2023-01-11 14:06:24 -04:00
parent 40fdda022a
commit 36a9ce874b

View File

@ -45,6 +45,7 @@
#define FBT_PATCHVAL MATCH_EBREAK
#define FBT_ENTRY "entry"
#define FBT_RETURN "return"
#define FBT_AFRAMES 5
int
fbt_invop(uintptr_t addr, struct trapframe *frame, uintptr_t rval)
@ -196,7 +197,7 @@ fbt_provide_module_function(linker_file_t lf, int symindx,
fbt = malloc(sizeof (fbt_probe_t), M_FBT, M_WAITOK | M_ZERO);
fbt->fbtp_name = name;
fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
name, FBT_ENTRY, 3, fbt);
name, FBT_ENTRY, FBT_AFRAMES, fbt);
fbt->fbtp_patchpoint = instr;
fbt->fbtp_ctl = lf;
fbt->fbtp_loadcnt = lf->loadcnt;
@ -239,7 +240,7 @@ fbt_provide_module_function(linker_file_t lf, int symindx,
fbt->fbtp_name = name;
if (retfbt == NULL) {
fbt->fbtp_id = dtrace_probe_create(fbt_id, modname,
name, FBT_RETURN, 3, fbt);
name, FBT_RETURN, FBT_AFRAMES, fbt);
} else {
retfbt->fbtp_probenext = fbt;
fbt->fbtp_id = retfbt->fbtp_id;