RFR: Correctly iterate references in humongous regions

Roman Kennke rkennke at redhat.com
Fri Mar 31 13:40:07 UTC 2017


Am 31.03.2017 um 14:51 schrieb Aleksey Shipilev:
> On 03/31/2017 12:50 PM, Roman Kennke wrote:
>> http://cr.openjdk.java.net/~rkennke/oop-iterate-humongous/webrev.00/
> This makes me a little itchy:
>
>  547     while (! region->is_humongous_start()) {
>  548       region = _ordered_regions->get(region->region_number() - 1);
>  549     }
>
> Rewind could use a simple local var?

Yeap.

I also noticed that I haven't done the version with limit yet. I made up
my mind about this, and realized that we don't really want iteration up
to arbitrary limits: this is meant to be used specifically with the
concurrent-iteration-safe-limit, and should say so in the API. I changed
those methods to include 'safe_iterate' (consistent with Space's
safe_iterate() methods), and put the actual impls into private methods
that take the upper limit.

http://cr.openjdk.java.net/~rkennke/oop-iterate-humongous/webrev.00/
<http://cr.openjdk.java.net/%7Erkennke/oop-iterate-humongous/webrev.00/>

Good now?

Roman



More information about the shenandoah-dev mailing list