Bug 18035 - [i915 i965 gem-classic] glean case texCube deadlock
[i915 i965 gem-classic] glean case texCube deadlock
Status: VERIFIED FIXED
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i915
unspecified
Other Linux (All)
: medium normal
Assigned To: Eric Anholt
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2008-10-12 19:54 UTC by Shuang He
Modified: 2008-10-13 19:30 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
xorg conf (3.57 KB, text/plain)
2008-10-12 20:04 UTC, Shuang He
Details
xorg log (47.16 KB, text/plain)
2008-10-12 20:05 UTC, Shuang He
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Shuang He 2008-10-12 19:54:02 UTC
System Environment:
--------------------------

--Platform: G33 GM45

--Architecture(32-bit,64-bit,compatiblity):32bit 

Kernel: 2.6.27-rc5

Libdrm: c6109df93bc062d3ec2ff2808babe826532d11b3
Mesa:   (intel-2008-q3)46921a5ee832a3443894dcc98e065d2f535e899d
Xserver:(server-1.5-branch)97b9374a8af5a4cc52f9074feb4ce40cf0b90796
2D driver:(xf86-video-intel-2.5-branch)979bb109c6d76fe18b9e29f55afb2548f890bbfe



Bug detailed description:
-------------------------
glean/texCube deadlock:
^C
Program received signal SIGINT, Interrupt.
[Switching to Thread -1210886448 (LWP 16198)]
0xb7fc3424 in __kernel_vsyscall ()
(gdb) bt
#0  0xb7fc3424 in __kernel_vsyscall ()
#1  0x00d6d119 in __lll_lock_wait () from /lib/libpthread.so.0
#2  0x00d6889e in _L_lock_88 () from /lib/libpthread.so.0
#3  0x00d683aa in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x00cb47c6 in pthread_mutex_lock () from /lib/libc.so.6
#5  0xb7ad0170 in dri_fake_bo_wait_rendering (bo=0x83f5788)
    at intel_bufmgr_fake.c:725
#6  0xb7ad0e16 in dri_fake_bo_map_locked (bo=0x83f5788, write_enable=1)
    at intel_bufmgr_fake.c:990
#7  0xb7ad0ef5 in dri_fake_bo_map (bo=0x83f5788, write_enable=1)
    at intel_bufmgr_fake.c:1010
#8  0xb7acf009 in dri_bo_map (buf=0x83f5788, write_enable=1)
    at intel_bufmgr.c:72
#9  0xb7b05dd9 in intel_region_map (intel=0x810ff38, region=0x83f57e8)
    at intel_regions.c:65
#10 0xb7b04a83 in intel_miptree_image_map (intel=0x810ff38, mt=0x83f5628,
    face=0, level=0, row_stride=0x83f3dec, image_offsets=0x8131c68)
    at intel_mipmap_tree.c:407
#11 0xb7b18884 in intel_tex_map_level_images (intel=0x810ff38,
    intelObj=0x812b728, level=0) at intel_tex_validate.c:247
#12 0xb7b188f6 in intel_tex_map_images (intel=0x810ff38, intelObj=0x812b728)
    at intel_tex_validate.c:289
#13 0xb7b08251 in intelSpanRenderStart (ctx=0x810ff38) at intel_span.c:662
---Type <return> to continue, or q <return> to quit---
#14 0xb7cb6a4c in _swrast_ReadPixels (ctx=0x810ff38, x=1, y=1, width=1,
    height=1, format=6407, type=5126, packing=0x811bbb8, pixels=0xbfcc31d0)
    at swrast/s_readpix.c:562
#15 0xb7c80bd2 in _mesa_ReadPixels (x=1, y=1, width=1, height=1, format=6407,
    type=5126, pixels=0xbfcc31d0) at main/drawpix.c:336
#16 0x0809ab33 in GLEAN::TexCubeTest::TestNormalMap (this=0x80f4840,
    texCoordMode=true,
    modeName=0x80d2df0 "Direct specification of texture coordinates")
    at ttexcube.cpp:179
#17 0x0809b129 in GLEAN::TexCubeTest::runOne (this=0x80f4840, r=@0x8131db8,
    w=@0xbfcc32a4) at ttexcube.cpp:381
#18 0x0805b9bc in GLEAN::BaseTest<GLEAN::BasicResult>::run (this=0x80f4840,
    environment=@0xbfcc3330) at tbase.h:290
#19 0x080544bb in main (argc=6, argv=0xbfcc3474) at main.cpp:128
(gdb)



Current result:
----------------
glean/texCube deadlock at some point


Expected result:
----------------
run normally
Comment 1 Shuang He 2008-10-12 19:57:24 UTC
this issue seems caused by this commit:
commit 3169d9639bd002b43e4064cea32e0d262076c1e0
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Jun 12 23:22:26 2008 -0700

    intel: Protect bufmgr objects with a pthread mutex.

    We want to be able to use the bufmgr from multiple threads for GL, and thus
    we need to protect the internal structures.

    The pthread-stubs package is used so that programs not linked against
    pthreads get weak symbols to stubs and don't eat most of the cost.
Comment 2 Shuang He 2008-10-12 20:04:17 UTC
Created attachment 19612 [details]
xorg conf
Comment 3 Shuang He 2008-10-12 20:05:06 UTC
Created attachment 19613 [details]
xorg log
Comment 4 Eric Anholt 2008-10-13 13:44:36 UTC
commit 3e03d781f7c41a88d5d5f895be9c443bf3592ef0
Author: Eric Anholt <eric@anholt.net>
Date:   Mon Oct 13 13:41:10 2008 -0700

    intel: Avoid pthread mutex recursion in bufmgr_fake.
    
    Bug #18035. Fixes deadlock in glean texCube testcase.
Comment 5 Shuang He 2008-10-13 19:30:18 UTC
verified against drm d9c2f65dd8e50736a33e97a55c257ef6843e1ce7
thanks