Request for review (s) - 7119584

Jon Masamitsu jon.masamitsu at oracle.com
Fri Dec 9 20:49:35 UTC 2011


Vitaly,

This is what happens.

1) create the barrier task
2) enqueue the barrier task to a list of tasks
3) make the tasks visible to the GC workers by added them to
queue from which workers take tasks

At 3) a GC worker can take and execute the barrier task.
I want all the fields in the barrier task to be in main memory
and thus visible to the GC worker task when it starts to
execute the barrier task.  So by the time 3) happens
(tasks are visible in the queue for the GC workers to
take) the stores at 1) to be visible so that when the GC
worker reads the barrier task, it is getting all the right
values.

I think that's what the storestore does for me.   Do I
need something stronger?  And thank you for thinking
about this for me.

Jon

On 12/9/2011 9:48 AM, Vitaly Davidovich wrote:
> Hi Jon,
>
> Are you sure your comment for the OrderAccess::storestore() matches this
> barrier? Your comment mentions that you want global visibility but does
> this need immediate visibility or you just want order for when it does
> become visible? StoreStore is just the latter, but maybe that's what you
> meant.
>
> Regards,
>
> Vitaly
> On Dec 9, 2011 12:15 PM, "Jon Masamitsu"<jon.masamitsu at oracle.com>  wrote:
>
>> 7119584: UseParallelGC barrier task can be overwritten.
>>
>> Just a few changed lines.  The comments around the changes
>> give an explanation in context so are a better explanation than
>> I can summarize here.
>>
>> http://cr.openjdk.java.net/~**jmasa/7119584/webrev.00/<http://cr.openjdk.java.net/~jmasa/7119584/webrev.00/>
>>
>> Thanks.
>>



More information about the hotspot-gc-dev mailing list