[Bug 220767] lang/beignet: hangs if not linked against libpthread after jemalloc 5.0.0 update
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun Jul 16 15:18:54 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220767
Bug ID: 220767
Summary: lang/beignet: hangs if not linked against libpthread
after jemalloc 5.0.0 update
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Keywords: needs-qa, regression
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: x11 at FreeBSD.org
Reporter: jbeich at FreeBSD.org
CC: eric at camachat.org, jasone at FreeBSD.org,
threads at FreeBSD.org
Assignee: x11 at FreeBSD.org
Flags: maintainer-feedback?(x11 at FreeBSD.org)
After base r319971 some applications not already linked against threading
library started to hang in [umtxn] state. It affects at least Beignet. However,
bisecting jemalloc as part of libc requires 8 steps of rebasing
FreeBSD-specific changes.
Maybe someone can suggest more apps to try that can trigger the issue.
$ pkg install clinfo beignet # requires bug 217635
$ LD_PRELOAD=/lib/libthr.so.3 clinfo # works fine
$ gdb clinfo
(gdb) r
Starting program: /usr/local/bin/clinfo
Number of platforms 1
Platform Name Intel Gen OCL Driver
Platform Vendor Intel
Platform Version OpenCL 2.0 beignet 1.3
Platform Profile FULL_PROFILE
Platform Extensions
cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics
cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics
cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_image2d_from_buffer
cl_khr_depth_images cl_khr_spir cl_khr_icd cl_intel_accelerator
cl_intel_subgroups cl_intel_subgroups_short cl_khr_gl_sharing
Platform Extensions function suffix Intel
[New LWP 102018 of process 60317]
^C
Thread 1 received signal SIGINT, Interrupt.
_umtx_op_err () at /usr/src/lib/libthr/arch/amd64/amd64/_umtx_op_err.S:37
37 RSYSCALL_ERR(_umtx_op)
(gdb) bt
#0 _umtx_op_err () at /usr/src/lib/libthr/arch/amd64/amd64/_umtx_op_err.S:37
#1 0x0000000803c579e4 in __thr_umutex_lock (mtx=0x803e7dc78
<_mutex_static_lock>, id=101914)
at /usr/src/lib/libthr/thread/thr_umtx.c:80
#2 0x0000000803c61acc in _thr_umutex_lock (mtx=0x803e7dc78
<_mutex_static_lock>, id=101914)
at /usr/src/lib/libthr/thread/thr_umtx.h:123
#3 0x0000000803c619b4 in init_static (thread=0x80068b000, mutex=0x801348e50)
at /usr/src/lib/libthr/thread/thr_mutex.c:304
#4 0x0000000803c602f8 in check_and_init_mutex (mutex=0x801348e50,
m=0x7fffffff2de0)
at /usr/src/lib/libthr/thread/thr_mutex.c:598
#5 0x0000000803c5f689 in __pthread_mutex_trylock (mutex=0x801348e50)
at /usr/src/lib/libthr/thread/thr_mutex.c:614
#6 0x0000000800d656b9 in malloc_mutex_trylock_final (mutex=0x801348e10)
at /usr/src/contrib/jemalloc/include/jemalloc/internal/mutex.h:144
#7 0x0000000800d59602 in malloc_mutex_lock (tsdn=0x80063c088,
mutex=0x801348e10)
at /usr/src/contrib/jemalloc/include/jemalloc/internal/mutex.h:202
#8 0x0000000800d5b6b8 in __je_arena_tcache_fill_small (tsdn=0x80063c088,
arena=0x801344980,
tcache=0x80063c240, tbin=0x80063c2e0, binind=6, prof_accumbytes=0) at
jemalloc_arena.c:1433
#9 0x0000000800cd7013 in __je_tcache_alloc_small_hard (tsdn=0x80063c088,
arena=0x801344980,
tcache=0x80063c240, tbin=0x80063c2e0, binind=6,
tcache_success=0x7fffffff53f6)
at jemalloc_tcache.c:93
#10 0x0000000800d8ea3e in tcache_alloc_small (tsd=0x80063c088,
arena=0x801344980,
tcache=0x80063c240, size=96, binind=6, zero=true, slow_path=false)
at /usr/src/contrib/jemalloc/include/jemalloc/internal/tcache_inlines.h:86
#11 arena_malloc (tsdn=0x80063c088, arena=0x0, size=96, ind=6, zero=true,
tcache=0x80063c240,
slow_path=false) at
/usr/src/contrib/jemalloc/include/jemalloc/internal/arena_inlines_b.h:101
#12 iallocztm (tsdn=0x80063c088, size=96, ind=6, zero=true, tcache=0x80063c240,
is_internal=false,
arena=0x0, slow_path=false)
at
/usr/src/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_inlines_c.h:33
#13 imalloc_no_sample (sopts=0x7fffffff5300, dopts=0x7fffffff52d0,
tsd=0x80063c088, size=96,
usize=96, ind=6) at jemalloc_jemalloc.c:1654
#14 imalloc_body (sopts=0x7fffffff5300, dopts=0x7fffffff52d0, tsd=0x80063c088)
at jemalloc_jemalloc.c:1850
#15 imalloc (sopts=0x7fffffff5300, dopts=0x7fffffff52d0) at
jemalloc_jemalloc.c:1950
#16 __calloc (num=1, size=96) at jemalloc_jemalloc.c:2064
#17 0x0000000803c5fc0e in mutex_init (mutex=0x801348e50,
mutex_attr=0x803e72758 <_pthread_mutexattr_default>, calloc_cb=0x800d8bea0
<__calloc>)
at /usr/src/lib/libthr/thread/thr_mutex.c:292
#18 0x0000000803c619dc in init_static (thread=0x80068b000, mutex=0x801348e50)
at /usr/src/lib/libthr/thread/thr_mutex.c:307
#19 0x0000000803c602f8 in check_and_init_mutex (mutex=0x801348e50,
m=0x7fffffff60d0)
at /usr/src/lib/libthr/thread/thr_mutex.c:598
#20 0x0000000803c5f689 in __pthread_mutex_trylock (mutex=0x801348e50)
at /usr/src/lib/libthr/thread/thr_mutex.c:614
#21 0x0000000800d656b9 in malloc_mutex_trylock_final (mutex=0x801348e10)
at /usr/src/contrib/jemalloc/include/jemalloc/internal/mutex.h:144
#22 0x0000000800d59602 in malloc_mutex_lock (tsdn=0x80063c088,
mutex=0x801348e10)
at /usr/src/contrib/jemalloc/include/jemalloc/internal/mutex.h:202
#23 0x0000000800d5b6b8 in __je_arena_tcache_fill_small (tsdn=0x80063c088,
arena=0x801344980,
tcache=0x80063c240, tbin=0x80063c2e0, binind=6, prof_accumbytes=0) at
jemalloc_arena.c:1433
#24 0x0000000800cd7013 in __je_tcache_alloc_small_hard (tsdn=0x80063c088,
arena=0x801344980,
tcache=0x80063c240, tbin=0x80063c2e0, binind=6,
tcache_success=0x7fffffff86d6)
at jemalloc_tcache.c:93
#25 0x0000000800d72886 in tcache_alloc_small (tsd=0x80063c088,
arena=0x801344980,
tcache=0x80063c240, size=88, binind=6, zero=false, slow_path=false)
at /usr/src/contrib/jemalloc/include/jemalloc/internal/tcache_inlines.h:86
#26 arena_malloc (tsdn=0x80063c088, arena=0x0, size=88, ind=6, zero=false,
tcache=0x80063c240,
slow_path=false) at
/usr/src/contrib/jemalloc/include/jemalloc/internal/arena_inlines_b.h:101
#27 iallocztm (tsdn=0x80063c088, size=88, ind=6, zero=false,
tcache=0x80063c240, is_internal=false,
arena=0x0, slow_path=false)
at
/usr/src/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal_inlines_c.h:33
#28 imalloc_no_sample (sopts=0x7fffffff85e0, dopts=0x7fffffff85b0,
tsd=0x80063c088, size=88,
usize=96, ind=6) at jemalloc_jemalloc.c:1654
#29 imalloc_body (sopts=0x7fffffff85e0, dopts=0x7fffffff85b0, tsd=0x80063c088)
at jemalloc_jemalloc.c:1850
#30 imalloc (sopts=0x7fffffff85e0, dopts=0x7fffffff85b0) at
jemalloc_jemalloc.c:1950
#31 __malloc (size=88) at jemalloc_jemalloc.c:1981
#32 0x00000008033b81a8 in operator new (size=88) at
/usr/src/contrib/libc++/src/new.cpp:70
#33 0x000000080803aa89 in llvm::User::operator new(unsigned long, unsigned int)
()
from /usr/local/lib/beignet//libgbe.so
#34 0x0000000806ea6b34 in
clang::CodeGen::CodeGenFunction::StartFunction(clang::GlobalDecl,
clang::QualType, llvm::Function*, clang::CodeGen::CGFunctionInfo const&,
clang::CodeGen::FunctionArgList const&, clang::SourceLocation,
clang::SourceLocation) () from /usr/local/lib/beignet//libgbe.so
#35 0x0000000806ea8551 in
clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl,
llvm::Function*, clang::CodeGen::CGFunctionInfo const&) () from
/usr/local/lib/beignet//libgbe.so
#36 0x0000000806eba8d9 in
clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl,
llvm::GlobalValue*) () from /usr/local/lib/beignet//libgbe.so
#37 0x0000000806eb6774 in
clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl,
llvm::GlobalValue*) () from /usr/local/lib/beignet//libgbe.so
#38 0x0000000806ebc322 in
clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) ()
from /usr/local/lib/beignet//libgbe.so
#39 0x0000000806e3c82f in (anonymous
namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) () from
/usr/local/lib/beignet//libgbe.so
#40 0x0000000806e2fb85 in
clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) ()
from /usr/local/lib/beignet//libgbe.so
#41 0x00000008077d0462 in clang::ParseAST(clang::Sema&, bool, bool) ()
from /usr/local/lib/beignet//libgbe.so
#42 0x0000000806bdc2b9 in clang::FrontendAction::Execute() () from
/usr/local/lib/beignet//libgbe.so
#43 0x0000000806ba2cf1 in
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) ()
from /usr/local/lib/beignet//libgbe.so
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >,
std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > > >&, unsigned long,
char*, unsigned long*, unsigned int) () from /usr/local/lib/beignet//libgbe.so
#45 0x00000008067848b3 in gbe::programNewFromSource(unsigned int, char const*,
unsigned long, char const*, char*, unsigned long*) () from
/usr/local/lib/beignet//libgbe.so
#46 0x00000008019617c7 in cl_program_build (p=0x8006cd1c0, options=0x801992f4d
"")
at src/cl_program.c:626
#47 0x0000000801952782 in clBuildProgram (program=0x8006cd1c0, num_devices=1,
device_list=0x7fffffffe050, options=0x801992f4d "", pfn_notify=0x0,
user_data=0x0)
at src/cl_api.c:835
#48 0x00000008019757b4 in cl_self_test (device=0x801bcf2a0
<intel_skl_gt2_device>,
atomic_in_l3_flag=SELF_TEST_PASS) at src/cl_device_id.c:856
#49 0x0000000801975a3e in cl_get_device_ids (platform=0x801bcb3d8
<intel_platform_data>,
device_type=4294967295, num_entries=0, devices=0x0,
num_devices=0x8007e8cf0)
at src/cl_device_id.c:911
#50 0x00000008019554b3 in clGetDeviceIDs (platform=0x801bcb3d8
<intel_platform_data>,
device_type=4294967295, num_entries=0, devices=0x0,
num_devices=0x8007e8cf0)
at src/cl_api_device_id.c:43
#51 0x000000080083e065 in clGetDeviceIDs (platform=0x801bcb3d8
<intel_platform_data>,
device_type=4294967295, num_entries=0, devices=0x0,
num_devices=0x8007e8cf0)
at ocl_icd_loader_gen.c:58
#52 0x0000000000402341 in printPlatformInfo (p=0) at src/clinfo.c:459
#53 0x000000000040a3bd in main (argc=1, argv=0x7fffffffe2b8) at
src/clinfo.c:2676
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the freebsd-threads
mailing list