RFR: Partial GC

Roman Kennke rkennke at redhat.com
Mon Mar 13 18:30:23 UTC 2017


Am 13.03.2017 um 19:04 schrieb Aleksey Shipilev:
> On 03/13/2017 06:48 PM, Roman Kennke wrote:
>> http://cr.openjdk.java.net/~rkennke/partialgc/webrev.01/
> shenandoahCollectorPolicy.cpp:
>
> *) Just return?
>
>  682     if ((used - _bytes_allocated_after_last_gc) * 100 / capacity >
> ShenandoahAllocationThreshold) {
>  683       return true;
>  684     } else {
>  685       return false;
>  686     }
>
> shenandoahMarkCompact.cpp:
>
> *) VerifyShenandoahMatrix invocation is gone?
>
> vm_operations_shenandoah.hpp
>
> *) Double new line ;)
>   85
>   86
>
> vm_operations.hpp
>
> *) Bad indent:
>  103   template(ShenandoahPartialGC)                      \
>
> Otherwise OK to go.
>
> -Aleksey
>
Fixed everything except verification in full-gc. We can't really verify
the matrix there because at no point during full-GC does the marking
bitmap match the new addresses of objects, and therefore the new matrix.
This is why I removed it.

http://cr.openjdk.java.net/~rkennke/partialgc/webrev.02/
<http://cr.openjdk.java.net/%7Erkennke/partialgc/webrev.02/>

I found the the C2 matrix math optimization broke matrix updating. In
order for partial gc to work correctly we either need to back that out
or run without C2.

Roman




More information about the shenandoah-dev mailing list