CRR: 6804436: G1: heap region indices should be size_t (S)

Tony Printezis tony.printezis at oracle.com
Thu Jun 9 22:46:46 UTC 2011


Bengt,

Here's the latest version:

complete webrev:
http://cr.openjdk.java.net/~tonyp/7045330.6804436.7042285/webrev.1/webrev.all/

diffs from the previous one:
http://cr.openjdk.java.net/~tonyp/7045330.6804436.7042285/webrev.1/webrev.1.G1HRSFactory/

I created a factory method for HeapRegions, G1CH::new_heap_region(), 
combined the two expand_to_next_region() methods of HeapRegionSeq class 
into one (HRS::expand_by()), and updated G1CH::expand() accordingly.

I did notice however that the HeapRegion constructor could fail to 
allocate space, if we're out of swap. Even though it's a marginal 
condition, JohnC2 recently put some effort to make the expansion code 
robust wrt to expansion failing. So, I made some additional changes to 
deal with the case where we cannot allocate more HeapRegions (the 
committed space will be shrunk accordingly).

An additional minor change is that I renamed the HTS fields _end and 
_bottom to _heap_end and _heap_bottom to make what they represent a bit 
clearer.

Better?

Tony


On 06/09/2011 07:11 AM, Tony Printezis wrote:
> Bengt,
>
> On 06/09/2011 03:00 AM, Bengt Rutisson wrote:
>>>>
>>>> I will not persist on this.
>>>
>>> This is a good suggestion, Bengt, but I'll need to expose more 
>>> things from G1CH to the HeapRegionSeq to do that (i.e., the fields 
>>> needed in the HeapRegion constructor). And I just didn't want to 
>>> re-arrange things further. So, I think I'll leave it as is, i.e., 
>>> G1CH creating the regions and passing them on to HeapRegionSeq.
>>
>>
>> That's fine. Let's leave it as it is.
>
> Actually (and I should have thought of that earlier!) I think I can do 
> this by creating a factory method for HeapRegion instances in G1CH and 
> calling it from HRS. So HRS will only have a single expand() method 
> (opposite to shrink()) and will deal with the rest internally. Let me 
> have a stab at it and I'll get back to you.
>
> Tony



More information about the hotspot-gc-dev mailing list