RFR (M): 8233919: Incrementally calculate the occupied cards in a heap region remembered set
Stefan Johansson
stefan.johansson at oracle.com
Fri Nov 29 13:38:13 UTC 2019
Looks good,
StefanJ
On 2019-11-29 10:25, Thomas Schatzl wrote:
> Hi all,
>
> thanks for your reviews - however I unfortunately found a small bug
> in the current implementation that I would like to have fixed.
>
> In particular, when adding sparse cards the code incremented
> num_occupied always when SparsePRT::add_card returns true. However it
> also returns true if the card is duplicate, i.e. has already been found,
> which means that we should not increase the count.
>
> The actual difference is rather small as most of the duplicates are
> filtered out by the FromCardCache, but it occurs.
>
> The following patch fixes this. The change looks big, but is basically
> reshuffling code to accomodate the use of SparsePRTEntry::AddCardResult
> in SparsePRT::add_card.
>
> http://cr.openjdk.java.net/~tschatzl/8233919/webrev.2_to_3/ (diff)
> http://cr.openjdk.java.net/~tschatzl/8233919/webrev.3/ (full)
>
> Thanks, and sorry for the inconvenience,
> Thomas
>
> On 26.11.19 16:41, sangheon.kim at oracle.com wrote:
>> Hi Thomas,
>>
>> On 11/26/19 1:04 AM, Thomas Schatzl wrote:
>>> Hi Sangheon,
>>>
>>> thanks for looking at this.
>>>
>>> On 25.11.19 22:22, sangheon.kim at oracle.com wrote:
>>>> Hi Thomas,
>>>>
>>>> On 11/21/19 2:41 AM, Thomas Schatzl wrote:
>>>>> Hi,
>>>>>
>>>>> On 20.11.19 11:42, Stefan Johansson wrote:
>>>>>> Hi Thomas,
>>>>>>
>>>>>> On 2019-11-12 16:24, Thomas Schatzl wrote:
>>>>>>> Hi all,
>>> [...]>>>
>>>>>> I would prefer:
>>>>>> if (prt->add_reference(from)) {
>>>>>> num_added_by_coarsening++;
>>>>>> }
>>>>>> Atomic::add...
>>>>>>
>>>>>> I you disagree, leave it as is.
>>>>>
>>>>> Fixed in
>>>>> http://cr.openjdk.java.net/~tschatzl/8233919/webrev.0_to_1/
>>>>> http://cr.openjdk.java.net/~tschatzl/8233919/webrev.1/
>>>> Webrev.1 looks good in general.
>>>>
>>>> ========================
>>>> g1CollectionSet.cpp
>>>> 250 assert(old_rs_length <= new_rs_length,
>>>> 251 "Remembered set sizes must increase (changed from "
>>>> SIZE_FORMAT " to " SIZE_FORMAT " region %u type %s)",
>>>> 252 old_rs_length, new_rs_length, hr->hrm_index(),
>>>> hr->get_short_type_str());
>>>> - I feel 'must increase' like 'old_rs_length < new_rs_length'. If
>>>> you don't agree leave it as is. :)
>>>>
>>>> ========================
>>>> heapRegionRemSet.cpp
>>>> 200 Atomic::inc(&_num_occupied, memory_order_relaxed);
>>>> - I already asked to Thomas offline. He said Atomic operation is not
>>>> necessary in this version but it is necessary for future patch when
>>>> the lock is removed.
>>>
>>> http://cr.openjdk.java.net/~tschatzl/8233919/webrev.1_to_2/ (diff)
>>> http://cr.openjdk.java.net/~tschatzl/8233919/webrev.2/ (full)
>>>
>>> Fixes the comment by changing the comment text to:
>>>
>>> 251 "Remembered set decreased (changed from " SIZE_FORMAT "
>>> to " SIZE_FORMAT " region %u type %s)",
>>>
>> Looks good.
>>
>> Thanks,
>> Sangheon
>>
>>
>>> Thanks,
>>> Thomas
>>
>
More information about the hotspot-gc-dev
mailing list