RFR (S): 8073632: Make auxiliary data structures know their own translation factor
Stefan Karlsson
stefan.karlsson at oracle.com
Wed Apr 22 11:25:09 UTC 2015
On 2015-04-22 11:02, Thomas Schatzl wrote:
> Hi Stefan,
>
> On Wed, 2015-04-22 at 10:21 +0200, Stefan Karlsson wrote:
>> Hi Thomas,
>>
>> On 2015-04-22 09:56, Thomas Schatzl wrote:
>>>> can I have reviews for this change that cleans up recent changes to
>>>> memory management in G1. In particular, for every class that represents
>>>> an auxiliary data structure in G1 it adds (and then uses) a specific
>>>> function that returns the "heap mapping factor" (the amount of bytes a
>>>> particular byte of that data structure corresponds in the java heap).
>>>> This method is then used instead of gathering it from various places
>>>> when allocating that data structure.
>>>>
>>>> CR:
>>>> https://bugs.openjdk.java.net/browse/JDK-8073632
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~tschatzl/8073632/webrev/
>> http://cr.openjdk.java.net/~tschatzl/8073632/webrev/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp.frames.html
>>
>> Why is this implemented as a call into G1BlockOffsetSharedArray?
>>
>> 157 // Returns how many bytes of the heap a single byte of the Card
>> Table corresponds to.
>> 158 static size_t heap_map_factor() {
>> 159 return G1BlockOffsetSharedArray::heap_map_factor();
>> 160 }
> You are correct, that is unnecessary. It is better to use
> CardTableModRefBS::card_size.
>
> Fixed in
> http://cr.openjdk.java.net/~tschatzl/8073632/webrev.1
> Diff webrev:
> http://cr.openjdk.java.net/~tschatzl/8073632/webrev.0_to_1
That looks better.
It still seems weird that the card_count is set up using
G1BlockOffsetSharedArray:
G1RegionToSpaceMapper* card_counts_storage =
create_aux_memory_mapper("Card counts table",
G1BlockOffsetSharedArray::compute_size(g1_rs.size() / HeapWordSize),
- G1BlockOffsetSharedArray::N_bytes);
+ G1BlockOffsetSharedArray::heap_map_factor());
I think the "Card counts table" needs its own functions as well.
Thanks,
StefanK
>
> Thanks,
> Thomas
>
>
>
More information about the hotspot-gc-dev
mailing list