RFR (S): 8131734: Add free_archive_regions support to G1 for -Xshared:auto

Tom Benson tom.benson at oracle.com
Wed Aug 5 14:31:36 UTC 2015


Hi again,
On 8/5/2015 9:52 AM, Thomas Schatzl wrote:
> Hi again,
>
> [...]
>> - I have some question about this code, particularly about the comment:
>>
>> 1137     HeapRegion* start_region = _hrm.addr_to_region(start_address);
>> 1138     HeapRegion* last_region = _hrm.addr_to_region(last_address);
>> 1139
>> 1140     // Check for ranges that start in the same G1 region in which the previous
>> 1141     // range ended, and adjust the start address so we don't try to free
>> 1142     // the same region again. If the current range is entirely within that
>> 1143     // region, skip it.
>> 1144     if ((prev_last_region != NULL) && (start_region == prev_last_region)) {
>> 1145       start_address = start_region->end();
>> 1146       if (start_address > last_address) {
>> 1147         continue;
>> 1148       }
>> 1149       start_region = _hrm.addr_to_region(start_address);
>> 1150     }
>>
>> How could the situation mentioned in line 1140 happen? Are the given
>> memory regions not overlapping already, and the start addresses of these
>> MemRegions at the start of these regions?
> Probably because of using the same memory mapped file created from a VM
> with different (smaller) heap region size?

Right.
Tom
>
> Thanks,
>    Thomas
>
>



More information about the hotspot-gc-dev mailing list