RFR (S): 7080389: G1: refactor marking code in evacuation pause copy closures

John Cuthbertson john.cuthbertson at oracle.com
Fri Aug 19 17:19:41 UTC 2011


Wow. I certainly didn't think the changes were this controversial.

I don't want to change the template parameter name unless it's to remove 
the "forwardee" (to perhaps do_mark_obect[s], or should_mark_object[s]) 
because it's is no longer strictly true that its the forwarded object 
that is marked. Forwarded objects are now marked by the code in 
copy_to_survivor_space. But changing the comment to include that 
do_mark_forwardee is true during an initial mark pause for the root 
scanning closures is fine.

JohnC

On 08/19/11 09:44, Stefan Karlsson wrote:
> On 2011-08-19 18:23, Tony Printezis wrote:
>>
>>
>> On 08/19/2011 11:58 AM, Stefan Karlsson wrote:
>>>> Would you like better if John changes the comment to something like 
>>>> "we've been asked to mark the objects" and make sure the place 
>>>> where do_mark_forwardee is set to true describes why it is?
>>>
>>> Yes.
>>>
>>> I like the parameter name. The thing I'm having a problem with is 
>>> that the parameter name is "generic" in that sense that it doesn't 
>>> convey who's setting it to true. 
>>
>> Whoever wants to make sure every object visited by the closure is 
>> marked.
>
> I see that you're misunderstanding what I'm trying to say. I like the 
> parameter name, but I don't like the comments.
>
> StefanK
>
>>
>> Tony
>>
>>> But then we have the comment that goes on and reveals that 
>>> information anyway.
>>>
>>> StefanK
>>>
>>>>
>>>> Tony
>>>>
>>>> On 08/19/2011 10:43 AM, Stefan Karlsson wrote:
>>>>> On 08/19/2011 04:39 PM, Tony Printezis wrote:
>>>>>> You think "do_mark_forwardee" is generic?!?!?! It's very 
>>>>>> descriptive on what it does.
>>>>>
>>>>> Well, it's more generic than something like 
>>>>> do_mark_forwardee_during_initial_mark_root_scanning, which at 
>>>>> least to me, the comments imply. Anyways, you don't have to listen 
>>>>> to my arguments if you don't want to.
>>>>>
>>>>> StefanK
>>>>>
>>>>>>
>>>>>> Tony
>>>>>>
>>>>>> On 08/19/2011 10:35 AM, Stefan Karlsson wrote:
>>>>>>> Tony,
>>>>>>>
>>>>>>> On 08/19/2011 04:19 PM, Tony Printezis wrote:
>>>>>>>> Stefan,
>>>>>>>>
>>>>>>>> OK, good point. Maybe John can change the comment to something 
>>>>>>>> like "Need to mark the copied object if we're root scanning 
>>>>>>>> closure during initial mark, ....". Would this address your 
>>>>>>>> concern?
>>>>>>>
>>>>>>> I just don't see the reason for giving the parameter such a 
>>>>>>> "generic" name and then having comments about initial marking 
>>>>>>> root scan in the code whenever the parameter is used.
>>>>>>>
>>>>>>> StefanK
>>>>>>>
>>>>>>>>
>>>>>>>> Tony
>>>>>>>>
>>>>>>>> On 08/19/2011 10:01 AM, Stefan Karlsson wrote:
>>>>>>>>> But that's not what the comment says:
>>>>>>>>>
>>>>>>>>> 4339   // Need to mark the copied object if we're an initial
>>>>>>>>> 4340   // mark closure, or the object is already marked and
>>>>>>>>> 4341   // we need to preserve the mark.
>>>>>>>>> 4342   bool should_mark = do_mark_forwardee ||
>>>>>>>>> 4343       (_g1->mark_in_progress()&&  !_g1->is_obj_ill(obj));
>>>>>>>>>
>>>>>>>>> and
>>>>>>>>>
>>>>>>>>> 4357     // Object is not in collection set - if we're an 
>>>>>>>>> initial mark
>>>>>>>>> 4358     // closure then mark the object.
>>>>>>>>> 4359     if (do_mark_forwardee) {
>>>>>>>>>
>>>>>>>>> StefanK
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Tony
>>>>>>>>>
>>>>>>>
>>>>>
>>>
>




More information about the hotspot-gc-dev mailing list