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.java.net/pipermail/hotspot-gc-dev/attachments/20160225/e91c63b3/attachment.htm>

More information about the hotspot-gc-dev mailing list