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

Tony Printezis tony.printezis at oracle.com
Fri Jun 10 12:07:06 UTC 2011



On 06/10/2011 02:30 AM, Bengt Rutisson wrote:
>
> Tony,
>
> Thanks for iterating this so many times. I think it looks great now. 
> Thumbs up!

Thanks for looking at all the iterations! I ran tests on it last night 
and everything is OK. I'll schedule it for a push today.

> Just one nit:
>
> In heapRegionSeq.cpp you added the include 
> "gc_implementation/g1/heapRegionSets.hpp". I think that the one you 
> want is "gc_implementation/g1/heapRegionSeq.hpp".

Actually, ...Sets.hpp is correct as it's the one that FreeRegionList 
declaration (needed by expand_by()).

Tony

> Bengt
>
> On 2011-06-10 00:46, Tony Printezis wrote:
>> 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