qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] QEMU (no kvm) Win7 (64bit) boot error


From: Stefan Weil
Subject: Re: [Qemu-devel] QEMU (no kvm) Win7 (64bit) boot error
Date: Mon, 10 Sep 2012 19:46:07 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120827 Thunderbird/15.0

Am 10.09.2012 19:20, schrieb Clemens Kolbitsch:
On Mon, Sep 10, 2012 at 9:23 AM, Stefan Weil <address@hidden> wrote:


Hi Clemens,

indeed, it looks like CPUID_DE fixes that BSOD with "STOP 0x0000005D ...".
In my test scenario Windows now reboots instead of showing the BSOD.

This commit added the TCG feature bit trimming which broke Windows:

commit 551a2dec8fa55006a68393b9d6fb63577d2b3f1c
Autor:    Andre Przywara <address@hidden>  Do Mär 11 14:39:03 2010
Eintragender:    Aurelien Jarno <address@hidden>  Sa Mär 13 16:50:54
2010

x86/cpuid: add TCG feature bit trimming

In KVM we trim the user provided CPUID bits to match the host CPU's
one. Introduce a similar feature to QEMU/TCG. Create a mask of TCG's
capabilities and apply it to the user bits.
This allows to let the CPU models reflect their native archetypes.

Signed-off-by: Andre Przywara <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>


Andre, why don't we set the requested feature bits - no matter what TCG
provides?
Stefan,

could you tell me what QEMU ( ;-) ) HW configuration you use for your
testing? I'm able to boot, but it still is very unstable - after a few
seconds of running, I still run into BSODs. I think it's independent
of the bug I was working on, but I'd like to test some more.


I run qemu-system-x86_64 (latest from git) withthe default CPU
on a 64 bit Windows 7 host. QEMU uses that host's installation:

qemu-system-x86_64 -m 1024 -snapshot -hda //PhysicalDrive/0




BTW, I'm actually quite confident that the missing CPU-ID bit caused
the 0x5D booting BSOD, since I took two kernel boot traces (one of
QEMU stable crashing and a working VM) and the location the traces
branched off from each other was where the CPU-ID bits were checked
(and this one feature bit was the only thing that was not set properly
for the check to succeed).

-Clemens

CPUID_DE is part of the PENTIUM_FEATURES macro, therefore
I think it's a very old feature which was already supported by
the Pentium CPU family. No wonder Windows complains when
it is missing.

This and maybe some more bits (there is a comment 'needed for Win64'
for CPUID_MTRR, CPUID_MCA, CPUID_CLFLUSH which were also removed)
should be set in TCG mode (as they are set with KVM).

There remain two questions:

* Do we need some TCG implementation for those bits?

* Should the patch which adds CPUID_DEagain be committed
  before the other question was answered?

Any patch in this area should also be sent to qemu-stable:
this BSOD with Windows guests running on QEMU occurs rather
often (just run a search on a web search engine to get many
hits).

Regards,
Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]