Was tinkering on a bt(5) script for trying to debug an issue in vmm(4)
when I managed to start hitting a panic "wakeup: p_stat is 2" being
triggered by kqueue coming from the softnet kernel task.

I'm running an amd64 kernel built from the tree today (latest CVS commit
id UynQo1r7kLKA0Q2p) with VMM_DEBUG option set and the defaults from
GENERIC.MP. Userland is from the latest amd snap.

To reproduce, I'm running a single OpenBSD-current guest under vmd(8)
which I'm targeting with the following trivial btrace script I was
working on to use for debugging something in vmm(4):

tracepoint:sched:sleep / pid == $1 && tid == $2 /{
  printf("pid %d, tid %d slept %d!\n", pid, tid, nsecs);
}

tracepoint:sched:wakeup / pid == $1 && tid == $2 /{
  printf("pid %d, tid %d awoke %d!\n", pid, tid, nsecs);
}

Both times this happened I was trying to sysupgrade the vmd(8) guest
while running the above btrace script. When I don't run the script,
there is no panic.

Image of the full backtrace is here: https://imgur.com/a/swW1qoj

Simple transcript of the call stack after the panic() call looks like:

wakeup_n
kqueue_wakeup
knote
selwakekup
tun_enqueue
ether_output
ip_output
ip_forward
ip_input_if
ipv4_input
ether_input
if_input_process

The other 3 cpu cores appeared to be in ipi handlers. (Image in that
imgur link)

-dv

Reply via email to