* windows7 installer lockup with viridian=1
@ 2009-04-26 17:02 Andrew Lyon
2009-04-26 17:28 ` Andrew Lyon
0 siblings, 1 reply; 7+ messages in thread
From: Andrew Lyon @ 2009-04-26 17:02 UTC (permalink / raw)
To: Xen-devel
Hi,
I've been testing both 64 and 32 bit flavour of windows 7 on Xen since
the first public beta release, a few weeks ago I upgraded to Xen
unstable and added viridian=1 to all of my smp windows guests as it
prevents bsod bugcheck code 101 when under heavy load, today I tried
to upgrade my windows 7 hvm's to build 7077 and found that the
installer/bootloader locks up if viridian=1 is set.
It is not the installer that locks up as such, its the windows 7
equivalent of the boot progress bar that all recent versions of
windows display before the graphics drivers are loaded and the display
switches to a higher resolution with the mouse active.
Here is a screenshot of the screen I am talking about
http://i251.photobucket.com/albums/gg313/ramesh_windows/Windows7/7boot.png?t=1240764799
, when viridian is enabled only a few pixels are drawn before it locks
up.
Here is the qemu log with viridian enabled, you can see there is a
failure to track vram "track_dirty_vram(f0000000, 240) failed (-1, 3)"
domid: 19
qemu: the number of cpus is 8
config qemu network with xen bridge for tap19.0 xenbr0
Watching /local/domain/0/device-model/19/logdirty/next-active
Watching /local/domain/0/device-model/19/command
char device redirected to /dev/pts/14
qemu_map_cache_init nr_buckets = 10000 size 4194304
shared page at pfn feffd
buffered io page at pfn feffb
Guest uuid = 4fb15327-01f9-46bb-a2de-c825adbdc01a
Time offset set 0
populating video RAM at ff000000
mapping video RAM from ff000000
Register xen platform.
Done register platform.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
xs_read(/local/domain/0/device-model/19/xen_extended_power_mgmt): read error
medium change watch on `hdc' (index: 1):
/mnt/isobox/7077.0.090404-1255_x64fre_client_en-us_Retail_Ultimate-GRC1CULXFRER_EN_DVD.iso
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
cirrus vga map change while on lfb mode
mapping vram to f0000000 - f0400000
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is ro state.
track_dirty_vram(f0000000, 240) failed (-1, 3)
And here is one with viridian disabled:
ubermicro xen # cat /var/log/xen/qemu-dm-windows7.log
domid: 20
qemu: the number of cpus is 8
config qemu network with xen bridge for tap20.0 xenbr0
Watching /local/domain/0/device-model/20/logdirty/next-active
Watching /local/domain/0/device-model/20/command
char device redirected to /dev/pts/14
qemu_map_cache_init nr_buckets = 10000 size 4194304
shared page at pfn feffd
buffered io page at pfn feffb
Guest uuid = 4fb15327-01f9-46bb-a2de-c825adbdc01a
Time offset set 0
populating video RAM at ff000000
mapping video RAM from ff000000
Register xen platform.
Done register platform.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
xs_read(/local/domain/0/device-model/20/xen_extended_power_mgmt): read error
medium change watch on `hdc' (index: 1):
/mnt/isobox/7077.0.090404-1255_x64fre_client_en-us_Retail_Ultimate-GRC1CULXFRER_EN_DVD.iso
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
cirrus vga map change while on lfb mode
mapping vram to f0000000 - f0400000
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is ro state.
gpe_sts_write: addr=0x1f68, val=0x0.
gpe_sts_write: addr=0x1f69, val=0x0.
gpe_sts_write: addr=0x1f6a, val=0x0.
gpe_sts_write: addr=0x1f6b, val=0x0.
gpe_en_write: addr=0x1f6c, val=0x0.
gpe_en_write: addr=0x1f6d, val=0x0.
gpe_en_write: addr=0x1f6e, val=0x0.
gpe_en_write: addr=0x1f6f, val=0x0.
gpe_en_write: addr=0x1f6c, val=0x0.
gpe_en_write: addr=0x1f6d, val=0x0.
gpe_en_write: addr=0x1f6e, val=0x0.
gpe_en_write: addr=0x1f6f, val=0x0.
gpe_sts_write: addr=0x1f68, val=0x0.
gpe_sts_write: addr=0x1f69, val=0x0.
gpe_sts_write: addr=0x1f6a, val=0x0.
gpe_sts_write: addr=0x1f6b, val=0x0.
gpe_en_write: addr=0x1f6c, val=0x8.
gpe_en_write: addr=0x1f6d, val=0x0.
gpe_en_write: addr=0x1f6e, val=0x0.
gpe_en_write: addr=0x1f6f, val=0x0.
ACPI PCI hotplug: read addr=0x10c2, val=0x0.
ACPI PCI hotplug: read addr=0x10c3, val=0x0.
ACPI PCI hotplug: read addr=0x10c4, val=0x0.
ACPI PCI hotplug: read addr=0x10c5, val=0x0.
ACPI PCI hotplug: read addr=0x10c6, val=0x0.
ACPI PCI hotplug: read addr=0x10c7, val=0x0.
ACPI PCI hotplug: read addr=0x10c8, val=0x0.
ACPI PCI hotplug: read addr=0x10c9, val=0x0.
ACPI PCI hotplug: read addr=0x10ca, val=0x0.
ACPI PCI hotplug: read addr=0x10cb, val=0x0.
ACPI PCI hotplug: read addr=0x10cc, val=0x0.
ACPI PCI hotplug: read addr=0x10cd, val=0x0.
ACPI PCI hotplug: read addr=0x10ce, val=0x0.
ACPI PCI hotplug: read addr=0x10cf, val=0x0.
ACPI PCI hotplug: read addr=0x10d0, val=0x0.
ACPI PCI hotplug: read addr=0x10d1, val=0x0.
ACPI PCI hotplug: read addr=0x10d2, val=0x0.
ACPI PCI hotplug: read addr=0x10d3, val=0x0.
ACPI PCI hotplug: read addr=0x10d4, val=0x0.
ACPI PCI hotplug: read addr=0x10d5, val=0x0.
ACPI PCI hotplug: read addr=0x10d6, val=0x0.
ACPI PCI hotplug: read addr=0x10d7, val=0x0.
ACPI PCI hotplug: read addr=0x10d8, val=0x0.
ACPI PCI hotplug: read addr=0x10d9, val=0x0.
ACPI PCI hotplug: read addr=0x10da, val=0x0.
ACPI PCI hotplug: read addr=0x10db, val=0x0.
ACPI PCI hotplug: read addr=0x10dc, val=0x0.
ACPI PCI hotplug: read addr=0x10dd, val=0x0.
ACPI PCI hotplug: read addr=0x10de, val=0x0.
ACPI PCI hotplug: read addr=0x10df, val=0x0.
ACPI PCI hotplug: read addr=0x10e0, val=0x0.
ACPI PCI hotplug: read addr=0x10e1, val=0x0.
ACPI PCI hotplug: read addr=0x10c2, val=0x0.
ACPI PCI hotplug: read addr=0x10c3, val=0x0.
ACPI PCI hotplug: read addr=0x10c4, val=0x0.
ACPI PCI hotplug: read addr=0x10c5, val=0x0.
ACPI PCI hotplug: read addr=0x10c6, val=0x0.
ACPI PCI hotplug: read addr=0x10c7, val=0x0.
ACPI PCI hotplug: read addr=0x10c8, val=0x0.
ACPI PCI hotplug: read addr=0x10c9, val=0x0.
ACPI PCI hotplug: read addr=0x10ca, val=0x0.
ACPI PCI hotplug: read addr=0x10cb, val=0x0.
ACPI PCI hotplug: read addr=0x10cc, val=0x0.
ACPI PCI hotplug: read addr=0x10cd, val=0x0.
ACPI PCI hotplug: read addr=0x10ce, val=0x0.
ACPI PCI hotplug: read addr=0x10cf, val=0x0.
ACPI PCI hotplug: read addr=0x10d0, val=0x0.
ACPI PCI hotplug: read addr=0x10d1, val=0x0.
ACPI PCI hotplug: read addr=0x10d2, val=0x0.
ACPI PCI hotplug: read addr=0x10d3, val=0x0.
ACPI PCI hotplug: read addr=0x10d4, val=0x0.
ACPI PCI hotplug: read addr=0x10d5, val=0x0.
ACPI PCI hotplug: read addr=0x10d6, val=0x0.
ACPI PCI hotplug: read addr=0x10d7, val=0x0.
ACPI PCI hotplug: read addr=0x10d8, val=0x0.
ACPI PCI hotplug: read addr=0x10d9, val=0x0.
ACPI PCI hotplug: read addr=0x10da, val=0x0.
ACPI PCI hotplug: read addr=0x10db, val=0x0.
ACPI PCI hotplug: read addr=0x10dc, val=0x0.
ACPI PCI hotplug: read addr=0x10dd, val=0x0.
ACPI PCI hotplug: read addr=0x10de, val=0x0.
ACPI PCI hotplug: read addr=0x10df, val=0x0.
ACPI PCI hotplug: read addr=0x10e0, val=0x0.
ACPI PCI hotplug: read addr=0x10e1, val=0x0.
ACPI PCI hotplug: read addr=0x10c2, val=0x0.
ACPI PCI hotplug: read addr=0x10c3, val=0x0.
ACPI PCI hotplug: read addr=0x10c4, val=0x0.
ACPI PCI hotplug: read addr=0x10c5, val=0x0.
ACPI PCI hotplug: read addr=0x10c6, val=0x0.
ACPI PCI hotplug: read addr=0x10c7, val=0x0.
ACPI PCI hotplug: read addr=0x10c8, val=0x0.
ACPI PCI hotplug: read addr=0x10c9, val=0x0.
ACPI PCI hotplug: read addr=0x10ca, val=0x0.
ACPI PCI hotplug: read addr=0x10cb, val=0x0.
ACPI PCI hotplug: read addr=0x10cc, val=0x0.
ACPI PCI hotplug: read addr=0x10cd, val=0x0.
ACPI PCI hotplug: read addr=0x10ce, val=0x0.
ACPI PCI hotplug: read addr=0x10cf, val=0x0.
ACPI PCI hotplug: read addr=0x10d0, val=0x0.
ACPI PCI hotplug: read addr=0x10d1, val=0x0.
ACPI PCI hotplug: read addr=0x10d2, val=0x0.
ACPI PCI hotplug: read addr=0x10d3, val=0x0.
ACPI PCI hotplug: read addr=0x10d4, val=0x0.
ACPI PCI hotplug: read addr=0x10d5, val=0x0.
ACPI PCI hotplug: read addr=0x10d6, val=0x0.
ACPI PCI hotplug: read addr=0x10d7, val=0x0.
ACPI PCI hotplug: read addr=0x10d8, val=0x0.
ACPI PCI hotplug: read addr=0x10d9, val=0x0.
ACPI PCI hotplug: read addr=0x10da, val=0x0.
ACPI PCI hotplug: read addr=0x10db, val=0x0.
ACPI PCI hotplug: read addr=0x10dc, val=0x0.
ACPI PCI hotplug: read addr=0x10dd, val=0x0.
ACPI PCI hotplug: read addr=0x10de, val=0x0.
ACPI PCI hotplug: read addr=0x10df, val=0x0.
ACPI PCI hotplug: read addr=0x10e0, val=0x0.
ACPI PCI hotplug: read addr=0x10e1, val=0x0.
ACPI PCI hotplug: read addr=0x10c2, val=0x0.
ACPI PCI hotplug: read addr=0x10c3, val=0x0.
ACPI PCI hotplug: read addr=0x10c4, val=0x0.
ACPI PCI hotplug: read addr=0x10c5, val=0x0.
ACPI PCI hotplug: read addr=0x10c6, val=0x0.
ACPI PCI hotplug: read addr=0x10c7, val=0x0.
ACPI PCI hotplug: read addr=0x10c8, val=0x0.
ACPI PCI hotplug: read addr=0x10c9, val=0x0.
ACPI PCI hotplug: read addr=0x10ca, val=0x0.
ACPI PCI hotplug: read addr=0x10cb, val=0x0.
ACPI PCI hotplug: read addr=0x10cc, val=0x0.
ACPI PCI hotplug: read addr=0x10cd, val=0x0.
ACPI PCI hotplug: read addr=0x10ce, val=0x0.
ACPI PCI hotplug: read addr=0x10cf, val=0x0.
ACPI PCI hotplug: read addr=0x10d0, val=0x0.
ACPI PCI hotplug: read addr=0x10d1, val=0x0.
ACPI PCI hotplug: read addr=0x10d2, val=0x0.
ACPI PCI hotplug: read addr=0x10d3, val=0x0.
ACPI PCI hotplug: read addr=0x10d4, val=0x0.
ACPI PCI hotplug: read addr=0x10d5, val=0x0.
ACPI PCI hotplug: read addr=0x10d6, val=0x0.
ACPI PCI hotplug: read addr=0x10d7, val=0x0.
ACPI PCI hotplug: read addr=0x10d8, val=0x0.
ACPI PCI hotplug: read addr=0x10d9, val=0x0.
ACPI PCI hotplug: read addr=0x10da, val=0x0.
ACPI PCI hotplug: read addr=0x10db, val=0x0.
ACPI PCI hotplug: read addr=0x10dc, val=0x0.
ACPI PCI hotplug: read addr=0x10dd, val=0x0.
ACPI PCI hotplug: read addr=0x10de, val=0x0.
ACPI PCI hotplug: read addr=0x10df, val=0x0.
ACPI PCI hotplug: read addr=0x10e0, val=0x0.
ACPI PCI hotplug: read addr=0x10e1, val=0x0.
ACPI PCI hotplug: read addr=0x10c2, val=0x0.
ACPI PCI hotplug: read addr=0x10c3, val=0x0.
ACPI PCI hotplug: read addr=0x10c4, val=0x0.
ACPI PCI hotplug: read addr=0x10c5, val=0x0.
ACPI PCI hotplug: read addr=0x10c6, val=0x0.
ACPI PCI hotplug: read addr=0x10c7, val=0x0.
ACPI PCI hotplug: read addr=0x10c8, val=0x0.
ACPI PCI hotplug: read addr=0x10c9, val=0x0.
ACPI PCI hotplug: read addr=0x10ca, val=0x0.
ACPI PCI hotplug: read addr=0x10cb, val=0x0.
ACPI PCI hotplug: read addr=0x10cc, val=0x0.
ACPI PCI hotplug: read addr=0x10cd, val=0x0.
ACPI PCI hotplug: read addr=0x10ce, val=0x0.
ACPI PCI hotplug: read addr=0x10cf, val=0x0.
ACPI PCI hotplug: read addr=0x10d0, val=0x0.
ACPI PCI hotplug: read addr=0x10d1, val=0x0.
ACPI PCI hotplug: read addr=0x10d2, val=0x0.
ACPI PCI hotplug: read addr=0x10d3, val=0x0.
ACPI PCI hotplug: read addr=0x10d4, val=0x0.
ACPI PCI hotplug: read addr=0x10d5, val=0x0.
ACPI PCI hotplug: read addr=0x10d6, val=0x0.
ACPI PCI hotplug: read addr=0x10d7, val=0x0.
ACPI PCI hotplug: read addr=0x10d8, val=0x0.
ACPI PCI hotplug: read addr=0x10d9, val=0x0.
ACPI PCI hotplug: read addr=0x10da, val=0x0.
ACPI PCI hotplug: read addr=0x10db, val=0x0.
ACPI PCI hotplug: read addr=0x10dc, val=0x0.
ACPI PCI hotplug: read addr=0x10dd, val=0x0.
ACPI PCI hotplug: read addr=0x10de, val=0x0.
ACPI PCI hotplug: read addr=0x10df, val=0x0.
ACPI PCI hotplug: read addr=0x10e0, val=0x0.
ACPI PCI hotplug: read addr=0x10e1, val=0x0.
ACPI PCI hotplug: read addr=0x10c2, val=0x0.
ACPI PCI hotplug: read addr=0x10c3, val=0x0.
ACPI PCI hotplug: read addr=0x10c4, val=0x0.
ACPI PCI hotplug: read addr=0x10c5, val=0x0.
ACPI PCI hotplug: read addr=0x10c6, val=0x0.
ACPI PCI hotplug: read addr=0x10c7, val=0x0.
ACPI PCI hotplug: read addr=0x10c8, val=0x0.
ACPI PCI hotplug: read addr=0x10c9, val=0x0.
ACPI PCI hotplug: read addr=0x10ca, val=0x0.
ACPI PCI hotplug: read addr=0x10cb, val=0x0.
ACPI PCI hotplug: read addr=0x10cc, val=0x0.
ACPI PCI hotplug: read addr=0x10cd, val=0x0.
ACPI PCI hotplug: read addr=0x10ce, val=0x0.
ACPI PCI hotplug: read addr=0x10cf, val=0x0.
ACPI PCI hotplug: read addr=0x10d0, val=0x0.
ACPI PCI hotplug: read addr=0x10d1, val=0x0.
ACPI PCI hotplug: read addr=0x10d2, val=0x0.
ACPI PCI hotplug: read addr=0x10d3, val=0x0.
ACPI PCI hotplug: read addr=0x10d4, val=0x0.
ACPI PCI hotplug: read addr=0x10d5, val=0x0.
ACPI PCI hotplug: read addr=0x10d6, val=0x0.
ACPI PCI hotplug: read addr=0x10d7, val=0x0.
ACPI PCI hotplug: read addr=0x10d8, val=0x0.
ACPI PCI hotplug: read addr=0x10d9, val=0x0.
ACPI PCI hotplug: read addr=0x10da, val=0x0.
ACPI PCI hotplug: read addr=0x10db, val=0x0.
ACPI PCI hotplug: read addr=0x10dc, val=0x0.
ACPI PCI hotplug: read addr=0x10dd, val=0x0.
ACPI PCI hotplug: read addr=0x10de, val=0x0.
ACPI PCI hotplug: read addr=0x10df, val=0x0.
ACPI PCI hotplug: read addr=0x10e0, val=0x0.
ACPI PCI hotplug: read addr=0x10e1, val=0x0.
ACPI PCI hotplug: read addr=0x10c2, val=0x0.
ACPI PCI hotplug: read addr=0x10c3, val=0x0.
ACPI PCI hotplug: read addr=0x10c4, val=0x0.
ACPI PCI hotplug: read addr=0x10c5, val=0x0.
ACPI PCI hotplug: read addr=0x10c6, val=0x0.
ACPI PCI hotplug: read addr=0x10c7, val=0x0.
ACPI PCI hotplug: read addr=0x10c8, val=0x0.
ACPI PCI hotplug: read addr=0x10c9, val=0x0.
ACPI PCI hotplug: read addr=0x10ca, val=0x0.
ACPI PCI hotplug: read addr=0x10cb, val=0x0.
ACPI PCI hotplug: read addr=0x10cc, val=0x0.
ACPI PCI hotplug: read addr=0x10cd, val=0x0.
ACPI PCI hotplug: read addr=0x10ce, val=0x0.
ACPI PCI hotplug: read addr=0x10cf, val=0x0.
ACPI PCI hotplug: read addr=0x10d0, val=0x0.
ACPI PCI hotplug: read addr=0x10d1, val=0x0.
ACPI PCI hotplug: read addr=0x10d2, val=0x0.
ACPI PCI hotplug: read addr=0x10d3, val=0x0.
ACPI PCI hotplug: read addr=0x10d4, val=0x0.
ACPI PCI hotplug: read addr=0x10d5, val=0x0.
ACPI PCI hotplug: read addr=0x10d6, val=0x0.
ACPI PCI hotplug: read addr=0x10d7, val=0x0.
ACPI PCI hotplug: read addr=0x10d8, val=0x0.
ACPI PCI hotplug: read addr=0x10d9, val=0x0.
ACPI PCI hotplug: read addr=0x10da, val=0x0.
ACPI PCI hotplug: read addr=0x10db, val=0x0.
ACPI PCI hotplug: read addr=0x10dc, val=0x0.
ACPI PCI hotplug: read addr=0x10dd, val=0x0.
ACPI PCI hotplug: read addr=0x10de, val=0x0.
ACPI PCI hotplug: read addr=0x10df, val=0x0.
ACPI PCI hotplug: read addr=0x10e0, val=0x0.
ACPI PCI hotplug: read addr=0x10e1, val=0x0.
gpe_en_write: addr=0x1f6c, val=0x8.
gpe_en_write: addr=0x1f6d, val=0x0.
gpe_en_write: addr=0x1f6e, val=0x0.
gpe_en_write: addr=0x1f6f, val=0x0.
I/O request not ready: 0, ptr: 1, port: 170, data: 4f55a000, count:
1000, size: 2
I/O request not ready: 0, ptr: 1, port: 170, data: 6122e000, count: 7fe, size: 2
I/O request not ready: 0, ptr: 0, port: 1f48, data: a22e060e, count: 1, size: 4
I/O request not ready: 0, ptr: 1, port: 170, data: 35fbe000, count: 800, size: 2
I/O request not ready: 0, ptr: 0, port: 1f48, data: b5f0406f, count: 1, size: 4
Perhaps I need to increase the video ram in the guest? but why does it
work without viridian?
Once the installation has completed I will try enabling viridian
support and report back if it works or not.
Andy
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: windows7 installer lockup with viridian=1
2009-04-26 17:02 windows7 installer lockup with viridian=1 Andrew Lyon
@ 2009-04-26 17:28 ` Andrew Lyon
2009-04-27 21:52 ` Frank van der Linden
0 siblings, 1 reply; 7+ messages in thread
From: Andrew Lyon @ 2009-04-26 17:28 UTC (permalink / raw)
To: Xen-devel
On Sun, Apr 26, 2009 at 6:02 PM, Andrew Lyon <andrew.lyon@gmail.com> wrote:
> Hi,
>
> I've been testing both 64 and 32 bit flavour of windows 7 on Xen since
> the first public beta release, a few weeks ago I upgraded to Xen
> unstable and added viridian=1 to all of my smp windows guests as it
> prevents bsod bugcheck code 101 when under heavy load, today I tried
> to upgrade my windows 7 hvm's to build 7077 and found that the
> installer/bootloader locks up if viridian=1 is set.
>
> It is not the installer that locks up as such, its the windows 7
> equivalent of the boot progress bar that all recent versions of
> windows display before the graphics drivers are loaded and the display
> switches to a higher resolution with the mouse active.
>
> Here is a screenshot of the screen I am talking about
> http://i251.photobucket.com/albums/gg313/ramesh_windows/Windows7/7boot.png?t=1240764799
> , when viridian is enabled only a few pixels are drawn before it locks
> up.
>
> Here is the qemu log with viridian enabled, you can see there is a
> failure to track vram "track_dirty_vram(f0000000, 240) failed (-1, 3)"
>
> domid: 19
> qemu: the number of cpus is 8
> config qemu network with xen bridge for tap19.0 xenbr0
> Watching /local/domain/0/device-model/19/logdirty/next-active
> Watching /local/domain/0/device-model/19/command
> char device redirected to /dev/pts/14
> qemu_map_cache_init nr_buckets = 10000 size 4194304
> shared page at pfn feffd
> buffered io page at pfn feffb
> Guest uuid = 4fb15327-01f9-46bb-a2de-c825adbdc01a
> Time offset set 0
> populating video RAM at ff000000
> mapping video RAM from ff000000
> Register xen platform.
> Done register platform.
> platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
> xs_read(/local/domain/0/device-model/19/xen_extended_power_mgmt): read error
> medium change watch on `hdc' (index: 1):
> /mnt/isobox/7077.0.090404-1255_x64fre_client_en-us_Retail_Ultimate-GRC1CULXFRER_EN_DVD.iso
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> cirrus vga map change while on lfb mode
> mapping vram to f0000000 - f0400000
> platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
> platform_fixed_ioport: changed ro/rw state of ROM memory area. now is ro state.
> track_dirty_vram(f0000000, 240) failed (-1, 3)
>
>
> And here is one with viridian disabled:
>
> ubermicro xen # cat /var/log/xen/qemu-dm-windows7.log
> domid: 20
> qemu: the number of cpus is 8
> config qemu network with xen bridge for tap20.0 xenbr0
> Watching /local/domain/0/device-model/20/logdirty/next-active
> Watching /local/domain/0/device-model/20/command
> char device redirected to /dev/pts/14
> qemu_map_cache_init nr_buckets = 10000 size 4194304
> shared page at pfn feffd
> buffered io page at pfn feffb
> Guest uuid = 4fb15327-01f9-46bb-a2de-c825adbdc01a
> Time offset set 0
> populating video RAM at ff000000
> mapping video RAM from ff000000
> Register xen platform.
> Done register platform.
> platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
> xs_read(/local/domain/0/device-model/20/xen_extended_power_mgmt): read error
> medium change watch on `hdc' (index: 1):
> /mnt/isobox/7077.0.090404-1255_x64fre_client_en-us_Retail_Ultimate-GRC1CULXFRER_EN_DVD.iso
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
> cirrus vga map change while on lfb mode
> mapping vram to f0000000 - f0400000
> platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
> platform_fixed_ioport: changed ro/rw state of ROM memory area. now is ro state.
> gpe_sts_write: addr=0x1f68, val=0x0.
> gpe_sts_write: addr=0x1f69, val=0x0.
> gpe_sts_write: addr=0x1f6a, val=0x0.
> gpe_sts_write: addr=0x1f6b, val=0x0.
> gpe_en_write: addr=0x1f6c, val=0x0.
> gpe_en_write: addr=0x1f6d, val=0x0.
> gpe_en_write: addr=0x1f6e, val=0x0.
> gpe_en_write: addr=0x1f6f, val=0x0.
> gpe_en_write: addr=0x1f6c, val=0x0.
> gpe_en_write: addr=0x1f6d, val=0x0.
> gpe_en_write: addr=0x1f6e, val=0x0.
> gpe_en_write: addr=0x1f6f, val=0x0.
> gpe_sts_write: addr=0x1f68, val=0x0.
> gpe_sts_write: addr=0x1f69, val=0x0.
> gpe_sts_write: addr=0x1f6a, val=0x0.
> gpe_sts_write: addr=0x1f6b, val=0x0.
> gpe_en_write: addr=0x1f6c, val=0x8.
> gpe_en_write: addr=0x1f6d, val=0x0.
> gpe_en_write: addr=0x1f6e, val=0x0.
> gpe_en_write: addr=0x1f6f, val=0x0.
> ACPI PCI hotplug: read addr=0x10c2, val=0x0.
> ACPI PCI hotplug: read addr=0x10c3, val=0x0.
> ACPI PCI hotplug: read addr=0x10c4, val=0x0.
> ACPI PCI hotplug: read addr=0x10c5, val=0x0.
> ACPI PCI hotplug: read addr=0x10c6, val=0x0.
> ACPI PCI hotplug: read addr=0x10c7, val=0x0.
> ACPI PCI hotplug: read addr=0x10c8, val=0x0.
> ACPI PCI hotplug: read addr=0x10c9, val=0x0.
> ACPI PCI hotplug: read addr=0x10ca, val=0x0.
> ACPI PCI hotplug: read addr=0x10cb, val=0x0.
> ACPI PCI hotplug: read addr=0x10cc, val=0x0.
> ACPI PCI hotplug: read addr=0x10cd, val=0x0.
> ACPI PCI hotplug: read addr=0x10ce, val=0x0.
> ACPI PCI hotplug: read addr=0x10cf, val=0x0.
> ACPI PCI hotplug: read addr=0x10d0, val=0x0.
> ACPI PCI hotplug: read addr=0x10d1, val=0x0.
> ACPI PCI hotplug: read addr=0x10d2, val=0x0.
> ACPI PCI hotplug: read addr=0x10d3, val=0x0.
> ACPI PCI hotplug: read addr=0x10d4, val=0x0.
> ACPI PCI hotplug: read addr=0x10d5, val=0x0.
> ACPI PCI hotplug: read addr=0x10d6, val=0x0.
> ACPI PCI hotplug: read addr=0x10d7, val=0x0.
> ACPI PCI hotplug: read addr=0x10d8, val=0x0.
> ACPI PCI hotplug: read addr=0x10d9, val=0x0.
> ACPI PCI hotplug: read addr=0x10da, val=0x0.
> ACPI PCI hotplug: read addr=0x10db, val=0x0.
> ACPI PCI hotplug: read addr=0x10dc, val=0x0.
> ACPI PCI hotplug: read addr=0x10dd, val=0x0.
> ACPI PCI hotplug: read addr=0x10de, val=0x0.
> ACPI PCI hotplug: read addr=0x10df, val=0x0.
> ACPI PCI hotplug: read addr=0x10e0, val=0x0.
> ACPI PCI hotplug: read addr=0x10e1, val=0x0.
> ACPI PCI hotplug: read addr=0x10c2, val=0x0.
> ACPI PCI hotplug: read addr=0x10c3, val=0x0.
> ACPI PCI hotplug: read addr=0x10c4, val=0x0.
> ACPI PCI hotplug: read addr=0x10c5, val=0x0.
> ACPI PCI hotplug: read addr=0x10c6, val=0x0.
> ACPI PCI hotplug: read addr=0x10c7, val=0x0.
> ACPI PCI hotplug: read addr=0x10c8, val=0x0.
> ACPI PCI hotplug: read addr=0x10c9, val=0x0.
> ACPI PCI hotplug: read addr=0x10ca, val=0x0.
> ACPI PCI hotplug: read addr=0x10cb, val=0x0.
> ACPI PCI hotplug: read addr=0x10cc, val=0x0.
> ACPI PCI hotplug: read addr=0x10cd, val=0x0.
> ACPI PCI hotplug: read addr=0x10ce, val=0x0.
> ACPI PCI hotplug: read addr=0x10cf, val=0x0.
> ACPI PCI hotplug: read addr=0x10d0, val=0x0.
> ACPI PCI hotplug: read addr=0x10d1, val=0x0.
> ACPI PCI hotplug: read addr=0x10d2, val=0x0.
> ACPI PCI hotplug: read addr=0x10d3, val=0x0.
> ACPI PCI hotplug: read addr=0x10d4, val=0x0.
> ACPI PCI hotplug: read addr=0x10d5, val=0x0.
> ACPI PCI hotplug: read addr=0x10d6, val=0x0.
> ACPI PCI hotplug: read addr=0x10d7, val=0x0.
> ACPI PCI hotplug: read addr=0x10d8, val=0x0.
> ACPI PCI hotplug: read addr=0x10d9, val=0x0.
> ACPI PCI hotplug: read addr=0x10da, val=0x0.
> ACPI PCI hotplug: read addr=0x10db, val=0x0.
> ACPI PCI hotplug: read addr=0x10dc, val=0x0.
> ACPI PCI hotplug: read addr=0x10dd, val=0x0.
> ACPI PCI hotplug: read addr=0x10de, val=0x0.
> ACPI PCI hotplug: read addr=0x10df, val=0x0.
> ACPI PCI hotplug: read addr=0x10e0, val=0x0.
> ACPI PCI hotplug: read addr=0x10e1, val=0x0.
> ACPI PCI hotplug: read addr=0x10c2, val=0x0.
> ACPI PCI hotplug: read addr=0x10c3, val=0x0.
> ACPI PCI hotplug: read addr=0x10c4, val=0x0.
> ACPI PCI hotplug: read addr=0x10c5, val=0x0.
> ACPI PCI hotplug: read addr=0x10c6, val=0x0.
> ACPI PCI hotplug: read addr=0x10c7, val=0x0.
> ACPI PCI hotplug: read addr=0x10c8, val=0x0.
> ACPI PCI hotplug: read addr=0x10c9, val=0x0.
> ACPI PCI hotplug: read addr=0x10ca, val=0x0.
> ACPI PCI hotplug: read addr=0x10cb, val=0x0.
> ACPI PCI hotplug: read addr=0x10cc, val=0x0.
> ACPI PCI hotplug: read addr=0x10cd, val=0x0.
> ACPI PCI hotplug: read addr=0x10ce, val=0x0.
> ACPI PCI hotplug: read addr=0x10cf, val=0x0.
> ACPI PCI hotplug: read addr=0x10d0, val=0x0.
> ACPI PCI hotplug: read addr=0x10d1, val=0x0.
> ACPI PCI hotplug: read addr=0x10d2, val=0x0.
> ACPI PCI hotplug: read addr=0x10d3, val=0x0.
> ACPI PCI hotplug: read addr=0x10d4, val=0x0.
> ACPI PCI hotplug: read addr=0x10d5, val=0x0.
> ACPI PCI hotplug: read addr=0x10d6, val=0x0.
> ACPI PCI hotplug: read addr=0x10d7, val=0x0.
> ACPI PCI hotplug: read addr=0x10d8, val=0x0.
> ACPI PCI hotplug: read addr=0x10d9, val=0x0.
> ACPI PCI hotplug: read addr=0x10da, val=0x0.
> ACPI PCI hotplug: read addr=0x10db, val=0x0.
> ACPI PCI hotplug: read addr=0x10dc, val=0x0.
> ACPI PCI hotplug: read addr=0x10dd, val=0x0.
> ACPI PCI hotplug: read addr=0x10de, val=0x0.
> ACPI PCI hotplug: read addr=0x10df, val=0x0.
> ACPI PCI hotplug: read addr=0x10e0, val=0x0.
> ACPI PCI hotplug: read addr=0x10e1, val=0x0.
> ACPI PCI hotplug: read addr=0x10c2, val=0x0.
> ACPI PCI hotplug: read addr=0x10c3, val=0x0.
> ACPI PCI hotplug: read addr=0x10c4, val=0x0.
> ACPI PCI hotplug: read addr=0x10c5, val=0x0.
> ACPI PCI hotplug: read addr=0x10c6, val=0x0.
> ACPI PCI hotplug: read addr=0x10c7, val=0x0.
> ACPI PCI hotplug: read addr=0x10c8, val=0x0.
> ACPI PCI hotplug: read addr=0x10c9, val=0x0.
> ACPI PCI hotplug: read addr=0x10ca, val=0x0.
> ACPI PCI hotplug: read addr=0x10cb, val=0x0.
> ACPI PCI hotplug: read addr=0x10cc, val=0x0.
> ACPI PCI hotplug: read addr=0x10cd, val=0x0.
> ACPI PCI hotplug: read addr=0x10ce, val=0x0.
> ACPI PCI hotplug: read addr=0x10cf, val=0x0.
> ACPI PCI hotplug: read addr=0x10d0, val=0x0.
> ACPI PCI hotplug: read addr=0x10d1, val=0x0.
> ACPI PCI hotplug: read addr=0x10d2, val=0x0.
> ACPI PCI hotplug: read addr=0x10d3, val=0x0.
> ACPI PCI hotplug: read addr=0x10d4, val=0x0.
> ACPI PCI hotplug: read addr=0x10d5, val=0x0.
> ACPI PCI hotplug: read addr=0x10d6, val=0x0.
> ACPI PCI hotplug: read addr=0x10d7, val=0x0.
> ACPI PCI hotplug: read addr=0x10d8, val=0x0.
> ACPI PCI hotplug: read addr=0x10d9, val=0x0.
> ACPI PCI hotplug: read addr=0x10da, val=0x0.
> ACPI PCI hotplug: read addr=0x10db, val=0x0.
> ACPI PCI hotplug: read addr=0x10dc, val=0x0.
> ACPI PCI hotplug: read addr=0x10dd, val=0x0.
> ACPI PCI hotplug: read addr=0x10de, val=0x0.
> ACPI PCI hotplug: read addr=0x10df, val=0x0.
> ACPI PCI hotplug: read addr=0x10e0, val=0x0.
> ACPI PCI hotplug: read addr=0x10e1, val=0x0.
> ACPI PCI hotplug: read addr=0x10c2, val=0x0.
> ACPI PCI hotplug: read addr=0x10c3, val=0x0.
> ACPI PCI hotplug: read addr=0x10c4, val=0x0.
> ACPI PCI hotplug: read addr=0x10c5, val=0x0.
> ACPI PCI hotplug: read addr=0x10c6, val=0x0.
> ACPI PCI hotplug: read addr=0x10c7, val=0x0.
> ACPI PCI hotplug: read addr=0x10c8, val=0x0.
> ACPI PCI hotplug: read addr=0x10c9, val=0x0.
> ACPI PCI hotplug: read addr=0x10ca, val=0x0.
> ACPI PCI hotplug: read addr=0x10cb, val=0x0.
> ACPI PCI hotplug: read addr=0x10cc, val=0x0.
> ACPI PCI hotplug: read addr=0x10cd, val=0x0.
> ACPI PCI hotplug: read addr=0x10ce, val=0x0.
> ACPI PCI hotplug: read addr=0x10cf, val=0x0.
> ACPI PCI hotplug: read addr=0x10d0, val=0x0.
> ACPI PCI hotplug: read addr=0x10d1, val=0x0.
> ACPI PCI hotplug: read addr=0x10d2, val=0x0.
> ACPI PCI hotplug: read addr=0x10d3, val=0x0.
> ACPI PCI hotplug: read addr=0x10d4, val=0x0.
> ACPI PCI hotplug: read addr=0x10d5, val=0x0.
> ACPI PCI hotplug: read addr=0x10d6, val=0x0.
> ACPI PCI hotplug: read addr=0x10d7, val=0x0.
> ACPI PCI hotplug: read addr=0x10d8, val=0x0.
> ACPI PCI hotplug: read addr=0x10d9, val=0x0.
> ACPI PCI hotplug: read addr=0x10da, val=0x0.
> ACPI PCI hotplug: read addr=0x10db, val=0x0.
> ACPI PCI hotplug: read addr=0x10dc, val=0x0.
> ACPI PCI hotplug: read addr=0x10dd, val=0x0.
> ACPI PCI hotplug: read addr=0x10de, val=0x0.
> ACPI PCI hotplug: read addr=0x10df, val=0x0.
> ACPI PCI hotplug: read addr=0x10e0, val=0x0.
> ACPI PCI hotplug: read addr=0x10e1, val=0x0.
> ACPI PCI hotplug: read addr=0x10c2, val=0x0.
> ACPI PCI hotplug: read addr=0x10c3, val=0x0.
> ACPI PCI hotplug: read addr=0x10c4, val=0x0.
> ACPI PCI hotplug: read addr=0x10c5, val=0x0.
> ACPI PCI hotplug: read addr=0x10c6, val=0x0.
> ACPI PCI hotplug: read addr=0x10c7, val=0x0.
> ACPI PCI hotplug: read addr=0x10c8, val=0x0.
> ACPI PCI hotplug: read addr=0x10c9, val=0x0.
> ACPI PCI hotplug: read addr=0x10ca, val=0x0.
> ACPI PCI hotplug: read addr=0x10cb, val=0x0.
> ACPI PCI hotplug: read addr=0x10cc, val=0x0.
> ACPI PCI hotplug: read addr=0x10cd, val=0x0.
> ACPI PCI hotplug: read addr=0x10ce, val=0x0.
> ACPI PCI hotplug: read addr=0x10cf, val=0x0.
> ACPI PCI hotplug: read addr=0x10d0, val=0x0.
> ACPI PCI hotplug: read addr=0x10d1, val=0x0.
> ACPI PCI hotplug: read addr=0x10d2, val=0x0.
> ACPI PCI hotplug: read addr=0x10d3, val=0x0.
> ACPI PCI hotplug: read addr=0x10d4, val=0x0.
> ACPI PCI hotplug: read addr=0x10d5, val=0x0.
> ACPI PCI hotplug: read addr=0x10d6, val=0x0.
> ACPI PCI hotplug: read addr=0x10d7, val=0x0.
> ACPI PCI hotplug: read addr=0x10d8, val=0x0.
> ACPI PCI hotplug: read addr=0x10d9, val=0x0.
> ACPI PCI hotplug: read addr=0x10da, val=0x0.
> ACPI PCI hotplug: read addr=0x10db, val=0x0.
> ACPI PCI hotplug: read addr=0x10dc, val=0x0.
> ACPI PCI hotplug: read addr=0x10dd, val=0x0.
> ACPI PCI hotplug: read addr=0x10de, val=0x0.
> ACPI PCI hotplug: read addr=0x10df, val=0x0.
> ACPI PCI hotplug: read addr=0x10e0, val=0x0.
> ACPI PCI hotplug: read addr=0x10e1, val=0x0.
> ACPI PCI hotplug: read addr=0x10c2, val=0x0.
> ACPI PCI hotplug: read addr=0x10c3, val=0x0.
> ACPI PCI hotplug: read addr=0x10c4, val=0x0.
> ACPI PCI hotplug: read addr=0x10c5, val=0x0.
> ACPI PCI hotplug: read addr=0x10c6, val=0x0.
> ACPI PCI hotplug: read addr=0x10c7, val=0x0.
> ACPI PCI hotplug: read addr=0x10c8, val=0x0.
> ACPI PCI hotplug: read addr=0x10c9, val=0x0.
> ACPI PCI hotplug: read addr=0x10ca, val=0x0.
> ACPI PCI hotplug: read addr=0x10cb, val=0x0.
> ACPI PCI hotplug: read addr=0x10cc, val=0x0.
> ACPI PCI hotplug: read addr=0x10cd, val=0x0.
> ACPI PCI hotplug: read addr=0x10ce, val=0x0.
> ACPI PCI hotplug: read addr=0x10cf, val=0x0.
> ACPI PCI hotplug: read addr=0x10d0, val=0x0.
> ACPI PCI hotplug: read addr=0x10d1, val=0x0.
> ACPI PCI hotplug: read addr=0x10d2, val=0x0.
> ACPI PCI hotplug: read addr=0x10d3, val=0x0.
> ACPI PCI hotplug: read addr=0x10d4, val=0x0.
> ACPI PCI hotplug: read addr=0x10d5, val=0x0.
> ACPI PCI hotplug: read addr=0x10d6, val=0x0.
> ACPI PCI hotplug: read addr=0x10d7, val=0x0.
> ACPI PCI hotplug: read addr=0x10d8, val=0x0.
> ACPI PCI hotplug: read addr=0x10d9, val=0x0.
> ACPI PCI hotplug: read addr=0x10da, val=0x0.
> ACPI PCI hotplug: read addr=0x10db, val=0x0.
> ACPI PCI hotplug: read addr=0x10dc, val=0x0.
> ACPI PCI hotplug: read addr=0x10dd, val=0x0.
> ACPI PCI hotplug: read addr=0x10de, val=0x0.
> ACPI PCI hotplug: read addr=0x10df, val=0x0.
> ACPI PCI hotplug: read addr=0x10e0, val=0x0.
> ACPI PCI hotplug: read addr=0x10e1, val=0x0.
> gpe_en_write: addr=0x1f6c, val=0x8.
> gpe_en_write: addr=0x1f6d, val=0x0.
> gpe_en_write: addr=0x1f6e, val=0x0.
> gpe_en_write: addr=0x1f6f, val=0x0.
> I/O request not ready: 0, ptr: 1, port: 170, data: 4f55a000, count:
> 1000, size: 2
> I/O request not ready: 0, ptr: 1, port: 170, data: 6122e000, count: 7fe, size: 2
> I/O request not ready: 0, ptr: 0, port: 1f48, data: a22e060e, count: 1, size: 4
> I/O request not ready: 0, ptr: 1, port: 170, data: 35fbe000, count: 800, size: 2
> I/O request not ready: 0, ptr: 0, port: 1f48, data: b5f0406f, count: 1, size: 4
>
> Perhaps I need to increase the video ram in the guest? but why does it
> work without viridian?
>
> Once the installation has completed I will try enabling viridian
> support and report back if it works or not.
>
> Andy
>
The same lockup happens to windows 7 itself if viridian=1 is set, with
viridian disabled it boots quickly and runs as well as other windows.
Andy
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Re: windows7 installer lockup with viridian=1
2009-04-26 17:28 ` Andrew Lyon
@ 2009-04-27 21:52 ` Frank van der Linden
2009-04-28 8:04 ` Tim Deegan
0 siblings, 1 reply; 7+ messages in thread
From: Frank van der Linden @ 2009-04-27 21:52 UTC (permalink / raw)
To: Andrew Lyon; +Cc: Xen-devel
Andrew Lyon wrote:
> On Sun, Apr 26, 2009 at 6:02 PM, Andrew Lyon <andrew.lyon@gmail.com> wrote:
>> Hi,
>>
>> I've been testing both 64 and 32 bit flavour of windows 7 on Xen since
>> the first public beta release, a few weeks ago I upgraded to Xen
>> unstable and added viridian=1 to all of my smp windows guests as it
>> prevents bsod bugcheck code 101 when under heavy load, today I tried
>> to upgrade my windows 7 hvm's to build 7077 and found that the
>> installer/bootloader locks up if viridian=1 is set.
>>
>> It is not the installer that locks up as such, its the windows 7
>> equivalent of the boot progress bar that all recent versions of
>> windows display before the graphics drivers are loaded and the display
>> switches to a higher resolution with the mouse active.
I can reproduce this on our Xen bits (which is 3.3.x plus some patches,
including the viridian code).
When I modify the viridian code to not advertise the APIC-via-MSR
capability, Windows 7 boots just fine. With it, it hangs at the same
point you describe.
I don't recall that this happened when I initially tested Windows 7, so
perhaps something changed in the vlapic code that triggers this issue.
- Frank
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Re: windows7 installer lockup with viridian=1
2009-04-27 21:52 ` Frank van der Linden
@ 2009-04-28 8:04 ` Tim Deegan
2009-04-29 8:08 ` Tim Deegan
0 siblings, 1 reply; 7+ messages in thread
From: Tim Deegan @ 2009-04-28 8:04 UTC (permalink / raw)
To: Frank van der Linden; +Cc: Andrew Lyon, Xen-devel
At 22:52 +0100 on 27 Apr (1240872772), Frank van der Linden wrote:
> Andrew Lyon wrote:
> > On Sun, Apr 26, 2009 at 6:02 PM, Andrew Lyon <andrew.lyon@gmail.com> wrote:
> >> Hi,
> >>
> >> I've been testing both 64 and 32 bit flavour of windows 7 on Xen since
> >> the first public beta release, a few weeks ago I upgraded to Xen
> >> unstable and added viridian=1 to all of my smp windows guests as it
> >> prevents bsod bugcheck code 101 when under heavy load, today I tried
> >> to upgrade my windows 7 hvm's to build 7077 and found that the
> >> installer/bootloader locks up if viridian=1 is set.
> >>
> >> It is not the installer that locks up as such, its the windows 7
> >> equivalent of the boot progress bar that all recent versions of
> >> windows display before the graphics drivers are loaded and the display
> >> switches to a higher resolution with the mouse active.
>
> I can reproduce this on our Xen bits (which is 3.3.x plus some patches,
> including the viridian code).
>
> When I modify the viridian code to not advertise the APIC-via-MSR
> capability, Windows 7 boots just fine. With it, it hangs at the same
> point you describe.
>
> I don't recall that this happened when I initially tested Windows 7, so
> perhaps something changed in the vlapic code that triggers this issue.
Win7 changes the meaning of some of the bits in the viridian interface,
so with what we have now it ends up thinking it doesn't have to EOI any
interrupts (or something similar). A patch is on the way soon.
Cheers,
Tim.
--
Tim Deegan <Tim.Deegan@citrix.com>
Principal Software Engineer, Citrix Systems (R&D) Ltd.
[Company #02300071, SL9 0DZ, UK.]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Re: windows7 installer lockup with viridian=1
2009-04-28 8:04 ` Tim Deegan
@ 2009-04-29 8:08 ` Tim Deegan
2009-05-23 12:59 ` Andrew Lyon
0 siblings, 1 reply; 7+ messages in thread
From: Tim Deegan @ 2009-04-29 8:08 UTC (permalink / raw)
To: Frank van der Linden; +Cc: Andrew Lyon, Xen-devel
[-- Attachment #1: Type: text/plain, Size: 543 bytes --]
At 09:04 +0100 on 28 Apr (1240909473), Tim Deegan wrote:
> At 22:52 +0100 on 27 Apr (1240872772), Frank van der Linden wrote:
> Win7 changes the meaning of some of the bits in the viridian interface,
> so with what we have now it ends up thinking it doesn't have to EOI any
> interrupts (or something similar). A patch is on the way soon.
Does the attached patch help?
(Keir, please don't apply it yet)
Tim.
--
Tim Deegan <Tim.Deegan@citrix.com>
Principal Software Engineer, Citrix Systems (R&D) Ltd.
[Company #02300071, SL9 0DZ, UK.]
[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 2556 bytes --]
diff -r 9fdcd3ab84b7 xen/arch/x86/hvm/viridian.c
--- a/xen/arch/x86/hvm/viridian.c Mon Apr 27 15:40:09 2009 +0100
+++ b/xen/arch/x86/hvm/viridian.c Mon Apr 27 19:59:05 2009 -0700
@@ -22,6 +22,7 @@
#define VIRIDIAN_MSR_EOI 0x40000070
#define VIRIDIAN_MSR_ICR 0x40000071
#define VIRIDIAN_MSR_TPR 0x40000072
+#define VIRIDIAN_MSR_APIC_ASSIST 0x40000073
/* Viridian Hypercall Status Codes. */
#define HV_STATUS_SUCCESS 0x0000
@@ -49,14 +50,14 @@ int cpuid_viridian_leaves(unsigned int l
return 0;
leaf -= 0x40000000;
- if ( leaf > 5 )
+ if ( leaf > 6 )
return 0;
*eax = *ebx = *ecx = *edx = 0;
switch ( leaf )
{
case 0:
- *eax = 0x40000005; /* Maximum leaf */
+ *eax = 0x40000006; /* Maximum leaf */
*ebx = 0x7263694d; /* Magic numbers */
*ecx = 0x666F736F;
*edx = 0x76482074;
@@ -192,6 +193,36 @@ int wrmsr_viridian_regs(uint32_t idx, ui
vlapic_set_reg(vcpu_vlapic(current), APIC_TASKPRI, eax & 0xff);
break;
+ case VIRIDIAN_MSR_APIC_ASSIST: {
+ /* We don't support the APIC assist page, and that fact is
+ reflected in our CPUID flags. However, Windows 7 build
+ 7000 has a bug which means that it doesn't recognise that,
+ and tries to use the page anyway. We therefore have to
+ fake up just enough to keep win7 happy. Fortunately,
+ that's really easy: just setting the first four bytes in
+ the page to zero effectively disables the page again, so
+ that's what we do. */
+ /* Semantically, the first four bytes are supposed to be a
+ flag saying whether the guest really needs to issue an EOI.
+ Setting that flag to zero means that it must always issue
+ one, which is what we want. Once a page has been
+ repurposed as an APIC assist page the guest isn't allowed
+ to set anything in it, so the flag remains zero and all is
+ fine. The guest is allowed to clear flags in the page, but
+ that doesn't cause us any problems. */
+ uint32_t first_word;
+ paddr_t page_start;
+
+ if (!(val & 1)) {
+ /* APIC assist page is being disabled -> nothing to do */
+ return 1;
+ }
+ page_start = val & ~1ul;
+ first_word = 0;
+ hvm_copy_to_guest_phys(page_start, &first_word, sizeof(first_word));
+ break;
+ }
+
default:
return 0;
}
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Re: windows7 installer lockup with viridian=1
2009-04-29 8:08 ` Tim Deegan
@ 2009-05-23 12:59 ` Andrew Lyon
2009-05-23 13:28 ` Keir Fraser
0 siblings, 1 reply; 7+ messages in thread
From: Andrew Lyon @ 2009-05-23 12:59 UTC (permalink / raw)
To: Tim Deegan; +Cc: Frank van der Linden, Xen-devel
On Wed, Apr 29, 2009 at 9:08 AM, Tim Deegan <Tim.Deegan@citrix.com> wrote:
> At 09:04 +0100 on 28 Apr (1240909473), Tim Deegan wrote:
>> At 22:52 +0100 on 27 Apr (1240872772), Frank van der Linden wrote:
>> Win7 changes the meaning of some of the bits in the viridian interface,
>> so with what we have now it ends up thinking it doesn't have to EOI any
>> interrupts (or something similar). A patch is on the way soon.
>
> Does the attached patch help?
>
> (Keir, please don't apply it yet)
>
> Tim.
>
> --
> Tim Deegan <Tim.Deegan@citrix.com>
> Principal Software Engineer, Citrix Systems (R&D) Ltd.
> [Company #02300071, SL9 0DZ, UK.]
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>
>
Sorry, I got sidetracked and didn't get around to testing the patch,
I've now tested it and can report that it solves the problem of
windows 7 locking up on boot.
And performance is much better with viridian enabled, previously it
was quite laggy in both vnc and rdp even with nothing much running,
its noticeably better now.
Andy
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Re: windows7 installer lockup with viridian=1
2009-05-23 12:59 ` Andrew Lyon
@ 2009-05-23 13:28 ` Keir Fraser
0 siblings, 0 replies; 7+ messages in thread
From: Keir Fraser @ 2009-05-23 13:28 UTC (permalink / raw)
To: Andrew Lyon, Tim Deegan; +Cc: Frank van der Linden, Xen-devel
On 23/05/2009 13:59, "Andrew Lyon" <andrew.lyon@gmail.com> wrote:
> Sorry, I got sidetracked and didn't get around to testing the patch,
> I've now tested it and can report that it solves the problem of
> windows 7 locking up on boot.
>
> And performance is much better with viridian enabled, previously it
> was quite laggy in both vnc and rdp even with nothing much running,
> its noticeably better now.
There's a strong argument for turning viridian=1 on by default for
newly-created domains then. At least in xen-unstable (post 3.4).
-- Keir
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-05-23 13:28 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-26 17:02 windows7 installer lockup with viridian=1 Andrew Lyon
2009-04-26 17:28 ` Andrew Lyon
2009-04-27 21:52 ` Frank van der Linden
2009-04-28 8:04 ` Tim Deegan
2009-04-29 8:08 ` Tim Deegan
2009-05-23 12:59 ` Andrew Lyon
2009-05-23 13:28 ` Keir Fraser
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.