| Summary: | [i915 i965 gem-classic] glean case texCube deadlock | ||
|---|---|---|---|
| Product: | Mesa | Reporter: | Shuang He <shuang.he> |
| Component: | Drivers/DRI/i915 | Assignee: | Eric Anholt <eric> |
| Status: | VERIFIED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | medium | ||
| Version: | unspecified | ||
| Hardware: | Other | ||
| OS: | Linux (All) | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
| Attachments: |
xorg conf
xorg log |
||
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. Created attachment 19612 [details]
xorg conf
Created attachment 19613 [details]
xorg log
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. verified against drm d9c2f65dd8e50736a33e97a55c257ef6843e1ce7 thanks |
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.
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