[15] RFR 8238633: JVMTI heap walk should consult GC for marking oops

Zhengyu Gu zgu at redhat.com
Fri Feb 7 15:53:56 UTC 2020


Hi,

I would like purpose this change that allows GC to provide ObjectMarker 
during JVMTI heap walk.

Currently, JVMTI heap walk uses oop markword's 'marked' pattern to 
indicate 'visited' oop.

Unfortunately, it conflicts with Shenandoah, who uses the pattern to 
indicate 'forwarding'. When JVMTI heap walk occurs in some of 
Shenandoah's concurrent heap (e.g. concurrent evacuation or concurrent 
reference updating phases), it can result corrupted heap, as it tries to 
resolve a real oop header as a forwarding pointer.

This patch allows GC to provide ObjectMarker for JVMTI to track 
'visited' oop, and uses current implementation as default, so that, it 
has no impact to GCs other than Shenandoah, who provides its own 
implementation.

Bug: https://bugs.openjdk.java.net/browse/JDK-8238633
Webrev: http://cr.openjdk.java.net/~zgu/JDK-8238633/webrev.00/index.html

Test:
   hotspot_gc
   vmTestbase_nsk_jdi
   vmTestbase_nsk_jvmti

Thanks,

-Zhengyu




More information about the hotspot-dev mailing list