Request for review (s) - 7119584
jon.masamitsu at oracle.com
Fri Dec 9 21:19:14 UTC 2011
On 12/9/2011 1:01 PM, Vitaly Davidovich wrote:
> Ok sounds like storestore is sufficient given your explanation - you don't
> care whether the task is immediately visible to gc threads after it's
> enqueued, you just want to make sure that once it is visible (might be
> delayed due to store bufferring) that all fields are consistent.
Yes, that's correct.
> I'm obviously not on the hotspot dev team (just a curious bystander :)) but
> perhaps you can change the code comment to indicate that you want ordered
> writes but not necessarily immediately global visibility.
Will do. Thanks again.
> Thanks for the explanation,
> On Dec 9, 2011 3:49 PM, "Jon Masamitsu"<jon.masamitsu at oracle.com> wrote:
>> 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
>> I think that's what the storestore does for me. Do I
>> need something stronger? And thank you for thinking
>> about this for me.
>> 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
>>> On Dec 9, 2011 12:15 PM, "Jon Masamitsu"<jon.masamitsu@**oracle.com<jon.masamitsu at oracle.com>>
>>> 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.
More information about the hotspot-gc-dev