UseG1GC unimplemented in generate_Reference_get_entry()?
the.6th.month at gmail.com
the.6th.month at gmail.com
Mon Sep 10 10:49:46 PDT 2012
hi,all:
I just compiled an icedtea-2.3.2 version on my laptop, the kernel version
is Linux-3.5.3. I manually built it for the purpose of systemtap, and hence
added --enable-systemtap compile option.
Then I ran a simple test program with vm args: -Xms1024m -Xmx1024m -Xmn256m
-XX:PermSize=256m -XX:+UseG1GC, and I got a core dump. The bt output from
gdb is shown below:
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/lib64/java/bin/java -Xms1024m -Xmx1024m
-Xmn256m -XX:PermSize=256m -XX:+Us'.
Program terminated with signal 6, Aborted.
#0 0x00007fcfb8950a25 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007fcfb8950a25 in raise () from /lib64/libc.so.6
#1 0x00007fcfb89521d8 in abort () from /lib64/libc.so.6
#2 0x00007fcfb853eaa1 in os::abort (dump_core=true)
at /tmp/icedtea-2.3.2/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:1589
#3 0x00007fcfb85f18cf in VMError::report_and_die (this=0x7fcfb970f7d0)
at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/share/vm/utilities/vmError.cpp:1004
#4 0x00007fcfb836c95f in report_vm_error (detail_msg=0x0,
error_msg=0x7fcfb860cd26 "Unimplemented()",
line=<optimized out>, file=<optimized out>)
at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/share/vm/utilities/debug.cpp:220
#5 report_vm_error (detail_msg=0x0, error_msg=0x7fcfb860cd26
"Unimplemented()", line=<optimized out>,
file=<optimized out>) at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/share/vm/utilities/debug.cpp:260
#6 report_unimplemented (file=<optimized out>, line=<optimized out>)
at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/share/vm/utilities/debug.cpp:261
#7 0x00007fcfb836c15d in generate_Reference_get_entry (this=0x7fcfb970fb00)
at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:1649
#8 AbstractInterpreterGenerator::generate_method_entry
(this=0x7fcfb970fb00, kind=<optimized out>)
at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:1725
#9 0x00007fcfb8368634 in CppInterpreterGenerator::generate_all
(this=0x7fcfb970fb00)
at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:128
#10 0x00007fcfb8367be2 in CppInterpreter::initialize ()
at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/share/vm/interpreter/cppInterpreter.cpp:45
#11 0x00007fcfb84182e9 in interpreter_init ()
at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/share/vm/interpreter/interpreter.cpp:113
#12 0x00007fcfb83ea4d5 in init_globals () at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/share/vm/runtime/init.cpp:102
#13 0x00007fcfb85c2bdc in Threads::create_vm (args=<optimized out>,
canTryAgain=0x7fcfb970fd90)
at
/tmp/icedtea-2.3.2/openjdk/hotspot/src/share/vm/runtime/thread.cpp:3182
#14 0x00007fcfb844a67f in JNI_CreateJavaVM (vm=0x7fcfb970fe30,
penv=0x7fcfb970fe40, args=<optimized out>)
at /tmp/icedtea-2.3.2/openjdk/hotspot/src/share/vm/prims/jni.cpp:5112
#15 0x00007fcfb90f56dc in InitializeJVM (penv=0x7fcfb970fe40,
pvm=0x7fcfb970fe30, ifn=<optimized out>)
at ../../../src/share/bin/java.c:1115
---Type <return> to continue, or q <return> to quit---
#16 JavaMain (_args=<optimized out>) at ../../../src/share/bin/java.c:360
#17 0x00007fcfb9306eae in start_thread () from /lib64/libpthread.so.0
#18 0x00007fcfb8a0ffed in clone () from /lib64/libc.so.6
And I dug
into /tmp/icedtea-2.3.2/openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:1649
following the stacktrace, and discovered that:
address InterpreterGenerator::generate_Reference_get_entry(void) {
#ifndef SERIALGC
if (UseG1GC) {
// We need to generate have a routine that generates code to:
// * load the value in the referent field
// * passes that value to the pre-barrier.
//
// In the case of G1 this will record the value of the
// referent in an SATB buffer if marking is active.
// This will cause concurrent marking to mark the referent
// field as live.
Unimplemented();
}
#endif // SERIALGC
// If G1 is not enabled then attempt to go through the accessor entry
point
// Reference.get is an accessor
return generate_accessor_entry();
}
I am wondering how the generate_Reference_get_entry function is triggered
and why it runs into Unimplemented() when UseG1GC enabled. Moreover, is the
iced-tea 2.3.2 shipped with G1GC by default or I should enable it with some
sort of compilation option?
Any help would be truly appreciated.
All the best,
Leon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20120911/44883704/attachment.html
More information about the hotspot-gc-use
mailing list