Bug 61364 - LLVM assertion when starting X11
Summary: LLVM assertion when starting X11
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Other (show other bugs)
Version: 9.1
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: mesa-dev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-23 18:13 UTC by John Kåre Alsaker
Modified: 2016-01-26 12:32 UTC (History)
7 users (show)

See Also:
i915 platform:
i915 features:


Attachments
LLVM Assertion (33.93 KB, image/png)
2013-02-23 18:13 UTC, John Kåre Alsaker
Details

Description John Kåre Alsaker 2013-02-23 18:13:06 UTC
Created attachment 75418 [details]
LLVM Assertion

I get an LLVM assertion when running startx in VMware.
This applies to git (I tried commit 7ae6864f0dbec33270c83c4181a8182139662d0f) and Arch Linux's 9.1 packages.
Comment 1 John Kåre Alsaker 2013-02-24 00:47:47 UTC
Backtrace

#0  0x00007f40f703d2c5 in raise () from /usr/lib/libc.so.6
#1  0x00007f40f703e748 in abort () from /usr/lib/libc.so.6
#2  0x00007f40f7036312 in __assert_fail_base () from /usr/lib/libc.so.6
#3  0x00007f40f70363c2 in __assert_fail () from /usr/lib/libc.so.6
#4  0x00007f40f45b1b59 in llvm::cl::parser<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::addLiteralOption<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)> (this=0x7f40f38ae9d0 <ISHeuristic+96>, Name=0x7f40f308a1d5 "default", 
    V=@0x7fff83a92008: 0x7f40f4598600 <llvm::createDefaultScheduler(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>, HelpStr=0x7f40f2f2b68c "Best scheduler for the target")
    at /home/zoxc/llvm-build/llvm/include/llvm/Support/CommandLine.h:646
#5  0x00007f40f45b25aa in llvm::RegisterPassParser<llvm::RegisterScheduler>::NotifyAdd (this=0x7f40f38ae9c8 <ISHeuristic+88>, N=0x7f40f308a1d5 "default", 
    C=0x7f40f4598600 <llvm::createDefaultScheduler(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>, D=0x7f40f2f2b68c "Best scheduler for the target")
    at /home/zoxc/llvm-build/llvm/include/llvm/CodeGen/MachinePassRegistry.h:148
#6  0x00007f40f480ba8f in llvm::MachinePassRegistry::Add (this=0x7f40f5a18320 <llvm::RegisterScheduler::Registry>, Node=0x7f40f38aeb38 <defaultListDAGScheduler>)
    at /home/zoxc/llvm-build/llvm/lib/CodeGen/MachinePassRegistry.cpp:41
#7  0x00007f40f22ae445 in llvm::RegisterScheduler::RegisterScheduler (this=0x7f40f38aeb38 <defaultListDAGScheduler>, N=0x7f40f308a1d5 "default", 
    D=0x7f40f2f2b68c "Best scheduler for the target", C=0x7f40f4598600 <llvm::createDefaultScheduler(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>)
    at /home/zoxc/llvm-build/llvm/include/llvm/CodeGen/SchedulerRegistry.h:43
#8  0x00007f40f22a0e1d in llvm::RegisterScheduler::RegisterScheduler (this=0x7f40f38aeb38 <defaultListDAGScheduler>, N=0x7f40f308a1d5 "default", 
    D=0x7f40f2f2b68c "Best scheduler for the target", C=0x7f40f4598600 <llvm::createDefaultScheduler(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>)
    at /home/zoxc/llvm-build/llvm/include/llvm/CodeGen/SchedulerRegistry.h:43
#9  0x00007f40f1bb4129 in __cxx_global_var_init38 () from /usr/lib/xorg/modules/dri/swrast_dri.so
#10 0x00007f40f1bb41aa in global constructors keyed to a () from /usr/lib/xorg/modules/dri/swrast_dri.so
#11 0x00007f40f8c629d6 in call_init () from /lib64/ld-linux-x86-64.so.2
#12 0x00007f40f8c62aba in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#13 0x00007f40f8c66af9 in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#14 0x00007f40f8c62816 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#15 0x00007f40f8c66329 in _dl_open () from /lib64/ld-linux-x86-64.so.2
#16 0x00007f40f85c3026 in ?? () from /usr/lib/libdl.so.2
#17 0x00007f40f8c62816 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#18 0x00007f40f85c35ec in ?? () from /usr/lib/libdl.so.2
#19 0x00007f40f85c30c1 in dlopen () from /usr/lib/libdl.so.2
#20 0x00007f40f5ce80a6 in ?? () from /usr/lib/xorg/modules/extensions/libglx.so
#21 0x00007f40f5ce79d6 in ?? () from /usr/lib/xorg/modules/extensions/libglx.so
#22 0x00007f40f5ce6fda in ?? () from /usr/lib/xorg/modules/extensions/libglx.so
#23 0x00000000004aace9 in InitExtensions ()
#24 0x000000000042670c in ?? ()
#25 0x00007f40f7029a15 in __libc_start_main () from /usr/lib/libc.so.6
#26 0x0000000000426c0d in _start ()
Comment 2 John Kåre Alsaker 2013-03-01 21:44:53 UTC
Created a LLVM bug report since it looks a LLVM issue: http://llvm.org/bugs/show_bug.cgi?id=15410
Comment 3 Alex Smith 2013-03-10 10:23:08 UTC
This appears to only be an issue with the VMware driver. Also, disabling glx-tls works around the problem.
Comment 4 John Kåre Alsaker 2013-03-10 19:26:11 UTC
My trace is from llvmpipe, disabling LLVM and using svga works fine.

Could this be something that causes the RegisterScheduler global to be constructed twice triggering the assertion? Does --enable-glx-tls do something weird?
Comment 5 Jakob Bornecrantz 2013-03-10 21:23:58 UTC
Ajax, Jerome does this bug look like the load LLVM multiple times bug?

Cheers, Jakob.
Comment 6 Jerome Glisse 2013-03-20 14:59:18 UTC
Yeah i saw same issue on radeon
Comment 7 Armin K 2013-04-04 17:04:22 UTC
Does it work if you build Mesa with --with-llvm-shared-libs? Tom mentioned something like this happens if Mesa is linked to static LLVM libaries.
Comment 8 Armin K 2013-04-04 17:08:39 UTC
It might be related to this ... See the explanation

http://lists.freedesktop.org/archives/mesa-dev/2013-January/032944.html
Comment 9 Loïc Yhuel 2013-04-23 09:24:06 UTC
For me building mesa with --with-llvm-shared-libs fixes the crash.
Comment 10 Tom Stellard 2013-11-11 22:58:09 UTC
This should be fixed now in mesa master when linking with llvm static libraries.  Can you re-test?
Comment 11 Timothy Arceri 2016-01-26 12:32:13 UTC
Assuming fixed as per last comment, and no recent bug activity.


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.