RFR: Fix object iteration over limit

Dominik Inführ dominik.infuehr at gmail.com
Wed Oct 18 10:53:11 UTC 2017


Sure, but TAMS seems to be passed to the limit-parameter of
getNextMarkedWordAddress(). The limit used in this case is the `end`
variable which is initialized to:

HeapWord* end = MIN2(top_at_mark_start + BrooksPointer::word_size(),
region->end());

That's why I assumed it to be already limited to TAMS. If this is not the
case you might also need to patch the non-prefetch'ed code path. Sorry for
the spam.

Dominik

On Wed, Oct 18, 2017 at 12:12 PM, Roman Kennke <rkennke at redhat.com> wrote:

> Hi Dominik,
>
> no, the bitmap code (i.e. getNextMarkedWordAddress() ) isn't aware of TAMS.
>
> Roman
>
>
> Isn't getNextMarkedWordAddress(addr, end) already taking care of limiting
>> the address to TAMS?
>>
>> Dominik
>>
>>
>> On Tue, Oct 17, 2017 at 9:13 PM, Zhengyu Gu <zgu at redhat.com> wrote:
>>
>> When iterating object using bitmap, we may pass TAMS limit if remaining
>>> oops under TAMS are not marked.
>>>
>>> http://cr.openjdk.java.net/~zgu/shenandoah/obj_itr/webrev.00/
>>>
>>> Test:
>>>
>>>    hotspot_gc_shenandoah : fastdebug and release
>>>
>>>
>>> Thanks,
>>>
>>> -Zhengyu
>>>
>>>
>


More information about the shenandoah-dev mailing list