From: Avi Kivity <avi@redhat.com>
To: Jan Kiszka <jan.kiszka@siemens.com>
Cc: kvm <kvm@vger.kernel.org>
Subject: Re: VMX: System lock-up in guest mode, BIOS under suspect
Date: Sat, 02 Oct 2010 19:25:00 +0200 [thread overview]
Message-ID: <4CA76AEC.7010604@redhat.com> (raw)
In-Reply-To: <4CA60CB8.8020506@siemens.com>
On 10/01/2010 06:30 PM, Jan Kiszka wrote:
> Hi,
>
> for the past days I've been trying to understand a very strange hard
> lock-up of some Intel i7 boxes when running our 16-bit guest OS under
> KVM. After applying some instrumentation before and after the VM entry
> (e.g. direct write to VGA memory), it turned out that the system is
> apparently stuck inside guest mode!
Strictly speaking, it could also be a crash in the small window between
vmexit and your writes. However it's likely to be as you say.
> I double-checked that VM exits on external IRQs and NMIs are properly
> enabled in the VMCS - they are. I also tried to capture any potential
> last words via serial console and even via remote DMA over Firewire) -
> nothing. This likely means that not only the one core in guest mode is
> stuck but all the others as well (note: the freeze is reproducible both
> in UP and SMP mode). Very uncommon for an OS crash I would say...
>
> So I decided to go for some nice conspiracy theory and put SMIs and
> related BIOS code under suspect. Interestingly, this worked out:
>
> After disabling all SMIs on my box (Fujitsu Celsius H700) via the
> chipset register, the hard freezes no longer occurred up to now. My
> customer was able to confirm this on some Lenovo Notebook as well. We
> are currently collecting data about the affected systems to correlate
> it, and we are performing longer test runs.
>
> Nevertheless, I would like to collect some first comments on this. I'm
> specifically wondering...
>
> - if there is anything the host OS can mess up to make VM exits crash
> on the way into SMM or out again (I cannot imagine as the SMM monitor
> should always be able to run, at least in the absence of CPU
> erratas).
Yes. It's basically a small hypervisor, and the host OS is its guest.
So a well written SMM handler should not depend on any OS setting.
Whether they're actually tested this way is another matter.
> - what the SMM monitor could do wrong to cause such a crash,
> especially as it looks like the hardware does all the switching for
> it.
Looks like SMM saves some handler-visible state when EPT is enabled.
Are all your failures on EPT-capable hosts? If so, what happens when
EPT is disabled?
> - if there could still be some KVM crash around host<->guest switching
> that just happens to be triggered by the SMI noise and that affects
> the whole system (including cores that do not host KVM threads).
>
> Any ideas warmly welcome!
Besides trying with ept=0, I suggest looking for machines that have SMIs
but do not crash. If we find them, this seems to indicate a badly
written SMM handler. If not, then there may be a systemic problem with
kvm (or perhaps all SMM handlers are badly written).
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
next prev parent reply other threads:[~2010-10-02 17:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-01 16:30 VMX: System lock-up in guest mode, BIOS under suspect Jan Kiszka
2010-10-02 17:25 ` Avi Kivity [this message]
2010-10-04 8:41 ` Jan Kiszka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CA76AEC.7010604@redhat.com \
--to=avi@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox