Shenandoah: SBSA::load_at() should save/restore registers when calling SATB barrier
Roman Kennke
rkennke at redhat.com
Mon Oct 7 18:12:27 UTC 2019
Good! That seems much simpler!
Thanks,
Roman
> Hi Roman,
>
> As you suggested offline, uses push_IU_state()/pop_IU_state() instead.
>
> http://cr.openjdk.java.net/~zgu/shenandoah/load_at_keepalive_fix/webrev.02/
>
> Test:
> hotspot_gc_shenandoah (fastdebug and release) with x86_64 and x86_32
> JVM on Linux.
>
> Thanks,
>
> -Zhengyu
>
> On 10/7/19 7:31 AM, Zhengyu Gu wrote:
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~zgu/shenandoah/load_at_keepalive_fix/webrev.01/
>>>>
>>>
>>> Is that the same patch as before?
>>
>> No. This patch pushes/pops rax and rbx in SBSA::load_at() (Line# 495 -
>> 499 and 512 - 514.
>>
>> Thanks,
>>
>> -Zhengyu
>>
>>>
>>> Roman
>>>
>>>
>>>>>>>> This fix also fixes the intermittent is_loader_alive() assertion we
>>>>>>>> have
>>>>>>>> seen in nightly tests. While this assertion is relative rare on
>>>>>>>> x86_64,
>>>>>>>> but it is quite reproducible on x86_32 (because of it has less
>>>>>>>> registers(?)). With this fix, I have yet seen once.
>>>>
>>>> Unfortunately, this assertion failure came back during stress runs (put
>>>> tier3 tests in loop) over the weekend, sigh! But I think they are
>>>> different issues and this change should stay.
>>>>
>>>> Thanks,
>>>>
>>>> -Zhengyu
>>>>
>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Webrev:
>>>>>>>> http://cr.openjdk.java.net/~zgu/shenandoah/load_at_keepalive_fix/webrev.00/
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Test:
>>>>>>>> hotspot_gc_shenandoah (fastdebug and release) x86_64 and
>>>>>>>> x86_32 on
>>>>>>>> Linux
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>>
>>>>>>>> -Zhengyu
>>>>>>>>
>>>>>>>
>>>>>
>>>
More information about the shenandoah-dev
mailing list