Re: guest suspend/resume & virtio: vring errors

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

 



On Sat, Jul 09, 2011 at 03:54:04PM +0400, Michael Tokarev wrote:
> 09.07.2011 14:36, Gleb Natapov wrote:
> > On Sat, Jul 09, 2011 at 02:09:46PM +0400, Michael Tokarev wrote:
> 
> >>> Heh. Is this S4 or S3 suspend resume? Looks like recent breakage.
> >>> The only knows problem to me is in win7/2008 S3 resume + net.
> >>
> >> How can I know if it's S3 or S4?  And I can't say it's recent:
> > S3 is suspend to memory, S4 is suspend to disk. Don't remember how
> > different version of Windows call them. Actually win7 disables S3
> > when running on qemu with cirrus adapter, so you are probably doing
> > S4.
> 
> Ahh, yes, I remember now.  Yes I used suspend-to-disk aka
> hybernation on windows.  And actually there's no error in
> there - it works.  I thought it is stuck in an endless loop,
> but it actually did suspending and it completes eventially.
> The only problem is that it does not show anything at all,
> no progress, no messages, no nothing - the screen is completely
> blank.
> 
> That's with -vga std which I usually use.  I just retried with
> cirrus and the effect is the same -- blank guest screen and 100%
> cpu usage, but it takes much much longer to complete for some
> reason - several minutes instead of ~30s.  It also takes lots
> of time when resuming, and the thing is less reliable too --
> I've seen ~50/50 failure ratio at resuming with -vga cirrus.
> 
So hibernate works for you, but slow. Try to check with cache=unsafe.
Resume failures look strange to me. Don't remember seen them even once.

> >> 0.14.1 works (or actually does not work) exactly the same in
> >> this respect as current git: suspend/resume is equally broken.
> > Suspend to disk worked flawlessly for me with Windows. There is nothing
> > special qemu should do for it to work. I haven't checked it on upstream
> > for a long time though. Can you check 0.12?
> 
> It looks like 0.12 works the same way - at least the behavour
> is very similar.  I also tried current qemu-kvm git and there,
> things are the same.
> 
> >>>> What's wrong/broken in linux?  Can it be fixed?
> >>>>
> >>> Complete lack of regression testing.
> >>
> >> Hm.  You wrote:
> >>
> >>> Yes, but Linux and suspend/resume are not best friends. Sometimes it
> >>> works by mistake, but next merged patch fixes it and suspend/resume
> >>> returns to its normal broken state.
> >>
> >> So regression testing should detect and raise an alarm
> >> when it works by mistake.  But can it be fixed to work
> >> by design instead, after which regression testing gets
> >> entrirely new meaning ? :)
> >>
> > Well S4/S3 is pet peeve of mine, so I little bit exaggerated :) Design
> > is not enough. Testing is needed. On Windows a driver that can't properly
> > handle S3/S4 will not pass WHQL, will not be signed by MS and will never
> > be loaded by the OS.
> 
> So I'm completely confused.  Is virtio designed to work or to fail
> on suspend/resume cycle?  If the former, regression testing will
> help.  If the latter, the design should be fixed first... ;)
> 
> According to your words above it's designed to fail, so to say.
> 
Ah you mixed my comments about virtio drivers specifically and Linux as
a whole kernel :). Linux in general designed to support hibernation, but
it requires cooperation of many subsystems and failure of one of them
means failure to hibernate. That is where a lot of testing is needed.
PCI subsystem has PM support, but not all driver implement their part
properly, or, as in case of virtio, at all.

> Also, as far as I can see, it should be fixed on the guest side,
> ie, in linux virtio drivers, not in qemu/kvm (which appears to
> work with windows guests), right?
> 
Correct. AFAIK Amit is working on this.

--
			Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux