RFR: shenandoah_barrier_stubs size is not enough to fit the stubs

Aleksey Shipilev shade at redhat.com
Thu Jun 14 17:42:09 UTC 2018


Fails with:

STDOUT:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (codeBuffer.cpp:1007), pid=40010, tid=40012
#  guarantee(sect->end() <= tend) failed: sanity
#


Fix:

diff -r a35cb74d08cb src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp
--- a/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp	Thu Jun 14 18:37:15
2018 +0200
+++ b/src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp	Thu Jun 14 19:16:01
2018 +0200
@@ -948,7 +948,7 @@

 void ShenandoahBarrierSetAssembler::barrier_stubs_init() {
   if (ShenandoahWriteBarrier || ShenandoahStoreValEnqueueBarrier) {
-    int stub_code_size = 1536;
+    int stub_code_size = 4096;
     ResourceMark rm;
     BufferBlob* bb = BufferBlob::create("shenandoah_barrier_stubs", stub_code_size);
     CodeBuffer buf(bb);


Testing: x86_64 {fastdebug|release}, aarch64 {fastdebug|release} tier1_gc_shenandoah

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list