Hello!If you mean the IPMI driver, it does not tie into any SMI. It theoretically could since there's a bit for that in the watchdog timer, but there's been no demand and I haven't looked at it. I guess it would be better than an NMI.
A couple of questions about the x86 architecture...
1. Can recoverable machine-check exceptions occur from within
NMI handlers? If so, there is a bug in preemptable RCU's
CONFIG_NO_HZ handling that could be fixed by a patch something
like the one shown below (untested, probably does not even
compile).
2. Does the IPMI subsystem make use of RCU read-side primitives
from within SMI handlers? If so, we need the SMI handlers to
invoke rcu_irq_enter() upon entry and rcu_irq_exit() upon exit
when they are invoked from dynticks idle state. Or something
similar, depending on restrictions on code within SMI handlers.