[15] 8237632: Shenandoah fails some vmTestbase_nsk_jvmti tests with "Forwardee must point to a heap address"
Roman Kennke
rkennke at redhat.com
Thu Feb 27 14:54:04 UTC 2020
Looks good to me. Thank you!
Roman
> Hi,
>
> Based on Erik's suggestion from JDK-8238633 review [1], we can filter
> out oops marked by JVMTI and JFR leak profiler via resolve_forwarded()
> barrier, by inserting an null check on forwarding pointer.
>
> To reduce performance impact, we split up compiler and runtime resolve
> forwarded barrier, only performs extra null check in runtime barrier, as
> JVMTI and leak profiler heap walk are performed at safepoints, where
> mutators are stopped.
>
>
> Webrev: http://cr.openjdk.java.net/~zgu/JDK-8237632/webrev.01/
>
> Test:
> hotspot_gc_shenandoah
> vmTestbase_nsk_jvmti
> vmTestbase_nsk_jdi
>
> Thanks,
>
> -Zhengyu
>
> [1]
> https://mail.openjdk.java.net/pipermail/hotspot-dev/2020-February/040974.html
>
>
>
>
> On 2/4/20 2:23 PM, Aleksey Shipilev wrote:
>> On 2/3/20 9:59 PM, Zhengyu Gu wrote:
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8237632
>>> Webrev: http://cr.openjdk.java.net/~zgu/JDK-8237632/webrev.00/
>>
>> Uh. It seems to me the cure is worse than the disease:
>> 1) It rewires sensitive parts of barrier paths, root handling, etc,
>> which requires more thorough
>> testing, and we are too deep in RDP2 for this;
>> 2) It effectively disables asserts for anything not in collection
>> set. Which means it disables
>> most of asserts. The fact that Verifier still works is a small
>> consolation.
>>
>> I propose to accept this failure in 14, and rework the JVMTI heap walk
>> to stop messing around with
>> mark words in 15. Since this relates to concurrent root handling,
>> 11-shenandoah is already safe.
>>
>
More information about the hotspot-gc-dev
mailing list