RFR: 8310031: Parallel: Implement better work distribution for large object arrays in old gen [v17]

Albert Mingkun Yang ayang at openjdk.org
Wed Oct 11 16:26:27 UTC 2023


On Wed, 11 Oct 2023 14:59:29 GMT, Richard Reingruber <rrich at openjdk.org> wrote:

>> src/hotspot/share/gc/parallel/psCardTable.cpp line 228:
>> 
>>> 226:             scan_obj_with_limit(pm, obj.obj, addr_l, end);
>>> 227:           }
>>> 228:         }
>> 
>> I wonder if the else branch can be replaced by:
>> 
>> 
>>   if (obj.addr < i_addr && obj.addr > start) {
>>     // already-scanned
>>   } else {
>>     scan_obj_with_limit(pm, obj.obj, addr_l, end);
>>   }
>
> You mean to replace L220-L227, right? There we know `obj.addr >= addr_l`. `obj.addr < i_addr` cannot be true then IMO. It would overlap with an objArray if `i_addr` was set there. If `i_addr` was set at the end of a non-objArray then objects starting before `i_addr` cannot start in or after `addr_l`.

No, I mean L212 to L228.  "Comment on lines +212 to +228"

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14846#discussion_r1355177469


More information about the hotspot-gc-dev mailing list