RFR (M) JDK-8150390: Move rs length sampling data to the sampling thread
Derek White
derek.white at oracle.com
Thu Feb 25 15:48:55 UTC 2016
On 2/25/16 9:46 AM, Mikael Gerdin wrote:
> Hi all,
>
> The G1 Young RemSet Sampling Thread iterates over the young regions to
> estimate the remembered set sizes of the young gen in order to tweak
> the young gen size between gcs.
>
> All the iteration and the state related to this has been stored in the
> YoungList class for some strange reason. The state is actually only
> ever needed in
> G1YoungRemSetSamplingThread::sample_young_list_rs_lengths()
> so I've moved all of it there.
> I also modified revise_young_list_target_length_if_necessary to
> receive the new rs length sample as a parameter instead of picking it
> up from the YoungList class.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8150390
> Webrev: http://cr.openjdk.java.net/~mgerdin/8150390/webrev.0
> Testing: Local GC test suite and JPRT
>
> Thanks
> /Mikael
Much cleaner!
Some questions:
- In G1YoungRemSetSamplingThread::sample_young_list_rs_lengths(), if
we yield we now return directly and don't call
revise_young_list_target_length_if_necessary(), but before we would call
it, even though data might be incomplete. Is this the right choice? (It
sounds reasonable to me, but I can't prove it).
- That code around the yield is very conservative. Maybe a GC
occurred, or maybe not. Can't we tell if it did or not, and only bail
out then? Yes, this is a pre-existing issue :-)
- Derek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20160225/e91c63b3/attachment.htm>
More information about the hotspot-gc-dev
mailing list