RFR (S): 8052172: Evacuation failure handling in G1 does not evacuate all objects if -XX:-G1DeferredRSUpdate is set

Igor Veresov igor.veresov at oracle.com
Mon Sep 15 19:31:32 UTC 2014


I was lurking and noticed that you have a wrong bug number in the commit message.
The fix looks good otherwise.

igor

On Sep 15, 2014, at 7:24 AM, Thomas Schatzl <thomas.schatzl at oracle.com> wrote:

> Hi all,
> 
>  can I have reviews for the following removal of the
> -XX:-G1DeferredRSUpdate functionality?
> 
> Problem is that the functionality of -XX:-G1DeferredRSUpdate is broken
> (likely since forever): in case of evacuation failure there is the
> possibility that some threads add remembered set entries (the ones
> experiencing the to-space exhaustion) while other threads are still
> iterating over the same remembered set.
> 
> This can cause the iterators to skip remembered set entries, which in
> turn causes lost objects.
> 
> Since XX:-G1DeferredRSUpdate is a (rarely used) develop only flag, it is
> not worth (imo) to try to fix this. There is no advantage of using the
> current kind of remembered set in conjunction with immediate RSet
> updates. If in the future any different RSet implementations were added,
> these changes would be comparably easy to add again.
> 
> Problem is that having it in the code (and testing it) occasionally
> causes test failures. It is easiest to simply remove the functionality.
> 
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8052172
> Webrev:
> http://cr.openjdk.java.net/~tschatzl/8052172/webrev/
> Testing:
> jprt
> 
> Thanks,
>  Thomas
> 
> 




More information about the hotspot-gc-dev mailing list