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