[Bug 72716] New: SIGBUS in EVERGREENUploadToScreen after hibernation (Linux 3.12.4-tuxonice)

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Dec 14 11:53:14 PST 2013


https://bugs.freedesktop.org/show_bug.cgi?id=72716

          Priority: medium
            Bug ID: 72716
          Assignee: dri-devel at lists.freedesktop.org
           Summary: SIGBUS in EVERGREENUploadToScreen after hibernation
                    (Linux 3.12.4-tuxonice)
          Severity: normal
    Classification: Unclassified
                OS: Linux (All)
          Reporter: txtoxtox285 at googlemail.com
          Hardware: x86-64 (AMD64)
            Status: NEW
           Version: unspecified
         Component: DRM/Radeon
           Product: DRI

Created attachment 90784
  --> https://bugs.freedesktop.org/attachment.cgi?id=90784&action=edit
dmsg

How to reproduce:
* boot 3.12.4-tuxonice; do not start X
* suspend to disk
* resume
* start KDE 4.10.5
* start Firefox

==> X dies with SIGBUS

Graphics hardware:  [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series];
VID:PID 1002:68f9, SVID:SPID 1043:03d8

Software:
* Kernel 3.12.4-tuxonice
* Gentoo:
** xorg-x11-7.4-r2
** xorg-server-1.14.3-r2
** xf86-video-ati-7.2.0

GDB:
(gdb) bt
#0  __memcpy_ssse3_back () at
../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S:819
#1  0x00002af85fef84b4 in EVERGREENUploadToScreen (pDst=0x2187f90, x=0, y=0,
w=1516, h=43,
    src=0x21e1728 "", src_pitch=6064) at /usr/include/bits/string3.h:52
#2  0x00002af8603519dc in exaDoPutImage (src_stride=6064, bits=0x21e1728 "",
format=2, h=43, w=1516,
    y=<optimized out>, x=<optimized out>, pGC=0x1f373d0, pDrawable=0x2187f90,
depth=<optimized out>)
    at
/mnt/var-pub/tmp/portage/x11-base/xorg-server-1.14.3-r2/work/xorg-server-1.14.3/exa/exa_accel.c:212
#3  exaPutImage (pDrawable=0x2187f90, pGC=0x1f373d0, depth=32, x=0, y=0,
w=1516, h=43, leftPad=0,
    format=2, bits=0x21e1728 "")
    at
/mnt/var-pub/tmp/portage/x11-base/xorg-server-1.14.3-r2/work/xorg-server-1.14.3/exa/exa_accel.c:233
#4  0x000000000076616d in ProcPutImage (client=<optimized out>)
    at
/mnt/var-pub/tmp/portage/x11-base/xorg-server-1.14.3-r2/work/xorg-server-1.14.3/dix/dispatch.c:1966
#5  0x0000000000769556 in Dispatch ()
    at
/mnt/var-pub/tmp/portage/x11-base/xorg-server-1.14.3-r2/work/xorg-server-1.14.3/dix/dispatch.c:432
#6  0x0000000000757ef3 in main (argc=<optimized out>, argv=0x7fffd57dae58,
envp=<optimized out>)
    at
/mnt/var-pub/tmp/portage/x11-base/xorg-server-1.14.3-r2/work/xorg-server-1.14.3/dix/main.c:298

(gdb) info locals
pScrn = 0x1818d90
info = 0x1819350
accel_state = 0x2187f90
driver_priv = 0x1818d90 [bogus, should be 0x2052f10]
scratch = <optimized out>
copy_dst = 0x2024720
dst = 0x2af865f19000 <Address 0x2af865f19000 out of bounds>
size = <optimized out>
dst_domain = 4
bpp = <optimized out>
scratch_pitch = <optimized out>
copy_pitch = 6144
ret = <optimized out>
flush = <optimized out>
r = 1
i = <optimized out>
src_obj = {pitch = 3581782816, width = 32767, height = 1141, bpp = 0, domain =
0, bo = 0x1800018a33b0,
  tiling_flags = 3581782752, surface = 0x2af85fedec79
<RADEONEXAPixmapIsOffscreen+9>}
dst_obj = {pitch = 3581782784, width = 32767, height = 1614088140, bpp = 11000,
domain = 3581782784,
  bo = 0x2af85fedec79 <RADEONEXAPixmapIsOffscreen+9>, tiling_flags =
3581782816,
  surface = 0x2af8603507cc <exaPixmapHasGpuCopy_mixed+108>}
height = <optimized out>
base_align = <optimized out>
(gdb) p $driver_priv->bo
$1 = (struct radeon_bo *) 0x2024720
(gdb) p *((struct radeon_bo_gem*)copy_dst)
$2 = {base = {ptr = 0x2af865f19000, flags = 0, handle = 265, size = 7028736,
alignment = 256,
    domains = 4, cref = 1, bom = 0x1824130, space_accounted = 0,
referenced_in_cs = 0}, name = 0,
  map_count = 1, reloc_in_cs = {atomic = 0}, priv_ptr = 0x2af865f19000}
(gdb) x/x ((struct radeon_bo_gem*)copy_dst)->priv_ptr
0x2af865f19000: Cannot access memory at address 0x2af865f19000
(gdb) ^Z
[1]+  Stopped                 gdb -p $(pgrep X)
~ # grep 2af865f19000 /proc/$(pgrep X)/maps
2af865f19000-2af8665cd000 rw-s 10aa4c000 00:05 6534                     
/dev/dri/card0

---------------------------------------------------

Looks like EVERGREENUploadToScreen wants to memcpy into copy_dst->ptr,
which has a value of 0x2af865f19000 and which (according to /proc/$(pgrep
X)/maps)
*is* mapped and should be writable; however, it isn’t.

At this point I lost my wits and would be grateful for a pointer where this
memory is mapped,
both in user and kernel space.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20131214/2c4ac9d5/attachment-0001.html>


More information about the dri-devel mailing list