Skip to content

Debugging SmartOS

Debugging issues with a system like SmartOS is a complex topic, but here you can find some useful tips.

Debugging a boot hang

If you find SmartOS hangs during boot, this could be due to a number of reasons. If it's during kernel setup, though, you can use an NMI to drop into the kernel debugger and inspect the state at the time of the hang.

In the boot loader menu, drop into:

    2. [Esc]ape to loader prompt

then

boot -kv -m verbose -B nmi=kmdb

When it hangs, trigger an NMI. For example, under KVM, this would be virsh inject-nmi smartos. On metal, you can do this via IPMI.

Back on the console, you should have dropped into KMDB, and can get a backtrace:

[0]> $C
fffffffffbc13e70 kmdb_enter+0xb()
fffffffffbc13ea0 debug_enter+0x59(fffffffff794d6d3)
fffffffffbc13ed0 apix`apic_nmi_intr+0x9e(0, fffffffffbc13f10)
fffffffffbc13f00 av_dispatch_nmivect+0x34(fffffffffbc13f10)
fffffffffbc13f10 nmiint+0x152()
...

Other commands such as ::stacks and ::walk cpu | ::cpustack might be useful at this point.