Skip to content
This repository was archived by the owner on Jan 26, 2024. It is now read-only.
This repository was archived by the owner on Jan 26, 2024. It is now read-only.

clIcdGetPlatformIDsKHR crash if multiple llvm based implementations present #153

@t0b3

Description

@t0b3

observed behaviour
clIcdGetPlatformIDsKHR() crashes if multiple llvm based implementations present (using radeonsi GPU)

  • mesa 22.2.1
  • ROCm 5.1.3

output

> clinfo
mesa: CommandLine Error: Option 'h' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options

backtrace

Thread 1 "clinfo" received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44      pthread_kill.c: No such file or directory.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007ffff7de8cef in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007ffff7d9ba22 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007ffff7d86469 in __GI_abort () at abort.c:79
#4  0x00007fffedd768d2 in llvm::report_fatal_error(llvm::Twine const&, bool) () from /usr/lib/llvm/14/lib64/libLLVM-14.so
#5  0x00007fffedd76a45 in llvm::report_fatal_error(char const*, bool) () from /usr/lib/llvm/14/lib64/libLLVM-14.so
#6  0x00007fffedd5ac8a in ?? () from /usr/lib/llvm/14/lib64/libLLVM-14.so
#7  0x00007fffedd5af3a in llvm::cl::Option::addArgument() () from /usr/lib/llvm/14/lib64/libLLVM-14.so
#8  0x00007fffe0654bd0 in llvm::cl::alias::done (this=0x7fffe0f4c840 <SectionHeadersShorter>) at /usr/lib/llvm/14/include/llvm/Support/CommandLine.h:1910
#9  llvm::cl::alias::alias<char [2], llvm::cl::desc, llvm::cl::aliasopt> (this=0x7fffe0f4c840 <SectionHeadersShorter>) at /usr/lib/llvm/14/include/llvm/Support/CommandLine.h:1928
#10 0x00007fffe064957c in __static_initialization_and_destruction_0 (__initialize_p=__initialize_p@entry=1, __priority=__priority@entry=65535) at /var/tmp/portage/dev-libs/rocm-comgr-5.1.3/work/ROCm-CompilerSupport-rocm-5.1.3/lib/comgr/src/comgr-objdump.cpp:180
#11 0x00007fffe064a303 in _GLOBAL__sub_I_comgr_objdump.cpp(void) () at /var/tmp/portage/dev-libs/rocm-comgr-5.1.3/work/ROCm-CompilerSupport-rocm-5.1.3/lib/comgr/src/comgr-objdump.cpp:2440
#12 0x00007ffff7fcceee in call_init (env=0x7fffffffd738, argv=0x7fffffffd728, argc=1, l=<optimized out>) at dl-init.c:70
#13 call_init (l=<optimized out>, argc=1, argv=0x7fffffffd728, env=0x7fffffffd738) at dl-init.c:26
#14 0x00007ffff7fccfdc in _dl_init (main_map=0x5555558573b0, argc=1, argv=0x7fffffffd728, env=0x7fffffffd738) at dl-init.c:117
#15 0x00007ffff7eae175 in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized out>, args=<optimized out>) at /var/tmp/portage/sys-libs/glibc-2.35-r8/work/glibc-2.35/elf/dl-error-skeleton.c:182
#16 0x00007ffff7fd3cd6 in dl_open_worker (a=a@entry=0x7fffffffcbc0) at dl-open.c:808
#17 0x00007ffff7eae114 in __GI__dl_catch_exception (exception=<optimized out>, operate=<optimized out>, args=<optimized out>) at /var/tmp/portage/sys-libs/glibc-2.35-r8/work/glibc-2.35/elf/dl-error-skeleton.c:208
#18 0x00007ffff7fd406b in _dl_open (file=<optimized out>, mode=-2147483647, caller_dlopen=0x7ffff7c6929c <amd::Os::loadLibrary_(char const*)+24>, nsid=-2, argc=1, argv=0x7fffffffd728, env=0x7fffffffd738) at dl-open.c:883
#19 0x00007ffff7de2ff8 in dlopen_doit (a=a@entry=0x7fffffffce30) at dlopen.c:56
#20 0x00007ffff7eae114 in __GI__dl_catch_exception (exception=exception@entry=0x7fffffffcd90, operate=<optimized out>, args=<optimized out>) at /var/tmp/portage/sys-libs/glibc-2.35-r8/work/glibc-2.35/elf/dl-error-skeleton.c:208
#21 0x00007ffff7eae1df in __GI__dl_catch_error (objname=0x7fffffffcde8, errstring=0x7fffffffcdf0, mallocedp=0x7fffffffcde7, operate=<optimized out>, args=<optimized out>) at /var/tmp/portage/sys-libs/glibc-2.35-r8/work/glibc-2.35/elf/dl-error-skeleton.c:227
#22 0x00007ffff7de2ac8 in _dlerror_run (operate=operate@entry=0x7ffff7de2fa0 <dlopen_doit>, args=args@entry=0x7fffffffce30) at dlerror.c:138
#23 0x00007ffff7de30b1 in dlopen_implementation (dl_caller=<optimized out>, mode=<optimized out>, file=<optimized out>) at dlopen.c:71
#24 ___dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:81
#25 0x00007ffff7c6929c in amd::Os::loadLibrary_ (filename=filename@entry=0x7ffff7d1bca6 "libamd_comgr.so.2") at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCclr-rocm-5.1.3/os/os_posix.cpp:178
#26 0x00007ffff7c6b95b in amd::Os::loadLibrary (libraryname=libraryname@entry=0x7ffff7d1bca6 "libamd_comgr.so.2") at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCclr-rocm-5.1.3/os/os.cpp:76
#27 0x00007ffff7ccf996 in amd::Comgr::LoadLib () at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCclr-rocm-5.1.3/device/comgrctx.cpp:37
#28 0x00007ffff7c586b9 in std::__invoke_impl<bool, bool (&)()> (__f=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/bits/invoke.h:61
#29 std::__invoke<bool (&)()> (__fn=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/bits/invoke.h:96
#30 std::call_once<bool (&)()>(std::once_flag&, bool (&)())::{lambda()#1}::operator()() const (__closure=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/mutex:776
#31 std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<bool (&)()>(std::once_flag&, bool (&)())::{lambda()#1}>(bool (&)())::{lambda()#1}::operator()() const (__closure=0x0) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/mutex:712
#32 std::once_flag::_Prepare_execution::_Prepare_execution<std::call_once<bool (&)()>(std::once_flag&, bool (&)())::{lambda()#1}>(bool (&)())::{lambda()#1}::_FUN() () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/mutex:712
#33 0x00007ffff7dec10a in __pthread_once_slow (once_control=0x7ffff7d589d8 <amd::Comgr::initialized>, init_routine=0x7ffff74d4c50 <__once_proxy>) at pthread_once.c:116
#34 0x00007ffff7c539ea in __gthread_once (__func=<optimized out>, __once=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/x86_64-pc-linux-gnu/bits/gthr-default.h:700
#35 std::call_once<bool (&)()> (__f=<optimized out>, __once=...) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/mutex:783
#36 amd::Device::ValidateComgr (this=this@entry=0x555555856dd0) at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCclr-rocm-5.1.3/device/device.cpp:488
#37 0x00007ffff7c90f2a in roc::NullDevice::create (this=this@entry=0x555555856dd0, isa=...) at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCclr-rocm-5.1.3/device/rocm/rocdevice.cpp:130
#38 0x00007ffff7c91684 in roc::NullDevice::init () at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCclr-rocm-5.1.3/device/rocm/rocdevice.cpp:301
#39 0x00007ffff7c537ec in amd::Device::init () at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCclr-rocm-5.1.3/device/device.cpp:424
#40 0x00007ffff7c88bac in amd::Runtime::init () at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCclr-rocm-5.1.3/platform/runtime.cpp:74
#41 0x00007ffff7c2708f in ShouldLoadPlatform () at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCm-OpenCL-Runtime-rocm-5.1.3/amdocl/cl_icd.cpp:226
#42 operator() (__closure=<optimized out>) at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCm-OpenCL-Runtime-rocm-5.1.3/amdocl/cl_icd.cpp:276
#43 std::__invoke_impl<void, clIcdGetPlatformIDsKHR(cl_uint, _cl_platform_id**, cl_uint*)::<lambda()> > (__f=...) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/bits/invoke.h:61
#44 std::__invoke<clIcdGetPlatformIDsKHR(cl_uint, _cl_platform_id**, cl_uint*)::<lambda()> > (__fn=...) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/bits/invoke.h:96
#45 operator() (__closure=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/mutex:776
#46 operator() (__closure=0x0) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/mutex:712
#47 _FUN () at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/mutex:712
#48 0x00007ffff7dec10a in __pthread_once_slow (once_control=0x7ffff7d50a00 <clIcdGetPlatformIDsKHR::initOnce>, init_routine=0x7ffff74d4c50 <__once_proxy>) at pthread_once.c:116
#49 0x00007ffff7c271a1 in __gthread_once (__func=<optimized out>, __once=0x7ffff7d50a00 <clIcdGetPlatformIDsKHR::initOnce>) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/x86_64-pc-linux-gnu/bits/gthr-default.h:700
#50 std::call_once<clIcdGetPlatformIDsKHR(cl_uint, _cl_platform_id**, cl_uint*)::<lambda()> > (__f=..., __once=...) at /usr/lib/gcc/x86_64-pc-linux-gnu/11.3.0/include/g++-v11/mutex:783
#51 clIcdGetPlatformIDsKHR (num_entries=<optimized out>, platforms=0x0, num_platforms=0x7fffffffd3d8) at /var/tmp/portage/dev-libs/rocm-opencl-runtime-5.1.3/work/ROCm-OpenCL-Runtime-rocm-5.1.3/amdocl/cl_icd.cpp:276
#52 0x00007ffff7f62824 in _find_and_check_platforms (num_icds=3) at /var/tmp/portage/dev-libs/ocl-icd-2.3.0/work/ocl-icd-2.3.0/ocl_icd_loader.c:469
#53 __initClIcd () at /var/tmp/portage/dev-libs/ocl-icd-2.3.0/work/ocl-icd-2.3.0/ocl_icd_loader.c:773
#54 0x00007ffff7dec10a in __pthread_once_slow (once_control=0x7ffff7f88740 <once_init>, init_routine=0x7ffff7f61fd9 <__initClIcd>) at pthread_once.c:116
#55 0x00007ffff7f6160e in _initClIcd_real () at /var/tmp/portage/dev-libs/ocl-icd-2.3.0/work/ocl-icd-2.3.0/ocl_icd_loader.c:816
#56 0x00007ffff7f64406 in _initClIcd () at /var/tmp/portage/dev-libs/ocl-icd-2.3.0/work/ocl-icd-2.3.0/ocl_icd_loader.c:853
#57 clGetPlatformIDs (num_entries=num_entries@entry=0, platforms=platforms@entry=0x0, num_platforms=num_platforms@entry=0x7fffffffd590) at /var/tmp/portage/dev-libs/ocl-icd-2.3.0/work/ocl-icd-2.3.0/ocl_icd_loader.c:1014
#58 0x00005555555681d3 in main (argc=1, argv=0x7fffffffd728) at src/clinfo.c:3945

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions