obtaining a minidump from panic() called from NMI handler

From: Maksim Yevmenkin <maksim.yevmenkin_at_gmail.com>
Date: Wed, 10 Jun 2015 10:36:51 -0700
hello,

i have a question about obtaining minidump as result of panic() being
called from nmi handler. basically, i have a way to trigger nmi, and,
i would like to panic() system and obtain a minidump.

i have modified isa_nmi() to appropriately inspect bits and return
non-zero return code. i have turned off machdep.kdb_on_nmi knob (set
it to zero). i have confirmed that amd64 trap() is called with correct
T_NMI type. i've also confirmed that panic() is called from amd64's
trap().

the issue i have is that system is rebooting too early. basically, it
looks like minidump is started, but, for whatever reason, other cpus
are not completely stopped (or may be they are panic()ing again) and
system just reboots without having complete the minidump.

the issue is not present when machdep.kdb_on_nmi is set to 1. in this
case, system drops into ddb prompt and 'call doadump' works as
expected. for various reasons i can not use ddb, and, would like to
have system save nmi triggered minidump completely unattended.

can someone please give me a clue as to what i should be looking into
to make this work?

thanks!
max
Received on Wed Jun 10 2015 - 15:36:52 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:58 UTC