RFR (M): 8071913: Filter out entries to free/uncommitted regions during iteration

Stefan Johansson stefan.johansson at oracle.com
Wed Oct 3 09:12:44 UTC 2018



On 2018-10-02 13:28, Thomas Schatzl wrote:
> Hi all,
> 
>    can I have reviews for this change that makes sure that remembered
> set entries to free or uncommitted regions are not touched during GC?
> 
> In order to implement uncommitting regions at remark we need to make
> sure that these regions and their corresponding side data structures
> are not touched by GC any more.
> 
> This change adds a simple filter in the remembered set iterator plus
> some careful changes in various locations of the code to avoid just
> that.
> 
> There are alternatives to this changes that have been considered but
> ultimately rejected:
> 
>   - drop remembered sets when freeing regions: this would require us to
> scan all remembered sets for such regions which is slow.
> 
>   - do the filtering directly in the iterator: while this has been
> prototyped, and even gives a significant improvement in pause times
> (~5%), the change would be much larger (1500 LOC). Since I am currently
> reworking the remembered sets completely, I found it a waste of
> reviewer's time to let you do this review now, and shortly afterwards
> throw away all that code. I will incorporate the improvements into the
> new code though. :)
> 
> If the remembered set changes won't make it e.g. for 12, we might
> consider taking these changes in at a later time.
> 
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8071913
> Webrev:
> http://cr.openjdk.java.net/~tschatzl/8071913/webrev/
Looks good, I agree that going with this simpler approach is a good 
first step.

Thanks
Stefan

> Testing:
> hs-tier1-5,jdk-tier1-3, perf tested, no change in pause times or
> (throughput) scores
> 
> Quite a few gc tests do extensive commit/uncommit of regions with the
> corresponding exercise of the code.
> 
> Thanks,
>    Thomas
> 
> 


More information about the hotspot-gc-dev mailing list