RFR: 8288129: Shenandoah: Skynet test crashed with iu + aggressive
Ashutosh Mehra
duke at openjdk.org
Tue Sep 20 18:07:17 UTC 2022
On Mon, 19 Sep 2022 17:11:15 GMT, Roman Kennke <rkennke at openjdk.org> wrote:
>> Another attempt to fix the crash when running Loom with Shenandoah in iu+aggressive mode.
>>
>> Explanation for the problem can be seen in https://github.com/openjdk/jdk/pull/9982#issue-1348107961 but instead of adding barriers for the oops in stack chunk header in `do_barriers()`, this fix uses Access API (`oopDesc::obj_field_put_access`) with `IS_DEST_UNINITIALIZED` decorator as suggested in https://github.com/openjdk/jdk/pull/9982#issuecomment-1231843259. The Access API invokes appropriate barriers based on the GC policy and the decorator. For SATB barriers it is a no-op. For IU mode it invokes the iu write barrier.
>> The Access API is same as in ZGC [1], [2]
>>
>> [1] https://github.com/openjdk/zgc/blob/f0b25d9339104a80f903d889a7939dd623c76867/src/hotspot/share/oops/oop.inline.hpp#L215
>> [2] https://github.com/openjdk/zgc/blob/f0b25d9339104a80f903d889a7939dd623c76867/src/hotspot/share/classfile/javaClasses.inline.hpp#L286
>>
>> Test with fastdebug build:
>>
>> - [x] hotspot_loom
>> - [x] jdk_loom
>> - [x] hotspot_loom in Shenandoah IU mode
>> - [x] jdk_loom in Shenandoah IU mode
>> - [x] hotspot_loom in Shenandoah IU + aggressive
>> - [x] jdk_loom in Shenandoah IU + aggressive
>>
>> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
>
> Oh sorry, I've been deep in some other stuff. Thanks for reminding me.
> The change looks good.
> Does this mean we can now remove some of the GC specific paths in stack-chunk handling code?
@rkennke @fisk thank you for reviewing the pr.
-------------
PR: https://git.openjdk.org/jdk/pull/10089
More information about the shenandoah-dev
mailing list