[Qemu-devel] [Bug 1119281] [NEW] The virtio network device breaks UuidCreateSequential()

2013-02-08 Thread Francois Gouget
Public bug reported:

UuidCreateSequential() usually creates version 1 UUIDs (1) which means
they contain the main network card's MAC address. However when using a
virtio network card and driver the UUIDs contain random data instead of
the guest's MAC address. Changing the network card to either the default
rtl8139 one or the e1000 one fixes the issue.

Here is the software I have tested this with:
 * qemu 1.1.2+dfsg-5 and 1.4.0~rc0+dfsg-1exp (from Debian Testing and 
Experimental respectively)
 * The 0.1-49 and 0.1-52 Windows virtio drivers from 
https://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
 * Both a 32-bit Windows XP guest and a 64-bit Windows 7 one.


Here is how to test for this issue:
* Set up a Windows guest with a single network card(2), a virtio one and 
install the corresponding driver.

* Boot the guest and copy the uuidtest.exe file (see attachement) to it

* On the command line, type 'ipconfig /all'. Give you the correct
network card's MAC address on a line like the one below:

Physical Address. . . . . . . . . : 52-54-00-C7-0E-97

* Run uuidtest.exe. It will show the VM returning a UUID with the wrong
MAC address, and quite possibly even a multicast MAC address! (3). In
the example below 'f75292c62787' should have been the MAC address. Note
that on Windows XP UuidCreateSequential() returns RPC_S_UUID_LOCAL_ONLY
for virtio cards but that on Windows 7 it returns 0.

UuidCreateSequential() returned 0
uuid={56e1ffe4-71d8-11e2-b1cc-f75292c62787}
Got a version 1 UUID
The UUID does not contain a non-multicast MAC address

* Reboot and notice uuidtest.exe now reports a different value where the
MAC address should be.

* Shut down the VM and switch the network card to rtl8139, install the
drivers, run uuidtest.exe and notice that the last group of digits
finally contains the correct MAC address.


(1) https://en.wikipedia.org/wiki/Globally_unique_identifier#Algorithm
(2) Best do it with a single card to avoid confusion over which is the primary 
one.
(3) If the first byte of the address is odd then this is a multicast address.
https://en.wikipedia.org/wiki/MAC_address#Address_details

** Affects: qemu
 Importance: Undecided
 Status: New

** Attachment added: "Test executable and source"
   
https://bugs.launchpad.net/bugs/1119281/+attachment/3520477/+files/uuidtest.tar.bz2

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1119281

Title:
  The virtio network device breaks UuidCreateSequential()

Status in QEMU:
  New

Bug description:
  UuidCreateSequential() usually creates version 1 UUIDs (1) which means
  they contain the main network card's MAC address. However when using a
  virtio network card and driver the UUIDs contain random data instead
  of the guest's MAC address. Changing the network card to either the
  default rtl8139 one or the e1000 one fixes the issue.

  Here is the software I have tested this with:
   * qemu 1.1.2+dfsg-5 and 1.4.0~rc0+dfsg-1exp (from Debian Testing and 
Experimental respectively)
   * The 0.1-49 and 0.1-52 Windows virtio drivers from 
https://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
   * Both a 32-bit Windows XP guest and a 64-bit Windows 7 one.

  
  Here is how to test for this issue:
  * Set up a Windows guest with a single network card(2), a virtio one and 
install the corresponding driver.

  * Boot the guest and copy the uuidtest.exe file (see attachement) to
  it

  * On the command line, type 'ipconfig /all'. Give you the correct
  network card's MAC address on a line like the one below:

  Physical Address. . . . . . . . . : 52-54-00-C7-0E-97

  * Run uuidtest.exe. It will show the VM returning a UUID with the
  wrong MAC address, and quite possibly even a multicast MAC address!
  (3). In the example below 'f75292c62787' should have been the MAC
  address. Note that on Windows XP UuidCreateSequential() returns
  RPC_S_UUID_LOCAL_ONLY for virtio cards but that on Windows 7 it
  returns 0.

  UuidCreateSequential() returned 0
  uuid={56e1ffe4-71d8-11e2-b1cc-f75292c62787}
  Got a version 1 UUID
  The UUID does not contain a non-multicast MAC address

  * Reboot and notice uuidtest.exe now reports a different value where
  the MAC address should be.

  * Shut down the VM and switch the network card to rtl8139, install the
  drivers, run uuidtest.exe and notice that the last group of digits
  finally contains the correct MAC address.

  
  (1) https://en.wikipedia.org/wiki/Globally_unique_identifier#Algorithm
  (2) Best do it with a single card to avoid confusion over which is the 
primary one.
  (3) If the first byte of the address is odd then this is a multicast address.
  https://en.wikipedia.org/wiki/MAC_address#Address_details

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1119281/+subsc

[Qemu-devel] [Bug 1119686] [NEW] Incorrect handling of icebp

2013-02-08 Thread Francois Gouget
Public bug reported:

Wine conformance suite tests the behavior of various low-level Windows
API functions. One of the tests involves checking the interaction of
breakpoints and exceptions, and in particular the 'icebp' breakpoint.
This test works on a Windows XP machine running either on the metal or
in VMware ESX but fails when run in QEmu.

To reproduce the issue grab the attached 'exception.exe' file and run
it. If you get 'Test failed' lines like below then it means the problem
is still present:

exception.c:202: exception 0: 8004 flags:0 addr:003F
exception.c:208: Test failed: 0: Wrong exception address 003F/003F0001
exception.c:214: this is the last test seen before the exception
exception: unhandled exception 8004 at 003F
exception.c:202: exception 0: c027 flags:2 addr:7C80E0B9
exception.c:205: Test failed: 0: Wrong exception code c027/8004
exception.c:208: Test failed: 0: Wrong exception address 7C80E0B9/003F0001

Note that this bug was not present in QEmu 1.1.2+dfsg-5 (Debian Testing)
but is now present in 1.4.0~rc0+dfsg-1exp (Debian Experimental).

** Affects: qemu
 Importance: Undecided
 Status: New

** Attachment added: "Test executable and source"
   
https://bugs.launchpad.net/bugs/1119686/+attachment/3521163/+files/exception.tar.bz2

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1119686

Title:
  Incorrect handling of icebp

Status in QEMU:
  New

Bug description:
  Wine conformance suite tests the behavior of various low-level Windows
  API functions. One of the tests involves checking the interaction of
  breakpoints and exceptions, and in particular the 'icebp' breakpoint.
  This test works on a Windows XP machine running either on the metal or
  in VMware ESX but fails when run in QEmu.

  To reproduce the issue grab the attached 'exception.exe' file and run
  it. If you get 'Test failed' lines like below then it means the
  problem is still present:

  exception.c:202: exception 0: 8004 flags:0 addr:003F
  exception.c:208: Test failed: 0: Wrong exception address 003F/003F0001
  exception.c:214: this is the last test seen before the exception
  exception: unhandled exception 8004 at 003F
  exception.c:202: exception 0: c027 flags:2 addr:7C80E0B9
  exception.c:205: Test failed: 0: Wrong exception code c027/8004
  exception.c:208: Test failed: 0: Wrong exception address 7C80E0B9/003F0001

  Note that this bug was not present in QEmu 1.1.2+dfsg-5 (Debian
  Testing) but is now present in 1.4.0~rc0+dfsg-1exp (Debian
  Experimental).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1119686/+subscriptions



[Qemu-devel] [Bug 1119861] [NEW] Poor console performance in Windows 7

2013-02-08 Thread Francois Gouget
Public bug reported:

As part of its conformance test suite, Wine tests the behavior of the
Windows console API. Part of this test involves opening a test console
and scrolling things around. The test probably does not need to perform
that many scroll operations to achieve its goal. However as is it
illustrates a significant performance issue in QEmu. Unfortunately it
does so by timing out (the tests must run in less than 2 minutes). Here
are the run times on a few configurations:

 10s - QEmu 1.4 + Q9450@2.6GHz + Windows XP + QXL + QXL driver
  8s - QEmu 1.12 + Opteron 6128 + Windows XP + QXL + QXL driver
127s - QEmu 1.12 + Opteron 6128 + Windows 7 + cirrus + vga driver
127s - QEmu 1.12 + Opteron 6128 + Windows 7 + QXL + QXL driver
147s - QEmu 1.12 + Opteron 6128 + Windows 7 + vmvga + vga driver
145s - QEmu 1.12 + Opteron 6128 + Windows 7 + vmvga + vmware driver (xpdm, no 
better with all graphics effects disabled)

 10s - Metal + Atom N270 + Windows XP + GMA 950 + Intel driver
  6s - Metal + i5-3317U + Windows 8 + HD4000 + Intel driver
  3s - VMware + Q9450@2.6GHz + Windows XP + vmvga + vmware driver
 65s - VMware + Q9450@2.6GHz + Windows 7 + vmvga + vmware driver

So when running on the bare metal all versions of Windows are about as
fast. However in QEmu Windows 7 is almost 16 times slower than Windows
XP! VMware is impacted too but it's still maintains a good lead in
performance.

Disabling all graphics effects did not help so it's not clear that the
fault lies with Windows 7's compositing desktop window manager. Maybe it
has to do with the lack of a proper wddm driver?

** Affects: qemu
 Importance: Undecided
 Status: New

** Attachment added: "Test executable and source"
   
https://bugs.launchpad.net/bugs/1119861/+attachment/3521476/+files/console.tar.bz2

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1119861

Title:
  Poor console performance in Windows 7

Status in QEMU:
  New

Bug description:
  As part of its conformance test suite, Wine tests the behavior of the
  Windows console API. Part of this test involves opening a test console
  and scrolling things around. The test probably does not need to
  perform that many scroll operations to achieve its goal. However as is
  it illustrates a significant performance issue in QEmu. Unfortunately
  it does so by timing out (the tests must run in less than 2 minutes).
  Here are the run times on a few configurations:

   10s - QEmu 1.4 + Q9450@2.6GHz + Windows XP + QXL + QXL driver
8s - QEmu 1.12 + Opteron 6128 + Windows XP + QXL + QXL driver
  127s - QEmu 1.12 + Opteron 6128 + Windows 7 + cirrus + vga driver
  127s - QEmu 1.12 + Opteron 6128 + Windows 7 + QXL + QXL driver
  147s - QEmu 1.12 + Opteron 6128 + Windows 7 + vmvga + vga driver
  145s - QEmu 1.12 + Opteron 6128 + Windows 7 + vmvga + vmware driver (xpdm, no 
better with all graphics effects disabled)

   10s - Metal + Atom N270 + Windows XP + GMA 950 + Intel driver
6s - Metal + i5-3317U + Windows 8 + HD4000 + Intel driver
3s - VMware + Q9450@2.6GHz + Windows XP + vmvga + vmware driver
   65s - VMware + Q9450@2.6GHz + Windows 7 + vmvga + vmware driver

  So when running on the bare metal all versions of Windows are about as
  fast. However in QEmu Windows 7 is almost 16 times slower than Windows
  XP! VMware is impacted too but it's still maintains a good lead in
  performance.

  Disabling all graphics effects did not help so it's not clear that the
  fault lies with Windows 7's compositing desktop window manager. Maybe
  it has to do with the lack of a proper wddm driver?

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1119861/+subscriptions



[Qemu-devel] [Bug 1123975] [NEW] QEmu 1.3.90 cannot restore a 1.1.2 live snapshot

2013-02-13 Thread Francois Gouget
Public bug reported:

I have upgraded to QEmu 1.3.90 (Debian 1.4.0~rc0+dfsg-1exp) but now when
I try to restore a live snapshot made in QEmu 1.1.2 (Debian
1.1.2+dfsg-5) I get the following message:

virsh # snapshot-revert fgtbbuild wtb
error: operation failed: Error -22 while loading VM state

I have test VMs with live snapshots coreresponding to different testing
configurations. So I typically revert the VMs in one of the live
snapshots and run the tests. It would be pretty annoying to have to
recreate all these live snapshots any time I upgrade QEmu.


ipxe-qemu  1.0.0+git-20120202.f6840ba-3
qemu   1.4.0~rc0+dfsg-1exp
qemu-keymaps   1.4.0~rc0+dfsg-1exp
qemu-kvm   1.4.0~rc0+dfsg-1exp
qemu-system1.4.0~rc0+dfsg-1exp
qemu-system-arm1.4.0~rc0+dfsg-1exp
qemu-system-common 1.4.0~rc0+dfsg-1exp
qemu-system-mips   1.4.0~rc0+dfsg-1exp
qemu-system-misc   1.4.0~rc0+dfsg-1exp
qemu-system-ppc1.4.0~rc0+dfsg-1exp
qemu-system-sparc  1.4.0~rc0+dfsg-1exp
qemu-system-x861.4.0~rc0+dfsg-1exp
qemu-user  1.4.0~rc0+dfsg-1exp
qemu-utils 1.4.0~rc0+dfsg-1exp
libvirt-bin1.0.2-1
libvirt-dev1.0.2-1
libvirt-doc1.0.2-1
libvirt-glib-1.0-0 0.1.2-1
libvirt0   1.0.2-1
libvirtodbc0   6.1.4+dfsg1-5

** Affects: qemu
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1123975

Title:
  QEmu 1.3.90 cannot restore a 1.1.2 live snapshot

Status in QEMU:
  New

Bug description:
  I have upgraded to QEmu 1.3.90 (Debian 1.4.0~rc0+dfsg-1exp) but now
  when I try to restore a live snapshot made in QEmu 1.1.2 (Debian
  1.1.2+dfsg-5) I get the following message:

  virsh # snapshot-revert fgtbbuild wtb
  error: operation failed: Error -22 while loading VM state

  I have test VMs with live snapshots coreresponding to different
  testing configurations. So I typically revert the VMs in one of the
  live snapshots and run the tests. It would be pretty annoying to have
  to recreate all these live snapshots any time I upgrade QEmu.

  
  ipxe-qemu  1.0.0+git-20120202.f6840ba-3
  qemu   1.4.0~rc0+dfsg-1exp
  qemu-keymaps   1.4.0~rc0+dfsg-1exp
  qemu-kvm   1.4.0~rc0+dfsg-1exp
  qemu-system1.4.0~rc0+dfsg-1exp
  qemu-system-arm1.4.0~rc0+dfsg-1exp
  qemu-system-common 1.4.0~rc0+dfsg-1exp
  qemu-system-mips   1.4.0~rc0+dfsg-1exp
  qemu-system-misc   1.4.0~rc0+dfsg-1exp
  qemu-system-ppc1.4.0~rc0+dfsg-1exp
  qemu-system-sparc  1.4.0~rc0+dfsg-1exp
  qemu-system-x861.4.0~rc0+dfsg-1exp
  qemu-user  1.4.0~rc0+dfsg-1exp
  qemu-utils 1.4.0~rc0+dfsg-1exp
  libvirt-bin1.0.2-1
  libvirt-dev1.0.2-1
  libvirt-doc1.0.2-1
  libvirt-glib-1.0-0 0.1.2-1
  libvirt0   1.0.2-1
  libvirtodbc0   6.1.4+dfsg1-5

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1123975/+subscriptions



[Qemu-devel] [Bug 1123975] Re: QEmu 1.3.90 cannot restore a 1.1.2 live snapshot

2013-02-16 Thread Francois Gouget
> And one more thing -- from what to what are you trying to migrate?

I believe kvm is being used in both cases, though the command is
different with QEmu 1.3.90. I have redone tests where I kept libvirt set
to 1.0.2 and only switched between QEmu 1.1.2 and 1.3.90 to minimize the
changes. So here the only difference is 'apt-get install -t experimental
qemu'.

Here is what 'ps aux' shows me:

libvirt 1.0.2-2 + QEmu 1.1.2

127  12841 92.7  4.6 1078272 189128 ?  Sl   00:45  10:46
/usr/bin/kvm -name fgtbwinxp -S -M pc-1.1 -cpu
Penryn,+pdcm,+xtpr,+tm2,+est,+smx,+vmx,+ds_cpl,+monitor,+dtes64,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme
-enable-kvm -m 768 -smp 2,sockets=2,cores=1,threads=1 -uuid e624f2c9
-80fd-26c7-a38a-0f0e49b6b719 -no-user-config -nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/fgtbwinxp.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime
-no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
file=/mnt/storage1/qemu/fgtbwinxp.img,if=none,id=drive-
ide0-0-0,format=qcow2,cache=writeback -device ide-
hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive
if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-
cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev
tap,fd=23,id=hostnet0 -device
rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:c7:0e:97,bus=pci.0,addr=0x3
-chardev pty,id=charserial0 -device isa-
serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc
127.0.0.1:0 -vga vmware -device intel-hda,id=sound0,bus=pci.0,addr=0x4
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-
balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -loadvm wtb

With libvirt 1.0.2-2 + QEmu 1.3.90
127  18709 39.7  0.8 1075732 35304 ?   Sl   01:39   0:05 
qemu-system-x86_64 -machine accel=kvm:tcg -name fgtbwinxp -S -M pc-1.1 -cpu 
Penryn,+pdcm,+xtpr,+tm2,+est,+smx,+vmx,+ds_cpl,+monitor,+dtes64,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme
 -m 768 -smp 2,sockets=2,cores=1,threads=1 -uuid 
e624f2c9-80fd-26c7-a38a-0f0e49b6b719 -no-user-config -nodefaults -chardev 
socket,id=charmonitor,path=/var/lib/libvirt/qemu/fgtbwinxp.monitor,server,nowait
 -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime 
-no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive 
file=/mnt/storage1/qemu/fgtbwinxp.img,if=none,id=drive-ide0-0-0,format=qcow2,cache=writeback
 -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 
-drive if=none,id=drive-ide0-1-0,readonly=on,format=raw -device 
ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev 
tap,fd=23,id=hostnet0 -device 
rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:c7:0e:97,bus=pci.0,addr=0x3 
-chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 
-device usb-tablet,id=input0 -vnc 127.0.0.1:0 -vga vmware -device 
intel-hda,id=sound0,bus=pci.0,addr=0x4 -device 
hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device 
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -loadvm wtb


There's a wrinkle I missed in my original report: the behavior is different 
depending on whether the VM is already running or not.

$ virsh --connect qemu:///system destroy fgtbwinxp
$ virsh --connect qemu:///system snapshot-revert fgtbwinxp wtb;echo $?
0
# This command looks like it succeeds but in fact I see the VM booting Windows. 
So either the live state was not restored at all or it crashed before 
virt-viewer could connect.
$ virsh --connect qemu:///system snapshot-revert fgtbwinxp wtb;echo $?
error: operation failed: Error -22 while loading VM state
1


> But at any rate, I never recommended any sort of cross-version migration
> as in practice, despite countless efforts spent to make it to work, it
> almost always does NOT work.

Ouch. I expect to end up with about 50 live snapshots. It would be
pretty annoying to have to redo all of them every time I upgrade QEmu /
KVM :-(

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1123975

Title:
  QEmu 1.3.90 cannot restore a 1.1.2 live snapshot

Status in QEMU:
  New

Bug description:
  I have upgraded to QEmu 1.3.90 (Debian 1.4.0~rc0+dfsg-1exp) but now
  when I try to restore a live snapshot made in QEmu 1.1.2 (Debian
  1.1.2+dfsg-5) I get the following message:

  virsh # snapshot-revert fgtbbuild wtb
  error: operation failed: Error -22 while loading VM state

  I have test VMs with live snapshots coreresponding to different
  testing configurations. So I typically revert the VMs in one of the
  live snapshots and run the tests. It would be pretty annoying to have
  to recreate all these live snapshots any time I upgrade QEmu.

  
  ipxe-qemu  1.0.0+git-20120202.f6840ba-3
  qemu   1.4.0~rc0+dfsg-1exp
  qemu-keymaps   1.4.0~rc0+dfsg-1exp
  qemu-kvm   1.4

[Qemu-devel] [Bug 1259499] Re: QEmu 1.7.0 cannot restore a 1.6.0 live snapshot made in qemu-system-x86_64

2013-12-23 Thread Francois Gouget
Thanks for digging into this.
I am indeed getting the same ramblock error. So it's good that there appears to 
be a fix for it.
Also if I understand it correctly this particular issue only affects the 1.6.0 
snapshots so given that most of my snapshots are still on 1.3.x a direct 
upgrade to 1.7+ will hopefully let me avoid the issue.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1259499

Title:
  QEmu 1.7.0 cannot restore a 1.6.0 live snapshot made in qemu-system-
  x86_64

Status in QEMU:
  Confirmed

Bug description:
  I have upgraded to QEmu 1.7.0 (Debian 1.7.0+dfsg-2) but now when I try
  to restore a live snapshot made in QEmu 1.6.0 (Debian 1.6.0+dfsg-1) I
  see that the VM boots from scratch instead of starting directly in the
  snapshot's running state.

  Furthermore if the VM is already running and I try to revert to the
  snapshot again I get the following message:

  $ virsh --connect qemu:///system snapshot-revert fgtbbuild wtb; echo $?
  error: operation failed: Error -22 while loading VM state
  1

  I have test VMs with live snapshots corresponding to different testing
  configurations. So I typically revert the VMs in one of the live
  snapshots and run the tests. It would be pretty annoying to have to
  recreate all these live snapshots any time I upgrade QEmu bug it looks
  like I'll have to do it again.

  This all sounds very much like bug 1123975 where QEmu 1.3 broke
  compatibility with previous versions live snapshots :-(

  Here is the command being run by libvirt:

  /usr/bin/qemu-system-x86_64 -name fgtbbuild -S -machine
  pc-1.1,accel=kvm,usb=off -m 512 -realtime mlock=off -smp
  4,sockets=4,cores=1,threads=1 -uuid f510955c-
  17de-9907-1e33-dfe1ef7a08b6 -no-user-config -nodefaults -chardev
  
socket,id=charmonitor,path=/var/lib/libvirt/qemu/fgtbbuild.monitor,server,nowait
  -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-
  shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
  file=/mnt/storage1/qemu/fgtbbuild.qcow2,if=none,id=drive-virtio-
  disk0,format=qcow2,cache=writeback -device virtio-blk-
  pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-
  disk0,bootindex=1 -drive if=none,id=drive-
  ide0-0-0,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=0,drive
  =drive-ide0-0-0,id=ide0-0-0 -netdev
  tap,fd=25,id=hostnet0,vhost=on,vhostfd=26 -device virtio-net-
  pci,netdev=hostnet0,id=net0,mac=52:54:00:0a:3c:e8,bus=pci.0,addr=0x3
  -chardev pty,id=charserial0 -device isa-
  serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0
  -vnc 127.0.0.1:0 -device qxl-
  vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2
  -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-
  duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-
  pci,id=balloon0,bus=pci.0,addr=0x6 -loadvm wtb

  ipxe-qemu 1.0.0+git-20120202.f6840ba-3
  qemu 1.7.0+dfsg-2
  qemu-keymaps 1.7.0+dfsg-2
  qemu-slof 20130430+dfsg-1
  qemu-system 1.7.0+dfsg-2
  qemu-system-arm 1.7.0+dfsg-2
  qemu-system-common 1.7.0+dfsg-2
  qemu-system-mips 1.7.0+dfsg-2
  qemu-system-misc 1.7.0+dfsg-2
  qemu-system-ppc 1.7.0+dfsg-2
  qemu-system-sparc 1.7.0+dfsg-2
  qemu-system-x86 1.7.0+dfsg-2
  qemu-user 1.7.0+dfsg-2
  qemu-utils 1.7.0+dfsg-2
  libvirt-bin 1.1.4-2
  libvirt0 1.1.4-2
  libvirtodbc0 6.1.6+dfsg-4

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1259499/+subscriptions



[Qemu-devel] [Bug 1259499] [NEW] QEmu 1.7.0 cannot restore a 1.6.0 live snapshot made in qemu-system-x86_64

2013-12-10 Thread Francois Gouget
Public bug reported:

I have upgraded to QEmu 1.7.0 (Debian 1.7.0+dfsg-2) but now when I try
to restore a live snapshot made in QEmu 1.6.0 (Debian 1.6.0+dfsg-1) I
see that the VM boots from scratch instead of starting directly in the
snapshot's running state.

Furthermore if the VM is already running and I try to revert to the
snapshot again I get the following message:

$ virsh --connect qemu:///system snapshot-revert fgtbbuild wtb; echo $?
error: operation failed: Error -22 while loading VM state
1

I have test VMs with live snapshots corresponding to different testing
configurations. So I typically revert the VMs in one of the live
snapshots and run the tests. It would be pretty annoying to have to
recreate all these live snapshots any time I upgrade QEmu bug it looks
like I'll have to do it again.

This all sounds very much like bug 1123975 where QEmu 1.3 broke
compatibility with previous versions live snapshots :-(

Here is the command being run by libvirt:

/usr/bin/qemu-system-x86_64 -name fgtbbuild -S -machine
pc-1.1,accel=kvm,usb=off -m 512 -realtime mlock=off -smp
4,sockets=4,cores=1,threads=1 -uuid f510955c-17de-9907-1e33-dfe1ef7a08b6
-no-user-config -nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/fgtbbuild.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-
shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
file=/mnt/storage1/qemu/fgtbbuild.qcow2,if=none,id=drive-virtio-
disk0,format=qcow2,cache=writeback -device virtio-blk-
pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-
disk0,bootindex=1 -drive if=none,id=drive-
ide0-0-0,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=0,drive
=drive-ide0-0-0,id=ide0-0-0 -netdev
tap,fd=25,id=hostnet0,vhost=on,vhostfd=26 -device virtio-net-
pci,netdev=hostnet0,id=net0,mac=52:54:00:0a:3c:e8,bus=pci.0,addr=0x3
-chardev pty,id=charserial0 -device isa-
serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc
127.0.0.1:0 -device qxl-
vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2
-device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-
duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-
pci,id=balloon0,bus=pci.0,addr=0x6 -loadvm wtb

ipxe-qemu 1.0.0+git-20120202.f6840ba-3
qemu 1.7.0+dfsg-2
qemu-keymaps 1.7.0+dfsg-2
qemu-slof 20130430+dfsg-1
qemu-system 1.7.0+dfsg-2
qemu-system-arm 1.7.0+dfsg-2
qemu-system-common 1.7.0+dfsg-2
qemu-system-mips 1.7.0+dfsg-2
qemu-system-misc 1.7.0+dfsg-2
qemu-system-ppc 1.7.0+dfsg-2
qemu-system-sparc 1.7.0+dfsg-2
qemu-system-x86 1.7.0+dfsg-2
qemu-user 1.7.0+dfsg-2
qemu-utils 1.7.0+dfsg-2
libvirt-bin 1.1.4-2
libvirt0 1.1.4-2
libvirtodbc0 6.1.6+dfsg-4

** Affects: qemu
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1259499

Title:
  QEmu 1.7.0 cannot restore a 1.6.0 live snapshot made in qemu-system-
  x86_64

Status in QEMU:
  New

Bug description:
  I have upgraded to QEmu 1.7.0 (Debian 1.7.0+dfsg-2) but now when I try
  to restore a live snapshot made in QEmu 1.6.0 (Debian 1.6.0+dfsg-1) I
  see that the VM boots from scratch instead of starting directly in the
  snapshot's running state.

  Furthermore if the VM is already running and I try to revert to the
  snapshot again I get the following message:

  $ virsh --connect qemu:///system snapshot-revert fgtbbuild wtb; echo $?
  error: operation failed: Error -22 while loading VM state
  1

  I have test VMs with live snapshots corresponding to different testing
  configurations. So I typically revert the VMs in one of the live
  snapshots and run the tests. It would be pretty annoying to have to
  recreate all these live snapshots any time I upgrade QEmu bug it looks
  like I'll have to do it again.

  This all sounds very much like bug 1123975 where QEmu 1.3 broke
  compatibility with previous versions live snapshots :-(

  Here is the command being run by libvirt:

  /usr/bin/qemu-system-x86_64 -name fgtbbuild -S -machine
  pc-1.1,accel=kvm,usb=off -m 512 -realtime mlock=off -smp
  4,sockets=4,cores=1,threads=1 -uuid f510955c-
  17de-9907-1e33-dfe1ef7a08b6 -no-user-config -nodefaults -chardev
  
socket,id=charmonitor,path=/var/lib/libvirt/qemu/fgtbbuild.monitor,server,nowait
  -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-
  shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive
  file=/mnt/storage1/qemu/fgtbbuild.qcow2,if=none,id=drive-virtio-
  disk0,format=qcow2,cache=writeback -device virtio-blk-
  pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-
  disk0,bootindex=1 -drive if=none,id=drive-
  ide0-0-0,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=0,drive
  =drive-ide0-0-0,id=ide0-0-0 -netdev
  tap,fd=25,id=hostnet0,vhost=on,vhostfd=26 -device virtio-net-
  pci,netdev=hostnet0,id=net0,mac=52:54:00:0a:3c:e8,bus=pci.0,addr=

[Qemu-devel] [Bug 1119281] Re: The virtio network device breaks UuidCreateSequential()

2013-10-28 Thread Francois Gouget
This bug is still present in QEM 1.6.0 (qemu-system-x86 1.6.0+dfsg-1)
and/or Virtio 0.1-65.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1119281

Title:
  The virtio network device breaks UuidCreateSequential()

Status in QEMU:
  New

Bug description:
  UuidCreateSequential() usually creates version 1 UUIDs (1) which means
  they contain the main network card's MAC address. However when using a
  virtio network card and driver the UUIDs contain random data instead
  of the guest's MAC address. Changing the network card to either the
  default rtl8139 one or the e1000 one fixes the issue.

  Here is the software I have tested this with:
   * qemu 1.1.2+dfsg-5 and 1.4.0~rc0+dfsg-1exp (from Debian Testing and 
Experimental respectively)
   * The 0.1-49 and 0.1-52 Windows virtio drivers from 
https://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
   * Both a 32-bit Windows XP guest and a 64-bit Windows 7 one.

  
  Here is how to test for this issue:
  * Set up a Windows guest with a single network card(2), a virtio one and 
install the corresponding driver.

  * Boot the guest and copy the uuidtest.exe file (see attachement) to
  it

  * On the command line, type 'ipconfig /all'. Give you the correct
  network card's MAC address on a line like the one below:

  Physical Address. . . . . . . . . : 52-54-00-C7-0E-97

  * Run uuidtest.exe. It will show the VM returning a UUID with the
  wrong MAC address, and quite possibly even a multicast MAC address!
  (3). In the example below 'f75292c62787' should have been the MAC
  address. Note that on Windows XP UuidCreateSequential() returns
  RPC_S_UUID_LOCAL_ONLY for virtio cards but that on Windows 7 it
  returns 0.

  UuidCreateSequential() returned 0
  uuid={56e1ffe4-71d8-11e2-b1cc-f75292c62787}
  Got a version 1 UUID
  The UUID does not contain a non-multicast MAC address

  * Reboot and notice uuidtest.exe now reports a different value where
  the MAC address should be.

  * Shut down the VM and switch the network card to rtl8139, install the
  drivers, run uuidtest.exe and notice that the last group of digits
  finally contains the correct MAC address.

  
  (1) https://en.wikipedia.org/wiki/Globally_unique_identifier#Algorithm
  (2) Best do it with a single card to avoid confusion over which is the 
primary one.
  (3) If the first byte of the address is odd then this is a multicast address.
  https://en.wikipedia.org/wiki/MAC_address#Address_details

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1119281/+subscriptions



[Qemu-devel] [Bug 1119686] Re: Incorrect handling of icebp

2013-10-28 Thread Francois Gouget
This bug is still present in QEMU 1.6.0 (as per Debian's qemu-system-x86
1.6.0+dfsg-1 package).

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1119686

Title:
  Incorrect handling of icebp

Status in QEMU:
  New

Bug description:
  Wine conformance suite tests the behavior of various low-level Windows
  API functions. One of the tests involves checking the interaction of
  breakpoints and exceptions, and in particular the 'icebp' breakpoint.
  This test works on a Windows XP machine running either on the metal or
  in VMware ESX but fails when run in QEmu.

  To reproduce the issue grab the attached 'exception.exe' file and run
  it. If you get 'Test failed' lines like below then it means the
  problem is still present:

  exception.c:202: exception 0: 8004 flags:0 addr:003F
  exception.c:208: Test failed: 0: Wrong exception address 003F/003F0001
  exception.c:214: this is the last test seen before the exception
  exception: unhandled exception 8004 at 003F
  exception.c:202: exception 0: c027 flags:2 addr:7C80E0B9
  exception.c:205: Test failed: 0: Wrong exception code c027/8004
  exception.c:208: Test failed: 0: Wrong exception address 7C80E0B9/003F0001

  Note that this bug was not present in QEmu 1.1.2+dfsg-5 (Debian
  Testing) but is now present in 1.4.0~rc0+dfsg-1exp (Debian
  Experimental).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1119686/+subscriptions



[Qemu-devel] [Bug 1119686] Re: Incorrect handling of icebp

2014-03-18 Thread Francois Gouget
This bug is still present in QEMU 1.7.0 (as per Debian's qemu-system-x86
1.7.0+dfsg-3 package).

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1119686

Title:
  Incorrect handling of icebp

Status in QEMU:
  New

Bug description:
  Wine conformance suite tests the behavior of various low-level Windows
  API functions. One of the tests involves checking the interaction of
  breakpoints and exceptions, and in particular the 'icebp' breakpoint.
  This test works on a Windows XP machine running either on the metal or
  in VMware ESX but fails when run in QEmu.

  To reproduce the issue grab the attached 'exception.exe' file and run
  it. If you get 'Test failed' lines like below then it means the
  problem is still present:

  exception.c:202: exception 0: 8004 flags:0 addr:003F
  exception.c:208: Test failed: 0: Wrong exception address 003F/003F0001
  exception.c:214: this is the last test seen before the exception
  exception: unhandled exception 8004 at 003F
  exception.c:202: exception 0: c027 flags:2 addr:7C80E0B9
  exception.c:205: Test failed: 0: Wrong exception code c027/8004
  exception.c:208: Test failed: 0: Wrong exception address 7C80E0B9/003F0001

  Note that this bug was not present in QEmu 1.1.2+dfsg-5 (Debian
  Testing) but is now present in 1.4.0~rc0+dfsg-1exp (Debian
  Experimental).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1119686/+subscriptions



[Qemu-devel] [Bug 1499908] [NEW] hda sound capture broken with VNC

2015-09-25 Thread Francois Gouget
Public bug reported:

QEmu is being used to run the Wine conformance tests in Windows virtual
machines. Wine's conformance tests check the behavior of various Windows
APIs and verify that they behave as expected. One of the tests checks
the behavior of the mmdevapi sound capture APIs. This test works fine on
real hardware and also works fine in various QEmu VMs but fails in some
others. Further investigation showed that:

 * The mmdevapi:capture tests work on the two Vista VMs. Those use the
ac97 sound card and are configured for VNC access to the VM.

 * The mmdevapi:capture tests fail in the Windows 7+ VMs. Those use an
hda sound card and are configured for VNC access to the VM (so '-device
intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-
duplex,id=sound0-codec0,bus=sound0.0,cad=0' and '-vnc 127.0.0.1:0').

 * Furthermore configuring the VM for Spice access fixes the
mmdevapi:capture test (so replacing -vnc with '-spice
port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on'), this
even if no client connects to the VM.

So in effect the -spice and -vnc options change the behavior of the
sound device.

To reproduce this bug:
1. Set up a Windows 7+ VM with an hda sound card ('ich6' in libvirt).
2. Set it up for access using VNC.
3. Copy the attached mmdevapi_test.exe file to it. (*)
4. Run the tests as follows:
   mmdevapi_test.exe capture

If you see these 'Test Failed' lines then the bug is still present:

capture.c:586: Returned latency: 5.8050 ms
capture.c:178: Test failed: Position 1015 expected 0
capture.c:186: Wait'ed position 1015 pad 0 flags 1, amount of frames locked: 448
capture.c:228: Test failed: Position 2167 expected 1463
capture.c:248: Sleep.1 position 2167 pad 4032 flags 1, amount of frames locked: 
448
capture.c:256: Test failed: Position 2167 expected 1463
capture.c:292: GetBufferSize 21996 period size 448
capture.c:302: Overrun position 4215 pad 8960 flags 1, amount of frames locked: 
448
capture.c:308: Test failed: GCP 8960 vs. BufferSize 21996
capture.c:313: Test failed: Position 4215 gap 2304
capture.c:329: Cont'ed position 5303 pad 8512 flags 1, amount of frames locked: 
448
capture.c:333: Test failed: Position 5303 expected 4663
capture.c:334: Test failed: flags 1
capture.c:353: Restart position 7351 pad 8064 flags 1, amount of frames locked: 
448
capture.c:358: Test failed: Position 7351 expected 5111
capture.c:359: Test failed: flags 1

In case it helps, here is the source of mmdevapi_test.exe:
https://source.winehq.org/git/wine.git/?a=blob;f=dlls/mmdevapi/tests/capture.c;hb=60d1d6f5952e8b5d6fb0327a28c047058851fa70#l178


So far I have confirmed that this bug is present in QEmu as shipped in the 
following Debian packages:
 * qemu-kvm + qemu-system-x86 1:2.1+dfsg-12+deb8u2 + linux-image-3.16.0-4-amd64 
3.16.7-ckt11-1+deb8u3
 * qemu-system-x86 1:2.3+dfsg-6a + linux-image-4.1.0-1-amd64 4.1.3-1


(*) As alternatives to using the attached binary you can:
- Compile it from Wine's source. See:
   https://source.winehq.org/git/wine.git/

- Or download the latest WineTest binary from 
https://test.winehq.org/builds/winetest-latest.exe
   And extract the mmdevapi_test.exe from there:
   winetest.exe -x tests
   tests\mmdevapi_test.exe capture

** Affects: qemu
 Importance: Undecided
 Status: New

** Attachment added: "A test executable to reproduce the bug"
   
https://bugs.launchpad.net/bugs/1499908/+attachment/4474932/+files/mmdevapi_test.zip

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1499908

Title:
  hda sound capture broken with VNC

Status in QEMU:
  New

Bug description:
  QEmu is being used to run the Wine conformance tests in Windows
  virtual machines. Wine's conformance tests check the behavior of
  various Windows APIs and verify that they behave as expected. One of
  the tests checks the behavior of the mmdevapi sound capture APIs. This
  test works fine on real hardware and also works fine in various QEmu
  VMs but fails in some others. Further investigation showed that:

   * The mmdevapi:capture tests work on the two Vista VMs. Those use the
  ac97 sound card and are configured for VNC access to the VM.

   * The mmdevapi:capture tests fail in the Windows 7+ VMs. Those use an
  hda sound card and are configured for VNC access to the VM (so
  '-device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-
  duplex,id=sound0-codec0,bus=sound0.0,cad=0' and '-vnc 127.0.0.1:0').

   * Furthermore configuring the VM for Spice access fixes the
  mmdevapi:capture test (so replacing -vnc with '-spice
  port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on'),
  this even if no client connects to the VM.

  So in effect the -spice and -vnc options change the behavior of the
  sound device.

  To reproduce this bug:
  1. Set up a Windows 7+ VM with an hda sound card ('ich6' in libvirt).
  2. Set it up for access using VNC.
  3. Copy the attached mmdeva

[Qemu-devel] [Bug 1505041] [NEW] Live snapshot revert times increases linearly with snapshot age

2015-10-11 Thread Francois Gouget
Public bug reported:

The WineTestBot (https://testbot.winehq.org/) uses QEmu live snapshots
to ensure the Wine tests are always run in a pristine Windows
environment. However the revert times keep increasing linearly with the
age of the snapshot, going from tens of seconds to thousands. While the
revert takes place the qemu process takes 100% of a core and there is no
disk activity. Obviously waiting over 20 minutes before being able to
run a 10 second test is not viable.

Only some VMs are impacted. Based on libvirt's XML files the common
point appears to be the presence of the following  tags:


  
  
  


Where the unaffected VMs have the following clock definition instead:



Yet shutting down the affected VMs, changing the clock definition,
creating a live snapshot and trying to revert to it 6 months later
results in slow revert times (>400 seconds).

Changing the tickpolicy to catchup for rtc and/or pit has no effect on
the revert time (and unsurprisingly causes the clock to run fast in the
guest).


To reproduce this problem do the following:
* Create a Windows VM (either 32 or 64 bits). This is known to happen with at 
least Windows 2000, XP, 2003, 2008 and 10.
* That VM will have the  tags shown above, with the possible addition of 
an hypervclock timer.
* Shut down the VM.
* date -s "2014/04/01"
* Start the VM.
* Take a live snapshot.
* Shut down the VM.
* date -s ""
* Revert to the live snapshot.

If the revert takes more than 2 minutes then there is a problem.


A workaround is to set track='guest' on the rtc timer. This makes the revert 
fast and may even be the correct solution. But why is it not the default or 
better documented?
 * It setting track='wall' or omitting track, then the revert is slow and the 
clock in the guest is not updated.
 * It setting track='guest' the revert is fast and the clock in the guest is 
not updated.


I found three past mentions of this issue but as far as I can tell none of them 
got anywhere:

* [Qemu-discuss] massive slowdown for reverts after given amount of time on any 
newer versions
   https://lists.gnu.org/archive/html/qemu-discuss/2013-02/msg0.html

* The above post references another one from 2011 wrt qemu 0.14:
   https://lists.gnu.org/archive/html/qemu-devel/2011-03/msg02645.html

* Comment #9 of Launchpad bug 1174654 matches this slow revert issue. However
   the bug was really about another issue so this was not followed on.
   https://bugs.launchpad.net/qemu/+bug/1174654/comments/9


I'm currently running into this issue with QEmu 2.1 but it looks like this bug 
has been there all along.
1:2.1+dfsg-12+deb8u2 qemu-kvm
1:2.1+dfsg-12+deb8u2 qemu-system-common
1:2.1+dfsg-12+deb8u2 qemu-system-x86

** Affects: qemu
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1505041

Title:
  Live snapshot revert times increases linearly with snapshot age

Status in QEMU:
  New

Bug description:
  The WineTestBot (https://testbot.winehq.org/) uses QEmu live snapshots
  to ensure the Wine tests are always run in a pristine Windows
  environment. However the revert times keep increasing linearly with
  the age of the snapshot, going from tens of seconds to thousands.
  While the revert takes place the qemu process takes 100% of a core and
  there is no disk activity. Obviously waiting over 20 minutes before
  being able to run a 10 second test is not viable.

  Only some VMs are impacted. Based on libvirt's XML files the common
  point appears to be the presence of the following  tags:

  



  

  Where the unaffected VMs have the following clock definition instead:

  

  Yet shutting down the affected VMs, changing the clock definition,
  creating a live snapshot and trying to revert to it 6 months later
  results in slow revert times (>400 seconds).

  Changing the tickpolicy to catchup for rtc and/or pit has no effect on
  the revert time (and unsurprisingly causes the clock to run fast in
  the guest).

  
  To reproduce this problem do the following:
  * Create a Windows VM (either 32 or 64 bits). This is known to happen with at 
least Windows 2000, XP, 2003, 2008 and 10.
  * That VM will have the  tags shown above, with the possible addition 
of an hypervclock timer.
  * Shut down the VM.
  * date -s "2014/04/01"
  * Start the VM.
  * Take a live snapshot.
  * Shut down the VM.
  * date -s ""
  * Revert to the live snapshot.

  If the revert takes more than 2 minutes then there is a problem.

  
  A workaround is to set track='guest' on the rtc timer. This makes the revert 
fast and may even be the correct solution. But why is it not the default or 
better documented?
   * It setting track='wall' or omitting track, then the revert is slow and the 
clock in the guest is not updated.
   * It setting track='guest' the revert is fast and the clock in the 

[Qemu-devel] [Bug 1505041] Re: Live snapshot revert times increases linearly with snapshot age

2015-10-12 Thread Francois Gouget
The timer settings I showed were from a Windows XP VM but a Windows 10
VM I created recently (with qemu 2.1 and libvirt 1.2.9) does have the
hypervclock timer and defaults to tickpolicy='catchup' for rtc but it is
missing the hyperv features you mentioned. I'll investigate those.

I'm wary of tickpolicy='catchup' though. My understanding is that it's
needed for the guest's clock to remain accurate over time. However our
VMs stay up at most 30 minutes before being reverted so I don't think
the clock will have drifted by any amount we care about. Really it can
be off by a few days without impacting the tests.

One nasty effect of tickpolicy='catchup' is that when we revert to our
live snapshot the clock runs 10 times as fast as it tries to catch up to
the current date. That would definitely impact our tests, particularly
around timing sound play times or checking serial baud rates. We
normally manually reset the time from within the guest so maybe that
would stop it from running fast. My other concern is that I'm not sure
trying to compensate for missing ticks is better for our tests than
maintaining the illusion that the VM is running at a normal speed even
if it's in reality running at half real time speed. I feel that for our
tests agreement between the audio, serial card and various timer devices
is more important than staying in sync with the outside world.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1505041

Title:
  Live snapshot revert times increases linearly with snapshot age

Status in QEMU:
  New

Bug description:
  The WineTestBot (https://testbot.winehq.org/) uses QEmu live snapshots
  to ensure the Wine tests are always run in a pristine Windows
  environment. However the revert times keep increasing linearly with
  the age of the snapshot, going from tens of seconds to thousands.
  While the revert takes place the qemu process takes 100% of a core and
  there is no disk activity. Obviously waiting over 20 minutes before
  being able to run a 10 second test is not viable.

  Only some VMs are impacted. Based on libvirt's XML files the common
  point appears to be the presence of the following  tags:

  



  

  Where the unaffected VMs have the following clock definition instead:

  

  Yet shutting down the affected VMs, changing the clock definition,
  creating a live snapshot and trying to revert to it 6 months later
  results in slow revert times (>400 seconds).

  Changing the tickpolicy to catchup for rtc and/or pit has no effect on
  the revert time (and unsurprisingly causes the clock to run fast in
  the guest).

  
  To reproduce this problem do the following:
  * Create a Windows VM (either 32 or 64 bits). This is known to happen with at 
least Windows 2000, XP, 2003, 2008 and 10.
  * That VM will have the  tags shown above, with the possible addition 
of an hypervclock timer.
  * Shut down the VM.
  * date -s "2014/04/01"
  * Start the VM.
  * Take a live snapshot.
  * Shut down the VM.
  * date -s ""
  * Revert to the live snapshot.

  If the revert takes more than 2 minutes then there is a problem.

  
  A workaround is to set track='guest' on the rtc timer. This makes the revert 
fast and may even be the correct solution. But why is it not the default or 
better documented?
   * It setting track='wall' or omitting track, then the revert is slow and the 
clock in the guest is not updated.
   * It setting track='guest' the revert is fast and the clock in the guest is 
not updated.

  
  I found three past mentions of this issue but as far as I can tell none of 
them got anywhere:

  * [Qemu-discuss] massive slowdown for reverts after given amount of time on 
any newer versions
 https://lists.gnu.org/archive/html/qemu-discuss/2013-02/msg0.html

  * The above post references another one from 2011 wrt qemu 0.14:
 https://lists.gnu.org/archive/html/qemu-devel/2011-03/msg02645.html

  * Comment #9 of Launchpad bug 1174654 matches this slow revert issue. However
 the bug was really about another issue so this was not followed on.
 https://bugs.launchpad.net/qemu/+bug/1174654/comments/9

  
  I'm currently running into this issue with QEmu 2.1 but it looks like this 
bug has been there all along.
  1:2.1+dfsg-12+deb8u2 qemu-kvm
  1:2.1+dfsg-12+deb8u2 qemu-system-common
  1:2.1+dfsg-12+deb8u2 qemu-system-x86

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1505041/+subscriptions



[Qemu-devel] [Bug 1174654] Re: qemu-system-x86_64 takes 100% CPU after host machine resumed from suspend to ram

2017-01-19 Thread Francois Gouget
This sounds sort of like a problem I have with reverting to live snapshots.
What I found out is that this is related to restoring the clock in the guest. 
You can find out more about it there:
https://bugs.launchpad.net/qemu/+bug/1505041

The takeaway is that a workaround is to set track='guest' on the rtc
timer. For instance:


  


If you have track='catchup' QEMU seems to try to send millions of
interrupts so the guest clock will catch up to the current time, which
can take minutes during which the guest is unusable.

It is possible this no longer happens though as I have had this
workaround in place for quite some time but nobody formally said this is
fixed or pointed to a commit fixing this.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1174654

Title:
  qemu-system-x86_64 takes 100% CPU after host machine resumed from
  suspend to ram

Status in QEMU:
  Confirmed
Status in qemu package in Ubuntu:
  Invalid

Bug description:
  I have Windows XP SP3  inside qemu VM. All works fine in 12.10. But
  after upgraiding to 13.04 i have to restart the VM each time i
  resuming my host machine, because qemu process starts to take CPU
  cycles and OS inside VM is very slow and sluggish. However it's still
  controllable and could be shutdown by itself.

  According to the taskmgr any active process takes 99% CPU. It's not
  stuck on some single process.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1174654/+subscriptions



[Qemu-devel] [Bug 1505041] Re: Live snapshot revert times increases linearly with snapshot age

2017-01-19 Thread Francois Gouget
See also:
https://bugs.launchpad.net/qemu/+bug/1174654

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1505041

Title:
  Live snapshot revert times increases linearly with snapshot age

Status in QEMU:
  New

Bug description:
  The WineTestBot (https://testbot.winehq.org/) uses QEmu live snapshots
  to ensure the Wine tests are always run in a pristine Windows
  environment. However the revert times keep increasing linearly with
  the age of the snapshot, going from tens of seconds to thousands.
  While the revert takes place the qemu process takes 100% of a core and
  there is no disk activity. Obviously waiting over 20 minutes before
  being able to run a 10 second test is not viable.

  Only some VMs are impacted. Based on libvirt's XML files the common
  point appears to be the presence of the following  tags:

  



  

  Where the unaffected VMs have the following clock definition instead:

  

  Yet shutting down the affected VMs, changing the clock definition,
  creating a live snapshot and trying to revert to it 6 months later
  results in slow revert times (>400 seconds).

  Changing the tickpolicy to catchup for rtc and/or pit has no effect on
  the revert time (and unsurprisingly causes the clock to run fast in
  the guest).

  
  To reproduce this problem do the following:
  * Create a Windows VM (either 32 or 64 bits). This is known to happen with at 
least Windows 2000, XP, 2003, 2008 and 10.
  * That VM will have the  tags shown above, with the possible addition 
of an hypervclock timer.
  * Shut down the VM.
  * date -s "2014/04/01"
  * Start the VM.
  * Take a live snapshot.
  * Shut down the VM.
  * date -s ""
  * Revert to the live snapshot.

  If the revert takes more than 2 minutes then there is a problem.

  
  A workaround is to set track='guest' on the rtc timer. This makes the revert 
fast and may even be the correct solution. But why is it not the default or 
better documented?
   * It setting track='wall' or omitting track, then the revert is slow and the 
clock in the guest is not updated.
   * It setting track='guest' the revert is fast and the clock in the guest is 
not updated.

  
  I found three past mentions of this issue but as far as I can tell none of 
them got anywhere:

  * [Qemu-discuss] massive slowdown for reverts after given amount of time on 
any newer versions
 https://lists.gnu.org/archive/html/qemu-discuss/2013-02/msg0.html

  * The above post references another one from 2011 wrt qemu 0.14:
 https://lists.gnu.org/archive/html/qemu-devel/2011-03/msg02645.html

  * Comment #9 of Launchpad bug 1174654 matches this slow revert issue. However
 the bug was really about another issue so this was not followed on.
 https://bugs.launchpad.net/qemu/+bug/1174654/comments/9

  
  I'm currently running into this issue with QEmu 2.1 but it looks like this 
bug has been there all along.
  1:2.1+dfsg-12+deb8u2 qemu-kvm
  1:2.1+dfsg-12+deb8u2 qemu-system-common
  1:2.1+dfsg-12+deb8u2 qemu-system-x86

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1505041/+subscriptions



[Qemu-devel] [Bug 1658141] [NEW] QEMU's default msrs handling causes Windows 10 64 bit to crash

2017-01-20 Thread Francois Gouget
Public bug reported:

Wine uses QEMU to run its conformance test suite on Windows virtual
machines. Wine's conformance tests check the behavior of various Windows
APIs and verify that they behave as expected.

One such test checks handling of exceptions down. When run on Windows 10 64 bit 
in QEMU it triggers a "KMOD_EXCEPTION_NOT_HANDLED" BSOD in the VM. See:
https://bugs.winehq.org/show_bug.cgi?id=40240


To reproduce this bug:
* Pick a Windows 10 64 bit VM on an Intel host.

* Start the VM. I'm pretty sure any qemu command will do but here's what I used:
  qemu-system-x86_64 -machine pc-i440fx-2.1,accel=kvm -cpu core2duo,+nx -m 2048 
-hda /var/lib/libvirt/images/wtbw1064.qcow2

* Grab the attached source code. The tar file is a bit big at 85KB
because I had to include some Wine headers. However the source file
proper, exception.c, is only 85 lines, including the LGPL header.

* Compile the source code with MinGW by typing 'make'. This produces a
32 bit exception.exe executable. I'll attach it for good measure.

* Put exception.exe on the VM and run it.


After investigation it turns out this happens:
 * Only for Windows 10 64 bit guests. Windows 10 32 bit and older Windows 
versions are unaffected.

 * Only on Intel hosts. At least both my Xeon E3-1226 v3 and i7-4790K
hosts are impacted but not my Opteron 6128 one.

 * It does not seem to depend on the emulated CPU type: on the Intel hosts this 
happened with both 
core2duo,nx and 'copy the host configuration' and did not depend on the number 
of emulated cpus/cores.

 * This happened with both QEMU 2.1 and 2.7, and both the 3.16.0 and
4.8.11 Linux kernels, both on Debian 8.6 and Debian Testing.


After searching for quite some time I discovered that the kvm kernel module was 
sneaking the following messages into /var/log/syslog precisely when the BSOD 
happens:

Dec 16 13:43:48 vm3 kernel: [  191.624802] kvm [2064]: vcpu0, guest rIP: 
0xf803cb3c0bf3 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
Dec 16 13:43:48 vm3 kernel: [  191.624835] kvm [2064]: vcpu0, guest rIP: 
0xf803cb3c0c5c unhandled rdmsr: 0x1c9

A search on the Internet turned up a post suggesting to change kvm's
ignore_msrs setting:

   echo 1 >/sys/module/kvm/parameters/ignore_msrs

https://www.reddit.com/r/VFIO/comments/42dj7n/some_games_crash_to_biosboot_on_launch/

This does actually work and provides a workaround at least.

** Affects: qemu
 Importance: Undecided
 Status: New

** Attachment added: "Source code to reproduce this bug"
   
https://bugs.launchpad.net/bugs/1658141/+attachment/4806829/+files/exception.tar.bz2

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1658141

Title:
  QEMU's default msrs handling causes Windows 10 64 bit to crash

Status in QEMU:
  New

Bug description:
  Wine uses QEMU to run its conformance test suite on Windows virtual
  machines. Wine's conformance tests check the behavior of various
  Windows APIs and verify that they behave as expected.

  One such test checks handling of exceptions down. When run on Windows 10 64 
bit in QEMU it triggers a "KMOD_EXCEPTION_NOT_HANDLED" BSOD in the VM. See:
  https://bugs.winehq.org/show_bug.cgi?id=40240

  
  To reproduce this bug:
  * Pick a Windows 10 64 bit VM on an Intel host.

  * Start the VM. I'm pretty sure any qemu command will do but here's what I 
used:
qemu-system-x86_64 -machine pc-i440fx-2.1,accel=kvm -cpu core2duo,+nx -m 
2048 -hda /var/lib/libvirt/images/wtbw1064.qcow2

  * Grab the attached source code. The tar file is a bit big at 85KB
  because I had to include some Wine headers. However the source file
  proper, exception.c, is only 85 lines, including the LGPL header.

  * Compile the source code with MinGW by typing 'make'. This produces a
  32 bit exception.exe executable. I'll attach it for good measure.

  * Put exception.exe on the VM and run it.

  
  After investigation it turns out this happens:
   * Only for Windows 10 64 bit guests. Windows 10 32 bit and older Windows 
versions are unaffected.

   * Only on Intel hosts. At least both my Xeon E3-1226 v3 and i7-4790K
  hosts are impacted but not my Opteron 6128 one.

   * It does not seem to depend on the emulated CPU type: on the Intel hosts 
this happened with both 
  core2duo,nx and 'copy the host configuration' and did not depend on the 
number of emulated cpus/cores.

   * This happened with both QEMU 2.1 and 2.7, and both the 3.16.0 and
  4.8.11 Linux kernels, both on Debian 8.6 and Debian Testing.

  
  After searching for quite some time I discovered that the kvm kernel module 
was sneaking the following messages into /var/log/syslog precisely when the 
BSOD happens:

  Dec 16 13:43:48 vm3 kernel: [  191.624802] kvm [2064]: vcpu0, guest rIP: 
0xf803cb3c0bf3 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
  Dec 16 13:43:48 vm3 kernel: [  191.624835] kvm [2064]: vcpu0, guest rIP: 
0xf803cb3c0c5c u

[Qemu-devel] [Bug 1658141] Re: QEMU's default msrs handling causes Windows 10 64 bit to crash

2017-01-20 Thread Francois Gouget
** Attachment added: "Executable to reproduce this bug"
   
https://bugs.launchpad.net/qemu/+bug/1658141/+attachment/4806830/+files/exception.exe.bz2

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1658141

Title:
  QEMU's default msrs handling causes Windows 10 64 bit to crash

Status in QEMU:
  New

Bug description:
  Wine uses QEMU to run its conformance test suite on Windows virtual
  machines. Wine's conformance tests check the behavior of various
  Windows APIs and verify that they behave as expected.

  One such test checks handling of exceptions down. When run on Windows 10 64 
bit in QEMU it triggers a "KMOD_EXCEPTION_NOT_HANDLED" BSOD in the VM. See:
  https://bugs.winehq.org/show_bug.cgi?id=40240

  
  To reproduce this bug:
  * Pick a Windows 10 64 bit VM on an Intel host.

  * Start the VM. I'm pretty sure any qemu command will do but here's what I 
used:
qemu-system-x86_64 -machine pc-i440fx-2.1,accel=kvm -cpu core2duo,+nx -m 
2048 -hda /var/lib/libvirt/images/wtbw1064.qcow2

  * Grab the attached source code. The tar file is a bit big at 85KB
  because I had to include some Wine headers. However the source file
  proper, exception.c, is only 85 lines, including the LGPL header.

  * Compile the source code with MinGW by typing 'make'. This produces a
  32 bit exception.exe executable. I'll attach it for good measure.

  * Put exception.exe on the VM and run it.

  
  After investigation it turns out this happens:
   * Only for Windows 10 64 bit guests. Windows 10 32 bit and older Windows 
versions are unaffected.

   * Only on Intel hosts. At least both my Xeon E3-1226 v3 and i7-4790K
  hosts are impacted but not my Opteron 6128 one.

   * It does not seem to depend on the emulated CPU type: on the Intel hosts 
this happened with both 
  core2duo,nx and 'copy the host configuration' and did not depend on the 
number of emulated cpus/cores.

   * This happened with both QEMU 2.1 and 2.7, and both the 3.16.0 and
  4.8.11 Linux kernels, both on Debian 8.6 and Debian Testing.

  
  After searching for quite some time I discovered that the kvm kernel module 
was sneaking the following messages into /var/log/syslog precisely when the 
BSOD happens:

  Dec 16 13:43:48 vm3 kernel: [  191.624802] kvm [2064]: vcpu0, guest rIP: 
0xf803cb3c0bf3 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
  Dec 16 13:43:48 vm3 kernel: [  191.624835] kvm [2064]: vcpu0, guest rIP: 
0xf803cb3c0c5c unhandled rdmsr: 0x1c9

  A search on the Internet turned up a post suggesting to change kvm's
  ignore_msrs setting:

 echo 1 >/sys/module/kvm/parameters/ignore_msrs

  
https://www.reddit.com/r/VFIO/comments/42dj7n/some_games_crash_to_biosboot_on_launch/

  This does actually work and provides a workaround at least.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1658141/+subscriptions



[Qemu-devel] [Bug 1499908] Re: hda sound capture broken with VNC

2017-01-20 Thread Francois Gouget
On Debian this is still present in QEMU 1:2.7+dfsg-3+b1 with the 4.8.11-1 Linux 
kernel.
So no change in the past 5 quarters :-(

So I'm attaching a tar file containing standalone and somewhat
minimalist source code for reproducing this issue. Just compile it with
MinGW by typing 'make', send the capture.exe binary to the VM and run
it. Again if you see 'Test failed' messages the bug is still present.

** Attachment added: "Source code to reproduce this bug"
   
https://bugs.launchpad.net/qemu/+bug/1499908/+attachment/4806839/+files/capture.tar.bz2

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1499908

Title:
  hda sound capture broken with VNC

Status in QEMU:
  New

Bug description:
  QEmu is being used to run the Wine conformance tests in Windows
  virtual machines. Wine's conformance tests check the behavior of
  various Windows APIs and verify that they behave as expected. One of
  the tests checks the behavior of the mmdevapi sound capture APIs. This
  test works fine on real hardware and also works fine in various QEmu
  VMs but fails in some others. Further investigation showed that:

   * The mmdevapi:capture tests work on the two Vista VMs. Those use the
  ac97 sound card and are configured for VNC access to the VM.

   * The mmdevapi:capture tests fail in the Windows 7+ VMs. Those use an
  hda sound card and are configured for VNC access to the VM (so
  '-device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-
  duplex,id=sound0-codec0,bus=sound0.0,cad=0' and '-vnc 127.0.0.1:0').

   * Furthermore configuring the VM for Spice access fixes the
  mmdevapi:capture test (so replacing -vnc with '-spice
  port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on'),
  this even if no client connects to the VM.

  So in effect the -spice and -vnc options change the behavior of the
  sound device.

  To reproduce this bug:
  1. Set up a Windows 7+ VM with an hda sound card ('ich6' in libvirt).
  2. Set it up for access using VNC.
  3. Copy the attached mmdevapi_test.exe file to it. (*)
  4. Run the tests as follows:
 mmdevapi_test.exe capture

  If you see these 'Test Failed' lines then the bug is still present:

  capture.c:586: Returned latency: 5.8050 ms
  capture.c:178: Test failed: Position 1015 expected 0
  capture.c:186: Wait'ed position 1015 pad 0 flags 1, amount of frames locked: 
448
  capture.c:228: Test failed: Position 2167 expected 1463
  capture.c:248: Sleep.1 position 2167 pad 4032 flags 1, amount of frames 
locked: 448
  capture.c:256: Test failed: Position 2167 expected 1463
  capture.c:292: GetBufferSize 21996 period size 448
  capture.c:302: Overrun position 4215 pad 8960 flags 1, amount of frames 
locked: 448
  capture.c:308: Test failed: GCP 8960 vs. BufferSize 21996
  capture.c:313: Test failed: Position 4215 gap 2304
  capture.c:329: Cont'ed position 5303 pad 8512 flags 1, amount of frames 
locked: 448
  capture.c:333: Test failed: Position 5303 expected 4663
  capture.c:334: Test failed: flags 1
  capture.c:353: Restart position 7351 pad 8064 flags 1, amount of frames 
locked: 448
  capture.c:358: Test failed: Position 7351 expected 5111
  capture.c:359: Test failed: flags 1

  In case it helps, here is the source of mmdevapi_test.exe:
  
https://source.winehq.org/git/wine.git/?a=blob;f=dlls/mmdevapi/tests/capture.c;hb=60d1d6f5952e8b5d6fb0327a28c047058851fa70#l178

  
  So far I have confirmed that this bug is present in QEmu as shipped in the 
following Debian packages:
   * qemu-kvm + qemu-system-x86 1:2.1+dfsg-12+deb8u2 + 
linux-image-3.16.0-4-amd64 3.16.7-ckt11-1+deb8u3
   * qemu-system-x86 1:2.3+dfsg-6a + linux-image-4.1.0-1-amd64 4.1.3-1

  
  (*) As alternatives to using the attached binary you can:
  - Compile it from Wine's source. See:
 https://source.winehq.org/git/wine.git/

  - Or download the latest WineTest binary from 
https://test.winehq.org/builds/winetest-latest.exe
 And extract the mmdevapi_test.exe from there:
 winetest.exe -x tests
 tests\mmdevapi_test.exe capture

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1499908/+subscriptions



[Qemu-devel] [Bug 1499908] Re: hda sound capture broken with VNC

2017-01-20 Thread Francois Gouget
As an alternative to compiling the source code yourselves, I have
attached the capture.exe binary.

** Attachment added: "Executable to reproduce this bug"
   
https://bugs.launchpad.net/qemu/+bug/1499908/+attachment/4806840/+files/capture.exe.bz2

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1499908

Title:
  hda sound capture broken with VNC

Status in QEMU:
  New

Bug description:
  QEmu is being used to run the Wine conformance tests in Windows
  virtual machines. Wine's conformance tests check the behavior of
  various Windows APIs and verify that they behave as expected. One of
  the tests checks the behavior of the mmdevapi sound capture APIs. This
  test works fine on real hardware and also works fine in various QEmu
  VMs but fails in some others. Further investigation showed that:

   * The mmdevapi:capture tests work on the two Vista VMs. Those use the
  ac97 sound card and are configured for VNC access to the VM.

   * The mmdevapi:capture tests fail in the Windows 7+ VMs. Those use an
  hda sound card and are configured for VNC access to the VM (so
  '-device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-
  duplex,id=sound0-codec0,bus=sound0.0,cad=0' and '-vnc 127.0.0.1:0').

   * Furthermore configuring the VM for Spice access fixes the
  mmdevapi:capture test (so replacing -vnc with '-spice
  port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on'),
  this even if no client connects to the VM.

  So in effect the -spice and -vnc options change the behavior of the
  sound device.

  To reproduce this bug:
  1. Set up a Windows 7+ VM with an hda sound card ('ich6' in libvirt).
  2. Set it up for access using VNC.
  3. Copy the attached mmdevapi_test.exe file to it. (*)
  4. Run the tests as follows:
 mmdevapi_test.exe capture

  If you see these 'Test Failed' lines then the bug is still present:

  capture.c:586: Returned latency: 5.8050 ms
  capture.c:178: Test failed: Position 1015 expected 0
  capture.c:186: Wait'ed position 1015 pad 0 flags 1, amount of frames locked: 
448
  capture.c:228: Test failed: Position 2167 expected 1463
  capture.c:248: Sleep.1 position 2167 pad 4032 flags 1, amount of frames 
locked: 448
  capture.c:256: Test failed: Position 2167 expected 1463
  capture.c:292: GetBufferSize 21996 period size 448
  capture.c:302: Overrun position 4215 pad 8960 flags 1, amount of frames 
locked: 448
  capture.c:308: Test failed: GCP 8960 vs. BufferSize 21996
  capture.c:313: Test failed: Position 4215 gap 2304
  capture.c:329: Cont'ed position 5303 pad 8512 flags 1, amount of frames 
locked: 448
  capture.c:333: Test failed: Position 5303 expected 4663
  capture.c:334: Test failed: flags 1
  capture.c:353: Restart position 7351 pad 8064 flags 1, amount of frames 
locked: 448
  capture.c:358: Test failed: Position 7351 expected 5111
  capture.c:359: Test failed: flags 1

  In case it helps, here is the source of mmdevapi_test.exe:
  
https://source.winehq.org/git/wine.git/?a=blob;f=dlls/mmdevapi/tests/capture.c;hb=60d1d6f5952e8b5d6fb0327a28c047058851fa70#l178

  
  So far I have confirmed that this bug is present in QEmu as shipped in the 
following Debian packages:
   * qemu-kvm + qemu-system-x86 1:2.1+dfsg-12+deb8u2 + 
linux-image-3.16.0-4-amd64 3.16.7-ckt11-1+deb8u3
   * qemu-system-x86 1:2.3+dfsg-6a + linux-image-4.1.0-1-amd64 4.1.3-1

  
  (*) As alternatives to using the attached binary you can:
  - Compile it from Wine's source. See:
 https://source.winehq.org/git/wine.git/

  - Or download the latest WineTest binary from 
https://test.winehq.org/builds/winetest-latest.exe
 And extract the mmdevapi_test.exe from there:
 winetest.exe -x tests
 tests\mmdevapi_test.exe capture

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1499908/+subscriptions



[Qemu-devel] [Bug 1119861] Re: Poor console performance in Windows 7

2017-09-09 Thread Francois Gouget
It does seem to be ok now. The test did get simplified to remove parts
that were mostly redundant so it runs faster now. But still it now takes
the same time, 7 seconds, on the VMware and QEMU Windows 7 VMs. So as
far as I'm concerned this can be closed.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1119861

Title:
  Poor console performance in Windows 7

Status in QEMU:
  Incomplete

Bug description:
  As part of its conformance test suite, Wine tests the behavior of the
  Windows console API. Part of this test involves opening a test console
  and scrolling things around. The test probably does not need to
  perform that many scroll operations to achieve its goal. However as is
  it illustrates a significant performance issue in QEmu. Unfortunately
  it does so by timing out (the tests must run in less than 2 minutes).
  Here are the run times on a few configurations:

   10s - QEmu 1.4 + Q9450@2.6GHz + Windows XP + QXL + QXL driver
8s - QEmu 1.12 + Opteron 6128 + Windows XP + QXL + QXL driver
  127s - QEmu 1.12 + Opteron 6128 + Windows 7 + cirrus + vga driver
  127s - QEmu 1.12 + Opteron 6128 + Windows 7 + QXL + QXL driver
  147s - QEmu 1.12 + Opteron 6128 + Windows 7 + vmvga + vga driver
  145s - QEmu 1.12 + Opteron 6128 + Windows 7 + vmvga + vmware driver (xpdm, no 
better with all graphics effects disabled)

   10s - Metal + Atom N270 + Windows XP + GMA 950 + Intel driver
6s - Metal + i5-3317U + Windows 8 + HD4000 + Intel driver
3s - VMware + Q9450@2.6GHz + Windows XP + vmvga + vmware driver
   65s - VMware + Q9450@2.6GHz + Windows 7 + vmvga + vmware driver

  So when running on the bare metal all versions of Windows are about as
  fast. However in QEmu Windows 7 is almost 16 times slower than Windows
  XP! VMware is impacted too but it's still maintains a good lead in
  performance.

  Disabling all graphics effects did not help so it's not clear that the
  fault lies with Windows 7's compositing desktop window manager. Maybe
  it has to do with the lack of a proper wddm driver?

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1119861/+subscriptions



[Qemu-devel] [Bug 1119686] Re: Incorrect handling of icebp

2017-01-04 Thread Francois Gouget
Actually this got fixed by the following Linux kernel commit:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fd2a445a94d2ab6b39fb623dc02fee48d01a565a

commit  fd2a445a94d2ab6b39fb623dc02fee48d01a565a (patch)

KVM: VMX: Advance rip to after an ICEBP instruction
When entering an exception after an ICEBP, the saved instruction
pointer should point to after the instruction.

This fixes the bug here: https://bugs.launchpad.net/qemu/+bug/1119686

Signed-off-by: Huw Davies 
Reviewed-by: Jan Kiszka 
Signed-off-by: Marcelo Tosatti 


** Changed in: qemu
   Status: Expired => Fix Released

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1119686

Title:
  Incorrect handling of icebp

Status in QEMU:
  Fix Released

Bug description:
  Wine conformance suite tests the behavior of various low-level Windows
  API functions. One of the tests involves checking the interaction of
  breakpoints and exceptions, and in particular the 'icebp' breakpoint.
  This test works on a Windows XP machine running either on the metal or
  in VMware ESX but fails when run in QEmu.

  To reproduce the issue grab the attached 'exception.exe' file and run
  it. If you get 'Test failed' lines like below then it means the
  problem is still present:

  exception.c:202: exception 0: 8004 flags:0 addr:003F
  exception.c:208: Test failed: 0: Wrong exception address 003F/003F0001
  exception.c:214: this is the last test seen before the exception
  exception: unhandled exception 8004 at 003F
  exception.c:202: exception 0: c027 flags:2 addr:7C80E0B9
  exception.c:205: Test failed: 0: Wrong exception code c027/8004
  exception.c:208: Test failed: 0: Wrong exception address 7C80E0B9/003F0001

  Note that this bug was not present in QEmu 1.1.2+dfsg-5 (Debian
  Testing) but is now present in 1.4.0~rc0+dfsg-1exp (Debian
  Experimental).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1119686/+subscriptions



[Bug 1658141] Re: QEMU's default msrs handling causes Windows 10 64 bit to crash

2021-01-10 Thread Francois Gouget
This bug is still present.
However the "ignore_msrs=1" workaround does not work with QEmu 3.1 anymore. To 
prevent Windows 10 from crashing one must upgrade QEmu to 5.0.14.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1658141

Title:
  QEMU's default msrs handling causes Windows 10 64 bit to crash

Status in QEMU:
  New

Bug description:
  Wine uses QEMU to run its conformance test suite on Windows virtual
  machines. Wine's conformance tests check the behavior of various
  Windows APIs and verify that they behave as expected.

  One such test checks handling of exceptions down. When run on Windows 10 64 
bit in QEMU it triggers a "KMOD_EXCEPTION_NOT_HANDLED" BSOD in the VM. See:
  https://bugs.winehq.org/show_bug.cgi?id=40240

  
  To reproduce this bug:
  * Pick a Windows 10 64 bit VM on an Intel host.

  * Start the VM. I'm pretty sure any qemu command will do but here's what I 
used:
qemu-system-x86_64 -machine pc-i440fx-2.1,accel=kvm -cpu core2duo,+nx -m 
2048 -hda /var/lib/libvirt/images/wtbw1064.qcow2

  * Grab the attached source code. The tar file is a bit big at 85KB
  because I had to include some Wine headers. However the source file
  proper, exception.c, is only 85 lines, including the LGPL header.

  * Compile the source code with MinGW by typing 'make'. This produces a
  32 bit exception.exe executable. I'll attach it for good measure.

  * Put exception.exe on the VM and run it.

  
  After investigation it turns out this happens:
   * Only for Windows 10 64 bit guests. Windows 10 32 bit and older Windows 
versions are unaffected.

   * Only on Intel hosts. At least both my Xeon E3-1226 v3 and i7-4790K
  hosts are impacted but not my Opteron 6128 one.

   * It does not seem to depend on the emulated CPU type: on the Intel hosts 
this happened with both 
  core2duo,nx and 'copy the host configuration' and did not depend on the 
number of emulated cpus/cores.

   * This happened with both QEMU 2.1 and 2.7, and both the 3.16.0 and
  4.8.11 Linux kernels, both on Debian 8.6 and Debian Testing.

  
  After searching for quite some time I discovered that the kvm kernel module 
was sneaking the following messages into /var/log/syslog precisely when the 
BSOD happens:

  Dec 16 13:43:48 vm3 kernel: [  191.624802] kvm [2064]: vcpu0, guest rIP: 
0xf803cb3c0bf3 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
  Dec 16 13:43:48 vm3 kernel: [  191.624835] kvm [2064]: vcpu0, guest rIP: 
0xf803cb3c0c5c unhandled rdmsr: 0x1c9

  A search on the Internet turned up a post suggesting to change kvm's
  ignore_msrs setting:

 echo 1 >/sys/module/kvm/parameters/ignore_msrs

  
https://www.reddit.com/r/VFIO/comments/42dj7n/some_games_crash_to_biosboot_on_launch/

  This does actually work and provides a workaround at least.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1658141/+subscriptions



[Bug 1658141] Re: QEMU's default msrs handling causes Windows 10 64 bit to crash

2021-01-10 Thread Francois Gouget
The bug is still present so changing the status back to New.

** Changed in: qemu
   Status: Expired => New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1658141

Title:
  QEMU's default msrs handling causes Windows 10 64 bit to crash

Status in QEMU:
  New

Bug description:
  Wine uses QEMU to run its conformance test suite on Windows virtual
  machines. Wine's conformance tests check the behavior of various
  Windows APIs and verify that they behave as expected.

  One such test checks handling of exceptions down. When run on Windows 10 64 
bit in QEMU it triggers a "KMOD_EXCEPTION_NOT_HANDLED" BSOD in the VM. See:
  https://bugs.winehq.org/show_bug.cgi?id=40240

  
  To reproduce this bug:
  * Pick a Windows 10 64 bit VM on an Intel host.

  * Start the VM. I'm pretty sure any qemu command will do but here's what I 
used:
qemu-system-x86_64 -machine pc-i440fx-2.1,accel=kvm -cpu core2duo,+nx -m 
2048 -hda /var/lib/libvirt/images/wtbw1064.qcow2

  * Grab the attached source code. The tar file is a bit big at 85KB
  because I had to include some Wine headers. However the source file
  proper, exception.c, is only 85 lines, including the LGPL header.

  * Compile the source code with MinGW by typing 'make'. This produces a
  32 bit exception.exe executable. I'll attach it for good measure.

  * Put exception.exe on the VM and run it.

  
  After investigation it turns out this happens:
   * Only for Windows 10 64 bit guests. Windows 10 32 bit and older Windows 
versions are unaffected.

   * Only on Intel hosts. At least both my Xeon E3-1226 v3 and i7-4790K
  hosts are impacted but not my Opteron 6128 one.

   * It does not seem to depend on the emulated CPU type: on the Intel hosts 
this happened with both 
  core2duo,nx and 'copy the host configuration' and did not depend on the 
number of emulated cpus/cores.

   * This happened with both QEMU 2.1 and 2.7, and both the 3.16.0 and
  4.8.11 Linux kernels, both on Debian 8.6 and Debian Testing.

  
  After searching for quite some time I discovered that the kvm kernel module 
was sneaking the following messages into /var/log/syslog precisely when the 
BSOD happens:

  Dec 16 13:43:48 vm3 kernel: [  191.624802] kvm [2064]: vcpu0, guest rIP: 
0xf803cb3c0bf3 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
  Dec 16 13:43:48 vm3 kernel: [  191.624835] kvm [2064]: vcpu0, guest rIP: 
0xf803cb3c0c5c unhandled rdmsr: 0x1c9

  A search on the Internet turned up a post suggesting to change kvm's
  ignore_msrs setting:

 echo 1 >/sys/module/kvm/parameters/ignore_msrs

  
https://www.reddit.com/r/VFIO/comments/42dj7n/some_games_crash_to_biosboot_on_launch/

  This does actually work and provides a workaround at least.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1658141/+subscriptions