DF-3554 / wedge_forensics.txt
# QEMU-monitor forensics of the wedged guest (stock v1 run)
#
# CPU states (info registers, repeated):
# spinner vCPU: RIP cycling among
# m_free+0x1c / m_free+0x3c / m_free+0x5c (sys/kern mbuf free)
# m_tag_copy_chain+0x20, m_dup_pkthdr+0x0 (m_dup internals)
# netgraph.ko+0x22c6 (ng_send_data)
# ng_tee.ko+0x2e1 (ngt_rcvdata)
# RFL.IF=0 in the siocngetc terminal state (interrupts masked)
# other vCPUs: cpu_idle+0xda (HLT) / cpu_smp_stopped+0x52
#
# Terminal states across the 4 runs (all unrecoverable):
# 1) siocngetc+0x41, IF=0, ~94% host-core spin; Xcpustop+0x20e frames
# on other CPUs -> kernel debugger entry polling a dead console
# 2) all CPUs cpu_idle, network catatonic (ssh/ICMP dead)
# 3) CPU0 memmove+0xb0 + CPU1 acpi_hpet_early_get_timecount+0x38
# (DELAY), others idle -> cross-CPU deadlock
#
# Stack walk of the wedging thread (monitor 'x' virtual dump of its
# kstack around RSP=0xfffff8008d1f8888; symbolized with the guest's own
# nm output of /boot/kernel/{kernel,netgraph.ko,ng_tee.ko,ng_socket.ko}):
#
# fffff8008d1f8998: m_free+0x1ce / m_freem+0x15 per-hop churn
# fffff8008d1f89c8: netgraph.ko+0x22f0 ng_send_data
# fffff8008d1f89e8: ng_tee.ko+0x405 ngt_rcvdata
# fffff8008d1f89f8: netgraph.ko+0x2277 ng_send_data
# fffff8008d1f8a38: ng_socket.ko+0x34f ngd_send
# fffff8008d1f8a40: 0xfffff80000706174 = "tap\0" injection sockaddr
#
# -> the sendto -> ngd_send -> ng_send_data -> ngt_rcvdata ->
# ng_send_data -> m_dup/m_free v1 tee forwarding chain, live.