This service will be undergoing maintenance at 00:00 UTC, 2016-08-01. It is expected to last about 1 hours

Bug 494002

Summary: qemu vga segfault under kvm-autotest
Product: [Fedora] Fedora Reporter: Mark McLoughlin <markmc>
Component: qemuAssignee: Mark McLoughlin <markmc>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: dwmw2, gcosta, knoel, markmc, virt-maint
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
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:

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)