On Mon, Jun 27, 2011 at 01:12:18PM +0300, yhalperi wrote: > On 06/27/2011 11:12 AM, Stefan Hajnoczi wrote: > >On Mon, Jun 27, 2011 at 8:04 AM, yhalperi<yhalp...@redhat.com> wrote: > >>I'm using qemu with qxl (with S3/4 support. patches sent by Alon Levy). > >>While with Windows xp guest I had no problems, Windows 7 (32 bits) hangs > >>after S3 (it looks alive for a second, and then it gets stack).It happens > >>only when using "-net tap"; with "-net user", I didn't encounter a problem. > > > >Please post your QEMU command-line. > > > >For sanity also please try without the QXL patches. That way we know > >whether this issue is related to QXL or not. > > > >Stefan > > How can I test S3 without qxl? I tried using cirrus and the Sleep > option was disabled on windows 7. > I also tried the older qxl (without the patches that support s3), > and disabled off-screen surfaces (in order to allow s3 to work), and > the same problem occured. > "-net tap" vs "-net user" rings the bell for me. There is a known (for me) problem with Windows S3 resume + networking. It appears that Windows enables NIC receive interrupt before it registers NIC's interrupt handler (only on S3 resume! On regular boot the order is different). If interrupt arrives before NIC's interrupt handler is registered Windows hangs because interrupt condition is never cleared in the NIC. On real hardware this is not happening because relatively long time passes between enabling link and receiving a first packet. With "-net user" guest never receives unsolicited packet, with "-net tap" there are always enough broadcasts to trigger the problem.
> my command line: > qemu-system-x86_64 -L pc-bios/ -m 1024 -hda <img> -boot c -vga qxl > -spice port=5678,disable-ticketing,streaming-video=all -net > nic,macaddr=00:1a:4a:01:00:e0,model=rtl8139 -net > tap,ifname=WIN7,script=/local/scripts/lan-ifup -nographic -global > qxl-vga.debug=1 --enable-kvm -snapshot > > > /local/scripts/lan-ifup > ------------------------- > #!/bin/sh > switch=sw0 > ifconfig $1 0.0.0.0 up > brctl addif ${switch} $1 -- Gleb.