On 06/03/2012 03:18 PM, Johannes Bauer wrote:
> Hi list,
> 
> when trying to install Windows7 in a qemu-kvm 1.0.1 installation on
> Gentoo on my host running

Is that a 32-bit or 64-bit Windows 7?

> 
> Linux joequad 3.3.7 #1 SMP PREEMPT Sun Jun 3 12:05:59 CEST 2012 x86_64
> Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz GenuineIntel GNU/Linux
> 
> with a host CPU of
> 
> processor     : 0
> vendor_id     : GenuineIntel
> cpu family    : 6
> model         : 23
> model name    : Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz
> stepping      : 10
> microcode     : 0xa07
> cpu MHz               : 2003.000
> cache size    : 6144 KB
> physical id   : 0
> siblings      : 4
> core id               : 0
> cpu cores     : 4
> apicid                : 0
> initial apicid        : 0
> fpu           : yes
> fpu_exception : yes
> cpuid level   : 13
> wp            : yes
> flags         : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm
> constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64
> monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm
> dts tpr_shadow vnmi flexpriority
> bogomips      : 5680.90
> clflush size  : 64
> cache_alignment       : 64
> address sizes : 36 bits physical, 48 bits virtual
> power management:
> 
> the installation first works fine but upon first reboot qemu terminates
> with:
> 
> KVM: entry failed, hardware error 0x80000021
> 
> If you're runnning a guest on an Intel machine without unrestricted mode
> support, the failure can be most likely due to the guest entering an invalid
> state for Intel VT. For example, the guest maybe running in big real mode
> which is not supported on less recent Intel processors.
> 
> EAX=00000010 EBX=00000080 ECX=00000000 EDX=00000080
> ESI=0025da4a EDI=0007da4a EBP=00001f20 ESP=00000200
> EIP=0000009b EFL=00000002 [-------] CPL=3 II=0 A20=1 SMM=0 HLT=0
> ES =0020 00000200 0000ffff 00009300
> CS =b000 002b0000 0000ffff 0000f300

Pre-unrestricted mode hosts require cs.selector (first number) * 16 ==
cs.base (second number).  This clearly isn't the case here.

> Since the instruction clears PE of %cr0, I'm pretty sure it's trying to
> enter real mode again (for a very brief period no doubt) before firing
> up the OS. Since I believe my CPU is too old and does not support
> "Unrestricted Guest", this causes qemu to barf.
> 
> Is this assessment correct? Is there some way of getting qemu to switch
> to "soft" emulation in real mode and to use KVM in protected mode?

# rmmod kvm_intel
# modprobe kvm_intel emulate_invalid_guest_state=1

Warning: experimental code.

> Or is
> it impossible to run Windows 7 with kvm on a Core Quad (which possibly
> doesn't support "Unrestricted Guest")?

It should be possible.  Did you do anything special with the guest
(install any software?) before rebooting?  Is this repeatable?

> For reference, there's at least one more person having an identical
> problem (I've also posted in that thread):
> http://forums.gentoo.org/viewtopic-p-7054198.html

Same cs.sel/cs.base as your report.

> To find out if my CPU really does not suport "Unrestricted Guest" I've
> also posted http://software.intel.com/en-us/forums/showthread.php?t=105687

You can run vmxcap [1] and see.


[1]
http://git.qemu.org/?p=qemu.git;a=blob_plain;f=scripts/kvm/vmxcap;hb=HEAD


-- 
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to