Bug 494002 - qemu vga segfault under kvm-autotest
qemu vga segfault under kvm-autotest
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: qemu (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Mark McLoughlin
Fedora Extras Quality Assurance
: Reopened
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-04-03 13:04 EDT by Mark McLoughlin
Modified: 2013-01-09 06:27 EST (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-04-09 11:08:54 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Mark McLoughlin 2009-04-03 13:04:34 EDT
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 13:12:05 EDT
* Fri Apr  3 2009 Mark McLoughlin <markmc@redhat.com> - 2:0.10-5
- Fix vga segfault under kvm-autotest (#494002)
Comment 2 Avi Kivity 2009-04-07 08:54:45 EDT
That patch is bad bad bad, please use the new one I posted on qemu-devel.
Comment 3 Mark McLoughlin 2009-04-09 11:08:54 EDT
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@redhat.com> - 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.