RFR (M): 8027959: Investigate early reclamation of large objects in G1

Thomas Schatzl thomas.schatzl at oracle.com
Tue Jul 22 14:26:46 UTC 2014


Hi Mikael,

  thanks for the review again,

On Tue, 2014-07-22 at 13:28 +0200, Mikael Gerdin wrote:
> Hi Thomas,
> 
> On Monday 21 July 2014 15.20.57 Thomas Schatzl wrote:
> > Hi Mikael,
> > 
> >   thanks for the review, and finding these issues!
> > 
> > On Thu, 2014-07-17 at 16:52 +0200, Mikael Gerdin wrote:
> > > Hi Thomas,
> > > 
> > > On Tuesday 15 July 2014 11.10.53 Thomas Schatzl wrote:
> > > > Hi all,
> > > > 
> > > >   could I have reviews for the following change that allows G1 to
> > > > 
> > > > eagerly/early reclaim humongous objects on every GC?
> > > > 
> > > > Problem:
> > > > 
> > > > In G1 large objects are always allocated in the old generation,
> > > > currently requiring a complete heap liveness analysis (full gc, marking)
> > > > to reclaim them.
> > > > [...]
[...]
> > Diff to last:
> > http://cr.openjdk.java.net/~tschatzl/8027959/webrev.0_to_1
> > Complete:
> > http://cr.openjdk.java.net/~tschatzl/8027959/webrev.1
> 
> I had a look through the entirety of webrev.1 again.
> 
> g1CollectedHeap.hpp:
> The comment before G1FastCSetBiasedMappedArray about failing TLAB allocations 
> is no longer relevant, since the code has been changed to explicitly handle 
> IsHumongous, right?.

Fixed.

> 
> The enum in_cset_state_t seems like it should live in G1CollectedHeap instead 
> of in the scope of the datastructure used to maintain the information.
> Not only will that reduce the length of 
> G1FastCSetBiasedMappedArray::InCSet to
> G1CollectedHeap::InCSet
> but I think that callers of G1CollectedHeap::in_cset_state should not be 
> required to know that it is in fact backed by a G1FastCSetBIasedMappedArray 
> and that the values' enum is scoped inside that class.

Fixed.

> g1CollectedHeap.cpp:
> line 5535 contains trailing white space

Fixed.

> 
> TestEagerReclaimHumongousRegions.java:
> The test looks good to me, but as you know anything may happen in the testing 
> lab :)

It's the best what I could come up with.

> 
> I think the rest of the change looks fine.

Diff to last:
http://cr.openjdk.java.net/~tschatzl/8027959/webrev.1_to_2
Complete:
http://cr.openjdk.java.net/~tschatzl/8027959/webrev.2

Thanks,
  Thomas



More information about the hotspot-gc-dev mailing list