Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jun 2015 10:36:51 -0700
From:      Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
To:        "current@freebsd.org" <current@freebsd.org>
Subject:   obtaining a minidump from panic() called from NMI handler
Message-ID:  <CAFPOs6qsFZKMVzLEDL5X77H6s5LoTjsc4SkMWgR0D_P8RQG4YQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFPOs6qsFZKMVzLEDL5X77H6s5LoTjsc4SkMWgR0D_P8RQG4YQ>