Bug 494002 - qemu vga segfault under kvm-autotest
Summary: qemu vga segfault under kvm-autotest
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: qemu
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Mark McLoughlin
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-04-03 17:04 UTC by Mark McLoughlin
Modified: 2013-01-09 11:27 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-04-09 15:08:54 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Mark McLoughlin 2009-04-03 17:04:34 UTC
Running kvm-autotest with qemu-0.10-4.fc11.x86_64, I got:

#0  vga_draw_line24_32 (s1=<value optimized out>, d=0x7f8dd256f004 "", 
    s=0x7f8df30deb77 "\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351
\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\3
43\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351
\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\3
43\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351
\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343\351\355\3
43\351\355\343\351\355\343\351\355\343\351\355\343\351\355\343", <incomplete sequence \351>..., 
    width=<value optimized out>) at /usr/src/debug/qemu-kvm-0.10/qemu/hw/vga_template.h:484
#1  0x000000000043ba84 in vga_draw_graphic (full_update=0, s=<value optimized out>)
    at /usr/src/debug/qemu-kvm-0.10/qemu/hw/vga.c:1768
#2  vga_update_display (full_update=0, s=<value optimized out>) at /usr/src/debug/qemu-kvm-0.10/qemu/hw/vga.c:1864
#3  0x000000000045f62d in cirrus_do_copy (h=<value optimized out>, w=<value optimized out>, src=<value optimized out>, 
    dst=<value optimized out>, s=<value optimized out>) at /usr/src/debug/qemu-kvm-0.10/qemu/hw/cirrus_vga.c:767
#4  cirrus_bitblt_videotovideo_copy (h=<value optimized out>, w=<value optimized out>, src=<value optimized out>, 
    dst=<value optimized out>, s=<value optimized out>) at /usr/src/debug/qemu-kvm-0.10/qemu/hw/cirrus_vga.c:795
#5  cirrus_bitblt_videotovideo (h=<value optimized out>, w=<value optimized out>, src=<value optimized out>, 
    dst=<value optimized out>, s=<value optimized out>) at /usr/src/debug/qemu-kvm-0.10/qemu/hw/cirrus_vga.c:917
#6  cirrus_bitblt_start (h=<value optimized out>, w=<value optimized out>, src=<value optimized out>, 
    dst=<value optimized out>, s=<value optimized out>) at /usr/src/debug/qemu-kvm-0.10/qemu/hw/cirrus_vga.c:1058
#7  0x000000000045f85d in cirrus_write_bitblt (reg_value=<value optimized out>, s=<value optimized out>)
    at /usr/src/debug/qemu-kvm-0.10/qemu/hw/cirrus_vga.c:1079
#8  cirrus_hook_write_gr (reg_value=<value optimized out>, s=<value optimized out>)
    at /usr/src/debug/qemu-kvm-0.10/qemu/hw/cirrus_vga.c:1584
#9  0x0000000000461327 in cirrus_mmio_writel (opaque=0x7f8dd256f004, addr=140247096029184, val=4294967042)
    at /usr/src/debug/qemu-kvm-0.10/qemu/hw/cirrus_vga.c:3055
#10 0x00000000004c35e0 in cpu_physical_memory_rw (addr=Cannot access memory at address 0x7f8dd2f6eeb0
) at /usr/src/debug/qemu-kvm-0.10/qemu/exec.c:3000
#11 0x000000000051f776 in kvm_mmio_write (opaque=<value optimized out>, addr=140247096029188, 
    data=0x7f8dd256f000 <Address 0x7f8dd256f000 out of bounds>, len=-217191561)
    at /usr/src/debug/qemu-kvm-0.10/qemu/qemu-kvm.c:708
#12 0x000000000054de42 in handle_mmio (kvm=Cannot access memory at address 0x7f8dd2f6ef38
) at libkvm.c:835
#13 0x000000000054e414 in kvm_run (kvm=Cannot access memory at address 0x7f8dd2f6ef88
) at libkvm.c:970
#14 0x000000000051ffe9 in kvm_cpu_exec (env=0x7f8df30deb77) at /usr/src/debug/qemu-kvm-0.10/qemu/qemu-kvm.c:205
#15 0x00000000005202d0 in kvm_main_loop_cpu (env=<value optimized out>) at /usr/src/debug/qemu-kvm-0.10/qemu/qemu-kvm.c:414
#16 ap_main_loop (env=<value optimized out>) at /usr/src/debug/qemu-kvm-0.10/qemu/qemu-kvm.c:451

This Avi patch upstream seems to fix it:

http://git.kernel.org/?p=linux/kernel/git/avi/kvm-userspace.git;a=commitdiff;h=425393d3a213efb587a4ba6e3349de3e13cc19bd

I'll backport to maint/2.6.30 and build in rawhide.

Comment 1 Mark McLoughlin 2009-04-03 17:12:05 UTC
* Fri Apr  3 2009 Mark McLoughlin <markmc> - 2:0.10-5
- Fix vga segfault under kvm-autotest (#494002)

Comment 2 Avi Kivity 2009-04-07 12:54:45 UTC
That patch is bad bad bad, please use the new one I posted on qemu-devel.

Comment 3 Mark McLoughlin 2009-04-09 15:08:54 UTC
Indeed the new patch is a lot nicer :-)

http://www.mail-archive.com/kvm@vger.kernel.org/msg12669.html

* Thu Apr  9 2009 Mark McLoughlin <markmc> - 2:0.10-7
- Add a much cleaner fix for vga segfault (#494002)


Note You need to log in before you can comment on or make changes to this bug.