<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Which version of qemu-kvm do you use ?
      2.0 ?<br>
      <br>
      Dominique<br>
      <br>
      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 class="moz-txt-link-abbreviated" href="mailto:Spice-devel@lists.freedesktop.org">Spice-devel@lists.freedesktop.org</a>
      <br>
      <a 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>
  </body>
</html>