[15] RFR 8245961: Shenandoah: move some root marking to concurrent phase
Aleksey Shipilev
shade at redhat.com
Tue Jun 2 14:13:43 UTC 2020
On 6/2/20 3:12 PM, Zhengyu Gu wrote:
> http://cr.openjdk.java.net/~zgu/JDK-8245961/webrev.01/index.html
Looks OK. A few more minor nits (after rebasing to jdk/jdk):
https://cr.openjdk.java.net/~shade/shenandoah/8245961-shade-updates.patch
Does it pass hotspot_gc_shenandoah?
Just got a failure while testing a patch above. Shouldn't we also except the newly handled
concurrent roots from this verification?
# Internal Error
(/home/shade/trunks/jdk-jdk/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp:943), pid=14874,
tid=14881
# Error: Verify Roots; Should not be forwarded
Referenced from:
interior location: 0x00007fb898447a18
outside of Java heap
0x00007fb898447a18 is at entry_point+440 in (nmethod*)0x00007fb898447690
Object:
0x00000000c0304350 - klass 0x000000080008bbf8 jdk.internal.loader.ClassLoaders$AppClassLoader
not allocated after mark start
marked
in collection set
mark: marked(0x00000000fff80003)
region: | 6|CS |BTE c0300000, c0380000, c0380000|TAMS c0380000|UWM
c0380000|U 512K|T 494K|G 0B|S 17472B|L 17472B|CP 0
Forwardee:
0x00000000fff80000 - klass 0x000000080008bbf8 jdk.internal.loader.ClassLoaders$AppClassLoader
allocated after mark start
marked
not in collection set
mark: mark(is_neutral hash=0x000000000c387f44 age=0)
region: | 2047|R |BTE fff80000, 100000000, 100000000|TAMS fff80000|UWM
100000000|U 512K|T 0B|G 512K|S 0B|L 0B|CP 0
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native
code)
V [libjvm.so+0x17246ee] VMError::report_and_die(int, char const*, char const*, __va_list_tag*,
Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x37e
V [libjvm.so+0x17253ff] VMError::report_and_die(Thread*, void*, char const*, int, char const*,
char const*, __va_list_tag*)+0x2f
V [libjvm.so+0x8c8301] report_vm_error(char const*, int, char const*, char const*, ...)+0x111
V [libjvm.so+0x1420dbd] ShenandoahAsserts::print_failure(ShenandoahAsserts::SafeLevel, oop, void*,
oop, char const*, char const*, char const*, int)+0x3ed
V [libjvm.so+0x150fe53] ShenandoahVerifyNoForwared::do_oop(oop*)+0xa3
V [libjvm.so+0x11fe150] nmethod::oops_do(OopClosure*, bool)+0x120
V [libjvm.so+0xc41907] CodeBlobToOopClosure::do_code_blob(CodeBlob*)+0x37
V [libjvm.so+0x16576d7] JavaThread::oops_do(OopClosure*, CodeBlobClosure*)+0x187
V [libjvm.so+0x1662dab] Threads::possibly_parallel_oops_do(bool, OopClosure*, CodeBlobClosure*)+0x7b
V [libjvm.so+0x14e7730] ShenandoahRootVerifier::oops_do(OopClosure*)+0x290
V [libjvm.so+0x150e171]
ShenandoahVerifier::verify_roots_no_forwarded_except(ShenandoahRootVerifier::RootTypes)+0x41
V [libjvm.so+0x149d1e0] ShenandoahHeap::op_final_mark()+0x4e0
V [libjvm.so+0x149d85f] ShenandoahHeap::entry_final_mark()+0xbf
V [libjvm.so+0x150dd54] VM_ShenandoahFinalMarkStartEvac::doit()+0x34
V [libjvm.so+0x172683d] VM_Operation::evaluate()+0x1cd
V [libjvm.so+0x175562b] VMThread::evaluate_operation(VM_Operation*) [clone .constprop.71]+0x13b
V [libjvm.so+0x175606d] VMThread::loop()+0x7bd
V [libjvm.so+0x17564ba] VMThread::run()+0xca
V [libjvm.so+0x1664616] Thread::call_run()+0xf6
V [libjvm.so+0x12907de] thread_native_entry(Thread*)+0x10e
--
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list