<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <div class="moz-cite-prefix">On 05/13/2014 04:59 PM, Dominique
      Rodrigues wrote:<br>
    </div>
    <blockquote cite="mid:537287B0.1020103@nanocloud.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">Which version of qemu-kvm do you use
        ? 2.0 ?<br>
        <br>
      </div>
    </blockquote>
    <br>
    All packages are F20 standard:<br>
    <br>
    qemu-kvm-1.6.2-4.fc20.x86_64<br>
    <br>
    However, the crash happens in the xorg package, which is:<br>
    <br>
    xorg-x11-drv-qxl-0.1.1-3.fc20.x86_64<br>
    <br>
    <br>
    <blockquote cite="mid:537287B0.1020103@nanocloud.com" type="cite">
      <div class="moz-cite-prefix"> Le 13/05/2014 22:01, David Mansfield
        a écrit :<br>
      </div>
      <blockquote cite="mid:53727A1C.5030401@dm.cobite.com" type="cite">Hi

        All: <br>
        <br>
        I'd like help tracking down the solution to a very repeatable
        xorg crash.  I can cause the crash by either: <br>
        <br>
        1) logging in and opening the second monitor without having
        removed ~/.config/monitors.xml first. <br>
        <br>
        2) using "shutter" (screen capture utility) to capture a
        "selection" <br>
        <br>
        I have a few coredumps with what seem like valid backtraces. 
        (see below for an example). <br>
        <br>
        The xorg crash is caused by an assert is happening in frame#4,
        function qxl_bo_output_bo_reloc(): <br>
        <br>
            if (qxl->cmds.n_reloc_bos >= MAX_RELOCS ||
        qxl->cmds.n_relocs >= MAX_RELOCS) <br>
              assert(0); <br>
        <br>
        According to GDB, both n_reloc_bos = 96 and n_relocs = 96.
        (MAX_RELOCS=96). <br>
        <br>
        It seems that the "loop" in qxl_image_create (qxl_image.c) is
        "chunking" the the create into pieces no bigger than
        "chunk_size" and that this size is not big enough (or MAX_RELOCS
        is too small). <br>
        <br>
        From GDB (inside qxl_image_create() on or about line 174): <br>
        <br>
        (gdb) print h <br>
        $13 = 31 <br>
        (gdb) print height <br>
        $14 = 847 <br>
        (gdb) print chunk_size <br>
        $15 = 262144 <br>
        (gdb) print n_lines <br>
        $16 = 17 <br>
        <br>
        So we have 31 lines left to go (out of 847), and we're copying
        17 lines at a time.  Close but no cigar. <br>
        <br>
        Is the fix to increase the chunk_size or to increase MAX_RELOCS
        or is something else broken here? <br>
        <br>
        FYI: I'm running F20 fully updated guest, host and client (all
        same box).  I'm running "dual head" 1920x1200 (3840x1200 total
        FB resolution). <br>
        <br>
        Thanks, <br>
        David Mansfield <br>
        Cobite, INC. <br>
        <br>
        Thread 1 (Thread 0x7f35578169c0 (LWP 1256)): <br>
        #0  0x0000003810c35c39 in __GI_raise (sig=sig@entry=6) at
        ../nptl/sysdeps/unix/sysv/linux/raise.c:56 <br>
                resultvar = 0 <br>
                pid = 1256 <br>
                selftid = 1256 <br>
        #1  0x0000003810c37348 in __GI_abort () at abort.c:89 <br>
                save_stage = 2 <br>
                act = {__sigaction_handler = {sa_handler =
        0x7fff57866f2a, sa_sigaction = 0x7fff57866f2a}, sa_mask = {__val
        = {240800730995, <br>
                      139867066025450, 482, 4294967295, 240799384819, 4,
        140734661805968, 49, 0, 140734661806112, 0, 0, 0, 21474836480, <br>
                      139867078164480, 240800742792}}, sa_flags =
        1456027411, sa_restorer = 0x7f3556c94720
        <__PRETTY_FUNCTION__.25149>} <br>
                sigs = {__val = {32, 0 <repeats 15 times>}} <br>
        #2  0x0000003810c2eb96 in __assert_fail_base (fmt=0x3810d7bd88
        "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", <br>
            assertion=assertion@entry=0x7f3556c93713 "0",
        file=file@entry=0x7f3556c945ea "qxl_kms.c", line=line@entry=482,
        <br>
            function=function@entry=0x7f3556c94720
        <__PRETTY_FUNCTION__.25149> "qxl_bo_output_bo_reloc") at
        assert.c:92 <br>
                str = 0x2832860 "" <br>
                total = 4096 <br>
        #3  0x0000003810c2ec42 in __GI___assert_fail
        (assertion=assertion@entry=0x7f3556c93713 "0",
        file=file@entry=0x7f3556c945ea "qxl_kms.c", <br>
            line=line@entry=482, function=function@entry=0x7f3556c94720
        <__PRETTY_FUNCTION__.25149> "qxl_bo_output_bo_reloc") at
        assert.c:101 <br>
        No locals. <br>
        #4  0x00007f3556c80005 in qxl_bo_output_bo_reloc
        (qxl=<optimized out>, dst_offset=<optimized out>,
        _dst_bo=<optimized out>, <br>
            _src_bo=<optimized out>) at qxl_kms.c:482 <br>
                qxl = <optimized out> <br>
                dst_offset = <optimized out> <br>
                _dst_bo = <optimized out> <br>
                _src_bo = <optimized out> <br>
                dst_bo = <optimized out> <br>
                src_bo = <optimized out> <br>
                r = <optimized out> <br>
        #5  0x00007f3556c76e31 in qxl_image_create
        (qxl=qxl@entry=0x2226900, data=0x39338a0 "",
        data@entry=0x2d3f8a0 "", x=x@entry=0, y=y@entry=0, <br>
            width=width@entry=3840, height=height@entry=847,
        stride=stride@entry=15360, Bpp=4, fallback=fallback@entry=0) at
        qxl_image.c:174 <br>
                chunk_size = 262144 <br>
                n_lines = 17 <br>
                bo = 0x2621080 <br>
                chunk = 0x7f354fc1c000 <br>
                hash = <optimized out> <br>
                image = <optimized out> <br>
                head_bo = 0x2668620 <br>
                tail_bo = 0x2621030 <br>
                image_bo = <optimized out> <br>
                dest_stride = 15360 <br>
                h = 31 <br>
        #6  0x00007f3556c77546 in qxl_surface_put_image_for_reals
        (dest=dest@entry=0x2244fb0, x=x@entry=0, y=y@entry=162,
        width=width@entry=3840, <br>
            height=height@entry=847, src=src@entry=0x2d3f8a0 "",
        src_pitch=src_pitch@entry=15360) at qxl_surface.c:794 <br>
                drawable_bo = 0x26204a0 <br>
                drawable = <optimized out> <br>
                qxl = 0x2226900 <br>
                rect = {top = 162, left = 0, bottom = 1009, right =
        3840} <br>
                image_bo = <optimized out> <br>
        #7  0x00007f3556c7888c in qxl_surface_put_image (dest=0x2244fb0,
        x=0, y=162, width=<optimized out>, height=<optimized
        out>, <br>
            src=0x2d3f8a0 "", src_pitch=15360) at qxl_surface.c:824 <br>
                gross = 847 <br>
                h2 = 191 <br>
                use_hack = 1 <br>
        #8  0x00007f3556c84c6d in uxa_copy_n_to_n
        (pSrcDrawable=pSrcDrawable@entry=0x2ae0040,
        pDstDrawable=0x283e120, pGC=0x266c110, <br>
            pbox=0x2a50358, pbox@entry=0x2a50350, nbox=0, nbox@entry=2,
        dx=dx@entry=0, dy=dy@entry=0, reverse=0, upsidedown=0, <br>
            bitplane=bitplane@entry=0, closure=0x0) at uxa-accel.c:582 <br>
                stride = <optimized out> <br>
                bpp = 4 <br>
                src = <optimized out> <br>
                screen = 0x2230280 <br>
                src_off_x = 0 <br>
                src_off_y = 0 <br>
                dst_off_x = 0 <br>
                dst_off_y = 0 <br>
                pSrcPixmap = <optimized out> <br>
                pDstPixmap = 0x226a580 <br>
                src_region = {extents = {x1 = 32, y1 = 0, x2 = 0, y2 =
        0}, data = 0x48000000e00} <br>
                dst_region = {extents = {x1 = 1, y1 = 0, x2 = 0, y2 =
        0}, data = 0x40000002} <br>
                __FUNCTION__ = "uxa_copy_n_to_n" <br>
        #9  0x00000000005818ed in miCopyRegion
        (pSrcDrawable=pSrcDrawable@entry=0x2ae0040,
        pDstDrawable=pDstDrawable@entry=0x283e120, <br>
            pGC=pGC@entry=0x266c110,
        pDstRegion=pDstRegion@entry=0x7fff57864cb0, dx=dx@entry=0,
        dy=dy@entry=0, <br>
            copyProc=copyProc@entry=0x7f3556c84650
        <uxa_copy_n_to_n>, bitPlane=bitPlane@entry=0,
        closure=closure@entry=0x0) at micopy.c:121 <br>
                careful = <optimized out> <br>
                reverse = <optimized out> <br>
                upsidedown = <optimized out> <br>
                pbox = 0x2a50350 <br>
                nbox = 2 <br>
                pboxNew1 = <optimized out> <br>
                pboxNew2 = 0x0 <br>
                pboxBase = <optimized out> <br>
                pboxNext = <optimized out> <br>
                pboxTmp = <optimized out> <br>
        #10 0x0000000000581eb0 in miDoCopy (pSrcDrawable=0x2ae0040,
        pDstDrawable=0x283e120, pGC=0x266c110, xIn=0, yIn=0,
        widthSrc=3840, <br>
            heightSrc=heightSrc@entry=1200, xOut=xOut@entry=0,
        yOut=yOut@entry=0, copyProc=copyProc@entry=0x7f3556c84650
        <uxa_copy_n_to_n>, <br>
            bitPlane=bitPlane@entry=0, closure=closure@entry=0x0) at
        micopy.c:297 <br>
                prgnSrcClip = 0x0 <br>
                freeSrcClip = 0 <br>
                prgnExposed = 0x0 <br>
                rgnDst = {extents = {x1 = 0, y1 = 0, x2 = 3840, y2 =
        1200}, data = 0x2a50340} <br>
                dx = 0 <br>
                dy = 0 <br>
                box_x1 = <optimized out> <br>
                box_y1 = <optimized out> <br>
                box_x2 = <optimized out> <br>
                box_y2 = <optimized out> <br>
                fastSrc = <optimized out> <br>
                fastDst = <optimized out> <br>
                fastExpose = <optimized out> <br>
        #11 0x00007f3556c839be in uxa_copy_area
        (pSrcDrawable=<optimized out>, pDstDrawable=<optimized
        out>, pGC=<optimized out>, <br>
            srcx=<optimized out>, srcy=<optimized out>,
        width=<optimized out>, height=1200, dstx=0, dsty=0) at
        uxa-accel.c:642 <br>
                dsty = 0 <br>
                srcx = <optimized out> <br>
                pSrcDrawable = <optimized out> <br>
                dstx = 0 <br>
                height = 1200 <br>
                width = <optimized out> <br>
                srcy = <optimized out> <br>
                pGC = <optimized out> <br>
                pDstDrawable = <optimized out> <br>
        #12 0x00000000004361c6 in ProcCopyArea (client=0x2612d30) at
        dispatch.c:1626 <br>
                pDst = 0x283e120 <br>
                pSrc = 0x2ae0040 <br>
                pGC = 0x266c110 <br>
                stuff = 0x293c3ac <br>
                pRgn = <optimized out> <br>
                rc = <optimized out> <br>
        #13 0x000000000043a327 in Dispatch () at dispatch.c:432 <br>
                clientReady = 0x24a9c70 <br>
                result = <optimized out> <br>
                client = 0x2612d30 <br>
                nready = 0 <br>
                icheck = 0x822670 <checkForInput> <br>
                start_tick = 740 <br>
        #14 0x00000000004288da in main (argc=12, argv=0x7fff57864f68,
        envp=<optimized out>) at main.c:298 <br>
                i = <optimized out> <br>
                alwaysCheckForInput = {0, 1} <br>
        <br>
        _______________________________________________ <br>
        Spice-devel mailing list <br>
        <a moz-do-not-send="true" class="moz-txt-link-abbreviated"
          href="mailto:Spice-devel@lists.freedesktop.org">Spice-devel@lists.freedesktop.org</a>
        <br>
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
          href="http://lists.freedesktop.org/mailman/listinfo/spice-devel">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a>
        <br>
      </blockquote>
      <br>
      <br>
      <div class="moz-signature">-- <br>
        <div style="color:#617d8c;">
          <h4>Dominique Rodrigues<br>
          </h4>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>