mx does not like .hotspot_compiler

Eric Caspole eric.caspole at amd.com
Mon Jul 14 22:21:14 UTC 2014


Thanks Tom, using the command line versions is OK for us.

Here is the actual assert we hit while compiling Graal parts in -server 
mode with debug builds. This doesn't happen every time but I can usually 
get it to happen at least once in about 10 minutes of running our tests 
in a loop.

Looks like: https://bugs.openjdk.java.net/browse/JDK-8030654
I vote for fixing this in debug builds.
Thanks,
Eric



#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error 
(/home/ecaspole/views/graal-openjdk/graal/src/share/vm/opto/chaitin.cpp:282), 
pid=16931, tid=140031381886720
#  assert(_cfg.get_block_for_node(proj) == borig) failed: incorrect 
block for kill projections
#
# JRE version: OpenJDK Runtime Environment (8.0) (build 
1.8.0-internal-ecaspole_2014_07_10_12_42-b00)
# Java VM: OpenJDK 64-Bit Server VM (25.0-b63-internal-graal-0.3-debug 
mixed mode linux-amd64 compressed oops)
# Core dump written. Default location: 
/home/ecaspole/views/graal-openjdk/graal/core or core.16931
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x00007f5bb01a2000):  JavaThread "C2 CompilerThread0" 
daemon [_thread_in_native, id=16941, 
stack(0x00007f5b98b65000,0x00007f5b98c66000)]

Stack: [0x00007f5b98b65000,0x00007f5b98c66000],  sp=0x00007f5b98c60440, 
  free space=1005k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, 
C=native code)
V  [libjvm.so+0xc7a096]  VMError::report(outputStream*)+0x1112
V  [libjvm.so+0xc7b583]  VMError::report_and_die()+0x427
V  [libjvm.so+0x611781]  report_vm_error(char const*, int, char const*, 
char const*)+0xa5
V  [libjvm.so+0x4fb4af]  PhaseChaitin::clone_projs(Block*, unsigned int, 
Node*, Node*, unsigned int&)+0x145
V  [libjvm.so+0xb53c2e]  PhaseChaitin::split_Rematerialize(Node*, 
Block*, unsigned int, unsigned int&, GrowableArray<unsigned int>, int, 
unsigned int*, Node**, bool)+0
x4f6
V  [libjvm.so+0xb57873]  PhaseChaitin::Split(unsigned int, 
ResourceArea*)+0x398f
V  [libjvm.so+0x4fbc07]  PhaseChaitin::Register_Allocate()+0x557
V  [libjvm.so+0x5a0b4e]  Compile::Code_Gen()+0x284
V  [libjvm.so+0x59aaa8]  Compile::Compile(ciEnv*, C2Compiler*, 
ciMethod*, int, bool, bool, bool)+0x1348
V  [libjvm.so+0x4d651b]  C2Compiler::compile_method(ciEnv*, ciMethod*, 
int)+0x109
V  [libjvm.so+0x5b103d] 
CompileBroker::invoke_compiler_on_method(CompileTask*)+0x4d1
V  [libjvm.so+0x5b042b]  CompileBroker::compiler_thread_loop()+0x3b3
V  [libjvm.so+0xc24316]  compiler_thread_entry(JavaThread*, Thread*)+0x57
V  [libjvm.so+0xc1f68e]  JavaThread::thread_main_inner()+0x124
V  [libjvm.so+0xc1f55b]  JavaThread::run()+0x163
V  [libjvm.so+0xabda91]  java_start(Thread*)+0x1bb


Current CompileTask:
C2: 296437 23955       4 
com.oracle.graal.phases.common.CanonicalizerPhase$Instance::performReplacement 
(552 bytes)



On 07/14/2014 05:08 PM, Tom Rodriguez wrote:
> hotspot_compiler as an automatically read file is deprecated in the product since it’s a potential security hole.  If .hotspot_compiler exists it will emit a warning about the new behavior which screws up tools that parse VM output like mx.  You can use -XX:CompileCommandFile= instead, just don’t use the .hotspot_compiler name.
>
> tom
>
> On Jul 14, 2014, at 1:26 PM, Eric Caspole <eric.caspole at amd.com> wrote:
>
>> We are usually running Graal with -server so only the HSAIL part is built with Graal. We were hitting an assert in C2 code and eventually I tried using a .hotspot_compiler file, but it makes mx fail, for example:
>>
>>
>> $ cat .hotspot_compiler
>> exclude java/lang/String indexOf
>>
>>
>> $ ./mx.sh  --vm server --vmbuild fastdebug  unittest -server -ea -esa -XX:-TraceGPUInteraction  -Dcom.amd.sumatra.offload.immediate=true hsail.test.lambda
>> Traceback (most recent call last):
>>   File "/home/ecaspole/views/graal-default/graal/mxtool/mx.py", line 4912, in <module>
>>     main()
>>   File "/home/ecaspole/views/graal-default/graal/mxtool/mx.py", line 4849, in main
>>     defaultJdk = JavaConfig(opts.java_home, opts.java_dbg_port)
>>   File "/home/ecaspole/views/graal-default/graal/mxtool/mx.py", line 1740, in __init__
>>     assert output[1] == 'version'
>> AssertionError
>>
>>
>> Even a completely empty .hotspot_compiler file causes it to fail.
>> Eventually I found -XX:CompileCommand= worked OK.
>


More information about the graal-dev mailing list