Fix for JDK-8048556 (GCLocker issues): feedback and some testing please?
Mikael Gerdin
mikael.gerdin at oracle.com
Tue Sep 9 09:19:20 UTC 2014
Tony,
On Tuesday 02 September 2014 17.14.57 Tony Printezis wrote:
> Mikael,
>
> Inline.
>
> On 9/1/14, 10:38 AM, Mikael Gerdin wrote:
> > Hi Tony,
> >
> > On 2014-08-28 04:06, Tony Printezis wrote:
> >> Hi all,
> >>
> >> I have a fix for the GCLocker causing unnecessary young GCs issue
> >> (JDK-8048556). Here's the webrev:
> >>
> >> http://cr.openjdk.java.net/~tonyp/8048556/webrev.0/
> >>
> >> Any chance of a) getting some feedback on whether the fix is reasonable
> >> and b) getting it through some testing (I did as much testing as I could
> >> but you know how fragile the GCLocker is...)?
> >
> > I've started some testing on this fix (JPRT, GC test suite).
>
> Thanks!
So far my testing looks good.
It looks like G1CollectedHeap::collect(GCCause::Cause cause) also reads the
total_collections count and thus may trigger a superfluous evacuation pause.
Why didn't you want to pass a total_collections count to G1's variant?
/Mikael
>
> >> I didn't really want to change the CollectedHeap API. However, I can't
> >> work out another way to pass the two GC counts to the VM op without
> >> changes to the CollectedHeap. I could have expanded the collect() method
> >> to also accept the count arguments. However, I don't think collect()
> >> should really be used for the GCLocker GC and I feel that a separate
> >> method is appropriate here.
> >
> > I agree that it's reasonable to have a separate collect_for_gc_locker.
>
> Definitely less confusing in the long term...
>
> >> I also ended up renaming an argument to a c'tor from _cause to cause, as
> >> the former should only be used for class members. Hope that's OK.
> >
> > Yep, that's always bothered me.
>
> I aim to please. :-)
>
> Tony
>
> >> Thanks,
> >>
> >> Tony
More information about the hotspot-gc-dev
mailing list