On Thu, Nov 17, 2011 at 02:29:47PM +0800, hkran wrote: > On 11/16/2011 06:51 PM, Gleb Natapov wrote: > >On Wed, Nov 16, 2011 at 10:48:15AM +0000, Stefan Hajnoczi wrote: > >>On Wed, Nov 16, 2011 at 10:14 AM, hkran<hk...@linux.vnet.ibm.com> wrote: > >>>On 11/15/2011 09:17 PM, Stefan Hajnoczi wrote: > >>>>On Fri, Nov 4, 2011 at 11:25 AM, Stefan Hajnoczi<stefa...@gmail.com> > >>>> wrote: > >>>>>On Fri, Nov 4, 2011 at 10:48 AM, Stefan Hajnoczi<stefa...@gmail.com> > >>>>> wrote: > >>>>>>Windows 7 32-bit guest blue screens when I shut it down properly with > >>>>>>Start | Shut Down. The blue screen is only displayed for a split > >>>>>>second before the guest reboots so I am not able to easily tell what > >>>>>>it says. My guess is that Windows is triple-faulting or soft > >>>>>>rebooting - note that I told Windows to shut down, not reboot. > >>>>>> > >>>>>>This issue happens on qemu.git/master (and Debian kvm 0.14.1+dfsg-3). > >>>>>>Here is the QEMU command-line: > >>>>>> > >>>>>>x86_64-softmmu/qemu-system-x86_64 -L pc-bios -cpu qemu32 -enable-kvm > >>>>>>-m 1024 -rtc base=localtime -drive > >>>>>>file=win7.img,if=none,id=drive-ide0-0-0,format=raw -device > >>>>>>ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 > >>>>>> > >>>>>>Questions: > >>>>>> > >>>>>>Is anyone else experiencing this? > >>>>>> > >>>>>>Is anyone fixing this? > >>>>>> > >>>>>>If not I will play with it. Disabling ACPI might reveal the source of > >>>>>>the problem. If that turns up nothing I will try to get the BSOD or > >>>>>>WinDbg output. > >>>>>Thanks to Andreas Faerber and Michael Tokarev I found out the > >>>>>automatic reboot can be disabled in Windows. Here is the BSOD > >>>>>information: > >>>>> > >>>>>IRQL_NOT_LESS_OR_EQUAL > >>>>>STOP: 0x0000000A (0x00000000,0x000000FF,0x00000001,0x828B7220) > >>>>This decodes to: > >>>>"Windows or a kernel-mode driver accessed paged memory at > >>>>DISPATCH_LEVEL or above." > >>>> > >>>>Memory referenced: 0x00000000 > >>>>IRQL: 0xff > >>>>Read/write: Write (1) > >>>>Address which referenced memory: 0x828B7220 > >>>> > >>>>http://msdn.microsoft.com/en-us/library/ff560129%28v=VS.85%29.aspx > >>>> > >>>>Looks like a NULL pointer reference or maybe a deliberate "we should > >>>>never get here" failure. > >>>> > >>>>Stefan > >>>> > >>>I can reproduce this bug in my environment and found out that it has > >>>something with the type of "CPU". > >>>I tried the command line args as the same as Stefan's and definitely casue > >>>the BSOD. > >>>If i change the "-cpu qemu32" to "-cpu qemu64" or "-cpu core2duo" or > >>>nothing. it will shutdown as expected, that means something? > >>Thanks for sharing. The guest is definitely sees a differed CPUID and > >>can therefore take different code paths. I'm not sure what > >>specifically could have changed. > >> > >Try adding/removing individual cpuid bits. > > > >-- > > Gleb. > > > It seems that the .model = 3 for "qemu32" type in struct > builtin_x86_defs in the file target-i386/cpuid.c make it failed. > if I changed it to "2" which is the same as "qemu64". it will be OK. Enable tracing like this: # echo kvm:kvm_msr > /sys/kernel/debug/tracing/set_event and then reboot windows with qemu32. Look for strange things in the log. Like msr read/write that caused #GP.
-- Gleb.