[15] RFR 8245961: Shenandoah: move some root marking to concurrent phase
Zhengyu Gu
zgu at redhat.com
Tue Jun 2 17:50:50 UTC 2020
On 6/2/20 10:13 AM, Aleksey Shipilev wrote:
> 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
Rebased webrev.01 to jdk/jdk and manually folded some of your suggested
changes:
http://cr.openjdk.java.net/~zgu/JDK-8245961/webrev.02/
Test:
hotspot_gc_shenandoah (with +ShenandoahVerify), all clear.
Thanks,
-Zhengyu
>
> 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
>
>
>
More information about the hotspot-gc-dev
mailing list