Re: Freezing Windows 2008 x64bit guest

Gleb Natapov
2010-07-21T10:30:35Z

On Wed, Jul 21, 2010 at 01:09:06PM +0300, Harri Olin wrote:
> Gleb Natapov wrote:
> >On Wed, Jul 21, 2010 at 12:22:45PM +0300, Harri Olin wrote:
> >>Gleb Natapov wrote:
> >>>On Wed, Jul 21, 2010 at 09:25:31AM +0300, Harri Olin wrote:
> >>>>Gleb Natapov kirjoitti:
> >>>>>On Mon, Jul 19, 2010 at 10:17:02AM +0300, Harri Olin wrote:
> >>>>>>Gleb Natapov kirjoitti:
> >>>>>>>On Thu, Jul 15, 2010 at 03:19:44PM +0200, Christoph Adomeit wrote:
> >>>>>>>>But one Windows 2008 64 Bit Server Standard is freezing regularly.
> >>>>>>>>This happens sometimes 3 times a day, sometimes it takes 2 days
> >>>>>>>>until freeze. The Windows Machine is a clean fresh install.
> >>>>>>I think I have seen same problem occur on my Windows 2008 SBS SP2
> >>>>>>64bit system, but a bit less often, only like once a week.
> >>>>>>Now I haven't seen crashes but only freezes with qemu on 100% and
> >>>>>>virtual system unresponsive.
> >>>>>>
> >>>>>>qemu command line:
> >>>>>>/usr/local/qemu-kvm-0.11.1/bin/qemu-system-x86_64 -drive
> >>>>>>file=/dev/rigelvg/w2k8system,cache=none,boot=on -drive
> >>>>>>file=/dev/rigelvg/w2k8data,cache=none -m 6144 -vnc :1 -net
> >>>>>>nic,macaddr=C0:FF:12:FB:AA:01,model=e1000 -net tap -smp 4 -localtime
> >>>>>>
> >>>>>>
> >>>>>Try with different model then e1000 please. Default driver that comes
> >>>>>with Windows known to have problems.
> >>>>Didn't help, changed to default realtek emulation, but system
> >>>>freezed again. Command line:
> >>>>/usr/local/qemu-kvm-0.11.1/bin/qemu-system-x86_64 -drive
> >>>>file=/dev/rigelvg/w2k8system,cache=none,boot=on -drive
> >>>>file=/dev/rigelvg/w2k8data,cache=none -m 6144 -vnc :1 -net
> >>>>nic,macaddr=C0:FF:12:FB:AA:01 -net tap -smp 4 -localtime
> >>>>
> >>>>This time the virtual system was not totally unresponsive somehow,
> >>>>system pinged just fine and I think DNS server worked too. However
> >>>>on console mouse moved but didn't react to clicking, ctrl-alt-del,
> >>>>etc.
> >>>>
> >>>Does sendkey from monitor works? qemu-kvm-0.11.1 is very old and this is
> >>>not total freeze which even harder to debug. I don't see anything
> >>>extraordinary in your logs. 4643 interrupt per second for 4 cpus is
> >>>normal if windows runs multimedia or other app that need hi-res timers.
> >>>Does your host swapping? Is there any chance that you can try upstream qemu-kvm?
> >>>
> >>I haven't tested sendkey. I originally tried 0.12.2 or so but with
> >>that windows crashed more often with bluescreen, I went down to
> >>0.11.1. This might be related to -td-rtc-hack and/or e1000 as using
> >>td-rtc-hack on 0.11.1 windows crashed too to bluescreen.
> >>
> >With your guest -td-rtc-hack does nothing anyway, so you can just drop
> >it. Although it shouldn't cause BSOD with upstream (it had such bug in
> >the past and I am not sure that 0.12 has the fix). And you are using
> >HPET anyway so -td-rtc-hack should be nop for you.
>
> Ok, I think I added it because windows guest clock lagged behind a
> lot but didn't check if it helped.
>
For win2k8-64bit (and win2k3-64bit) we don't have a solution for time
drift currently. And with hpet we don't have it for any windows.

> >>Only thing that catches my eye on stats frozen vs normal is
> >>irq_exits which jumps from 200 to 10000 when frozen and irq_window
> >>which goes 10x.
> >Hm, default Windows timer rate is 64Hz, so if nothing happens in the
> >guest you should see at least 256 irq injection per second. In your KVM
> >start output I only see 4655 irq injection per second not 10000. And
> >trace shows that most of them are timer interrupts (vector 209 IIRC).
>
> Frozen kvm_stat can be seen here; when I grabbed this, windows did
> not answer to ping.
> stats: http://mizar.remote.agasha.com/k/kvm/kvm_stat_hang.txt
> trace: http://mizar.remote.agasha.com/k/kvm/kvm_trace_hang.txt
Not much happens here. Windows gets timer irqs at 1024Hz rate and
process them. What is your host kernel? Does it have hi-res timers?

>
> Here's another frozen state stat dump; when I got this windows did
> answer to ping but was otherwise unresponsive:
> stats: http://mizar.remote.agasha.com/k/kvm/kvm_stat_2_log.txt
> trace: http://mizar.remote.agasha.com/k/kvm/kvm_trace_2.txt
>
> On both times irq_exits go to 10000 but irq_injections stay at
> around 4600. On both times qemu process was at 100% cpu load.
>
irq_exits are exits due to host interrupt. What "cat /proc/interrupts"
show? Which counter grows at this rate there (or 1/4 of the rate but for
each host cpu).

--
Gleb.