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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.