RFR 8067655: Clean up G1 remembered set oop iteration
jon.masamitsu at oracle.com
Wed Dec 17 16:33:49 UTC 2014
Thanks for the changes. Looks good.
On 12/17/2014 12:52 AM, Mikael Gerdin wrote:
> On 2014-12-16 15:33, Mikael Gerdin wrote:
>> Hi all,
>> while reading through the code which iterates over oops pointing into
>> the collection set I noticed that the closure used to implement the
>> iteration, G1ParPushHeapRSClosure, is hooked into the de-virtualization
>> macros with oop_oop_iterate_nv but the static type is not preserved all
>> the way down to the call site where oop_iterate is called, so the
>> de-virtualization cannot work.
>> I fixed the code to pass down the correct type and while doing that I
>> had to clean up some dead code, such as the FilterKind parameter to the
>> HeapRegionDCTOC which was only ever used with the IntoCSFilterKind. The
>> filtering is not needed at all since G1ParPushHeapRSClosure already does
>> a collection set check so I removed the filtering altogether.
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8067655
>> Webrev: http://cr.openjdk.java.net/~mgerdin/8067655/webrev.0/
> New webrev based on feedback from Jon and Kim:
> Incremental webrev:
> Full webrev:
>> JPRT, jbb2005 on x86_64 and sparc.
>> The jbb runs showed no significant changes and the ScanRS time changes
>> are inconclusive but I still think this is a nice cleanup change. At
>> least this change makes it clear that it's actually only one closure
>> type which is used by the HeapRegionDCTOC.
More information about the hotspot-gc-dev