UseG1GC unimplemented in generate_Reference_get_entry()?
Chris Phillips @ T O
ChrisPhi at LGonQn.Org
Mon Sep 10 11:01:24 PDT 2012
Hi
You should probably address this to the icedtea list or the Zero list as
zero is effectively
unsupported by the maintainers of the g1 code (they don't build or test
with it...)
In any event the code that you are using was re-enabled by me recently
so when
I get some time (still working on jsr 292 atm), I'll try to re-enable g1
with zero [no promises].
If you can do it then submit a patch...
Cheers!
Chris
On 10/09/12 01:49 PM, the.6th.month at gmail.com wrote:
> 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
>
>
>
> _______________________________________________
> hotspot-gc-use mailing list
> hotspot-gc-use at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20120910/ead7a874/attachment.html
More information about the hotspot-gc-use
mailing list