RFR: 8247281: migrate ObjectMonitor::_object to OopStorage [v4]

Roman Kennke rkennke at openjdk.java.net
Mon Sep 14 20:18:38 UTC 2020


On Mon, 14 Sep 2020 18:55:38 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:

>> This RFE is to migrate the following field to OopStorage:
>> 
>> class ObjectMonitor {
>> <snip>
>>   void* volatile _object; // backward object pointer - strong root
>> 
>> Unlike the previous patches in this series, there are a lot of collateral
>> changes so this is not a trivial review. Sorry for the tedious parts of
>> the review. Since Erik and I are both contributors to this patch, we
>> would like at least 1 GC team reviewer and 1 Runtime team reviewer.
>> 
>> This changeset was tested with Mach5 Tier[1-3],4,5,6,7,8 testing
>> along with JDK-8252980 and JDK-8252981. I also ran it through my
>> inflation stress kit for 48 hours on my Linux-X64 machine.
>
> Daniel D. Daugherty has updated the pull request incrementally with one additional commit since the last revision:
> 
>   kimbarrett CR - made minor changes to address Kim's code review.

src/hotspot/share/gc/shared/space.inline.hpp line 176:

> 174:       assert(!space->scanned_block_is_obj(cur_obj) || oop(cur_obj)->mark_raw().is_unlocked() ||
> 175:              oop(cur_obj)->mark_raw().has_bias_pattern() || oop(cur_obj)->mark_raw().has_monitor(),
> 176:              "these are the only valid states during a mark sweep");

Is this change related? Also, when moving the assert into the else block it will become always-true because of
space->scanned_block_is_obj(cur_obj), or am I missing something?

-------------

PR: https://git.openjdk.java.net/jdk/pull/135


More information about the hotspot-runtime-dev mailing list