Bug 89286 - Xorg SEGFAULT on 3d/glx related application
Summary: Xorg SEGFAULT on 3d/glx related application
Status: RESOLVED NOTABUG
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/radeonsi (show other bugs)
Version: 10.3
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact: Default DRI bug account
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-23 20:03 UTC by Peter Barth
Modified: 2015-02-24 09:24 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
kernel dmesg (77.15 KB, text/plain)
2015-02-23 20:03 UTC, Peter Barth
Details

Description Peter Barth 2015-02-23 20:03:46 UTC
Created attachment 113766 [details]
kernel dmesg

I have a debian jessie install and Xorg segfaults on any 3d/glx related application. The application works (i.e. 3D rendering works) but on process exit Xorg crashes. I'm using a custom 3D app, but this also happens with a simple "glxinfo" on exit.

I have gdb'ed it for a stacktrace:

#0  0x0000000000000020 in ?? ()
#1  0x00007ffff0b66f62 in pb_get_base_buffer (offset=0x7fffffffd83c, base_buf=0x7fffffffd840, buf=<optimized out>) at ../../../../../../../src/gallium/auxiliary/pipebuffer/pb_buffer.h:197
#2  get_radeon_bo (_buf=<optimized out>) at ../../../../../../../src/gallium/winsys/radeon/drm/radeon_drm_bo.c:96
#3  0x00007ffff0b674e3 in radeon_bo_get_tiling (_buf=<optimized out>, microtiled=0x7fffffffd908, macrotiled=0x7fffffffd90c, bankw=0x7fffffffd950, bankh=0x7fffffffd954, tile_split=0x7fffffffd95c, 
    stencil_tile_split=0x7fffffffd960, mtilea=0x7fffffffd958, scanout=0x7fffffffd903) at ../../../../../../../src/gallium/winsys/radeon/drm/radeon_drm_bo.c:690
#4  0x00007ffff0b788f2 in r600_texture_from_handle (screen=0x5555559fa640, templ=0x7fffffffe6d0, whandle=<optimized out>) at ../../../../../../src/gallium/drivers/radeon/r600_texture.c:826
#5  0x00007ffff0953bcf in dri2_create_image_from_winsys (_screen=<optimized out>, width=1280, height=1024, format=4099, whandle=whandle@entry=0x7fffffffe760, pitch=1280, loaderPrivate=0x0)
    at ../../../../../../src/gallium/state_trackers/dri/dri2.c:733
#6  0x00007ffff0953df8 in dri2_create_image_from_name (_screen=<optimized out>, width=<optimized out>, height=<optimized out>, format=<optimized out>, name=<optimized out>, pitch=<optimized out>, loaderPrivate=0x0)
    at ../../../../../../src/gallium/state_trackers/dri/dri2.c:759
#7  0x00007fffecfa220c in ?? () from /usr/lib/x86_64-linux-gnu/libEGL.so.1
#8  0x00007fffecf968e7 in eglCreateImageKHR () from /usr/lib/x86_64-linux-gnu/libEGL.so.1
#9  0x00007ffff1d8ee14 in _glamor_egl_create_image (glamor_egl=<optimized out>, glamor_egl=<optimized out>, depth=<optimized out>, name=1, stride=<optimized out>, height=<optimized out>, width=<optimized out>)
    at ../../../../glamor/glamor_egl.c:137
#10 glamor_egl_create_textured_pixmap (pixmap=pixmap@entry=0x55555652a8a0, handle=handle@entry=45, stride=stride@entry=5120) at ../../../../glamor/glamor_egl.c:302
#11 0x00007ffff1d8f03d in glamor_egl_create_textured_screen (screen=screen@entry=0x5555560fcc50, handle=handle@entry=45, stride=stride@entry=5120) at ../../../../glamor/glamor_egl.c:232
#12 0x00007ffff1d8f13d in glamor_egl_create_textured_screen_ext (screen=screen@entry=0x5555560fcc50, handle=45, stride=5120, back_pixmap=back_pixmap@entry=0x0) at ../../../../glamor/glamor_egl.c:254
#13 0x00007ffff222f48c in radeon_glamor_create_screen_resources (screen=screen@entry=0x5555560fcc50) at ../../src/radeon_glamor.c:67
#14 0x00007ffff2227e0a in RADEONCreateScreenResources_KMS (pScreen=0x5555560fcc50) at ../../src/radeon_kms.c:258
#15 0x00005555556204de in xf86CrtcCreateScreenResources (screen=0x5555560fcc50) at ../../../../hw/xfree86/modes/xf86Crtc.c:709
#16 0x00005555555af456 in dix_main (argc=3, argv=0x7fffffffebf8, envp=<optimized out>) at ../../dix/main.c:223
#17 0x00007ffff5d15b45 in __libc_start_main (main=0x5555555998e0 <main>, argc=3, argv=0x7fffffffebf8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffebe8) at libc-start.c:287
#18 0x000055555559990e in _start ()

It's a dual CPU Xeon E5 server with a onboard matrox card:
# lspci |grep VGA
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Oland PRO [Radeon R7 240]
07:01.0 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (rev 0a)

I have Xorg 7.7+7, that is xserver 1.16.4, there's no old glamor package flying around (as asked on IRC). It's mesa 10.3.2-1, kernel 3.16.0-4-amd64.

I had to create a xorg.conf so the driver will load/find my card. It looks like this:

Section "Device"
        Identifier  "radeon"
        Driver      "radeon"
        BusID       "PCI:03:00:0"
EndSection
Comment 1 Michel Dänzer 2015-02-24 01:30:54 UTC
The backtrace looks like it happens during server reset, i.e. you're running the client without any other clients, not even a window manager, right? If you can't or don't want to run a window manager, I recommend starting Xorg with -noreset (if Xorg should continue running after the client exits) or -terminate (if Xorg should terminate after the client exits) to avoid the problem.
Comment 2 Peter Barth 2015-02-24 08:58:05 UTC
Thanks :*) Without reset it doesn't crash as you said.
Comment 3 Michel Dänzer 2015-02-24 09:24:05 UTC
It is a bug, but a pretty low priority one.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.