summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_lock.c2
-rw-r--r--sys/kern/subr_stack.c10
2 files changed, 8 insertions, 4 deletions
diff --git a/sys/kern/kern_lock.c b/sys/kern/kern_lock.c
index 2fcda62..a0ac607 100644
--- a/sys/kern/kern_lock.c
+++ b/sys/kern/kern_lock.c
@@ -168,7 +168,7 @@ lockmgr(lkp, flags, interlkp, td)
{
struct stack stack; /* XXX */
stack_save(&stack);
- CTRSTACK(KTR_LOCK, &stack, 1);
+ CTRSTACK(KTR_LOCK, &stack, 0, 1);
}
#endif
diff --git a/sys/kern/subr_stack.c b/sys/kern/subr_stack.c
index 9b2be7b..47dd205 100644
--- a/sys/kern/subr_stack.c
+++ b/sys/kern/subr_stack.c
@@ -115,7 +115,8 @@ stack_sbuf_print(struct sbuf *sb, struct stack *st)
#ifdef KTR
void
-stack_ktr(u_int mask, const char *file, int line, struct stack *st, int cheap)
+stack_ktr(u_int mask, const char *file, int line, struct stack *st, u_int depth,
+ int cheap)
{
const char *name;
long offset;
@@ -136,12 +137,15 @@ stack_ktr(u_int mask, const char *file, int line, struct stack *st, int cheap)
ktr_tracepoint(mask, file, line, "#2 %p %p %p %p %p %p",
st->pcs[12], st->pcs[13], st->pcs[14], st->pcs[15],
st->pcs[16], st->pcs[17]);
- } else
- for (i = 0; i < st->depth; i++) {
+ } else {
+ if (depth == 0 || st->depth < depth)
+ depth = st->depth;
+ for (i = 0; i < depth; i++) {
stack_symbol(st->pcs[i], &name, &offset);
ktr_tracepoint(mask, file, line, "#%d %p at %s+%#lx",
i, st->pcs[i], (u_long)name, offset, 0, 0);
}
+ }
}
#endif
OpenPOWER on IntegriCloud