On Sat, Dec 17, 2011 at 10:24:07AM -0600, Anthony Liguori wrote:
On 12/17/2011 09:25 AM, Richard W.M. Jones wrote:
On Sat, Dec 17, 2011 at 09:22:45AM -0600, Anthony Liguori wrote:
I've even further narrowed it down to the presents or lack of '-vga cirrus'. If you add '-vga cirrus' to the above command line, the guest will boot successfully.
Confirmed: Adding -vga cirrus to the command line cures it too.
That's a strange one :-)
vga sticks out a bit because it's one of the few places where we treat device memory as ram as a performance optimization.
The only time vga has been touched in between v0.15 and v1.0 was during the introduction of the memory API.
It's this commit:
commit d67c3f2cd92aed2247bfa8a9da61a902b7b2ff09 Author: Gerd Hoffmann kraxel@redhat.com Date: Wed Aug 10 17:34:13 2011 +0200
seabios: update to master commit 8e301472e324b6d6496d8b4ffc66863e99d7a505 user visible changes in seabios: * ahci is enabled by default (and thus in this build). * bootorder support for ahci. * two-pass pci allocator (orders bars by size for better packing). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
:040000 040000 76eb0c81b76563b55cb2bb5c484ccd48b8cfcded 5ec0d65d3a763a5566fe1f4c86269cad6d671020 M pc-bios :040000 040000 a5a7ea6e297c1e7490b0a2c28a06ce56e5be9449 78adb664d3ea82f1a4dd5ec239887ac5b0168a7f M roms
It can be reproduced by using virtio and -vga none with a number of PCI devices. The line below is what I used to bisect and reproduce 100% of the time. It's a 64-bit Fedora 15 guest.
$ qemu-system-x86_64 -drive file=/home/anthony/images/fedora.img,if=none,snapshot=on,id=hd0 -device virtio-balloon-pci,addr=03.0 -device virtio-blk-pci,addr=04.0,drive=hd0 -kernel ~/vmlinuz-2.6.38.6-26.rc1.fc15.x86_64 -initrd ~/initramfs-2.6.38.6-26.rc1.fc15.x86_64.img -append "root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap ro console=ttyS0 selinux=0" -nographic -nodefconfig -m 1G -no-reboot -no-hpet -device virtio-serial -chardev socket,path=/tmp/foo.sock,id=channel0,server,nowait -device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 -nodefaults -serial stdio -enable-kvm
My guess it that it has something to do with the changes to the PCI allocator. I've confirmed reverting this commit fixes the problem.
Confirmed: reverting this patch fixes it for me.
Note that we suspected this patch before, way back in September: https://lists.gnu.org/archive/html/qemu-devel/2011-09/msg03830.html
Rich.