[aarch64-port-dev ] Issue with turning off UseOnStackReplacement with TieredCompilation
Andy Johnson
andy.johnson at linaro.org
Tue Feb 11 06:34:08 PST 2014
On the aarch64 port, running any Java class (even something as simple as
HelloWorld) with the server compiler will hang the VM if both
-XX:+TieredCompilation (the current default) and -XX:-UseOnStackReplacement
are specified. Since 8 of the jtreg hotspot tests explicitly specify that
-XX:-UseOnStackReplacement is to be used in conjunction with running the
tests, all 8 of them will eventually time out, whereas they run to
completion with any other combination of these options.
When running under gdb, the JVM will create (and exit) 19 threads in the
process of running the tests (or even when running HelloWorld) with the
default settings. When TieredCompilation is on and UseOnStackReplacement
is off, the JVM will create 13 threads and then hang. Thread 1 is in
pthread_join and all of the other threads are in pthread_cond_wait or in
pthread_cond_timedwait, except for thread 2:
(gdb) thread 2
[Switching to thread 2 (Thread 0x7fb6d1c210 (LWP 2448))]
#0 0x0000007fa1098c78 in ?? ()
(gdb) where
#0 0x0000007fa1098c78 in ?? ()
#1 0x0000000000000034 in ?? ()
#2 0x0000000000000034 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
If the PrintAssembly option is turned on, no code is printed, which I
believe indicates that this is some kind of infrastructure problem, not a
code generator problem.
If I run the same tests on the x86_64 build from the aarch64-port sources,
they all run to completion successfully.
-AndyJ
More information about the aarch64-port-dev
mailing list