RFR: Grand heuristics and tests rehash

Roman Kennke rkennke at redhat.com
Thu Sep 6 18:12:09 UTC 2018


The change is ok.

We should probably discuss and decide what to do with the partial
heuristics. As you said, nobody's using them, and they don't currently
have any practical advantage over adaptive or traversal (at least not
that I know of). Their code now builds largely on traversal algorithm,
and does add some complexity to it which could be avoided if we dropped
partial. The main thing it does add barrier-wise is the matrix stuff,
which *is* significant burden, and hasn't yet turned out to be very
useful either.

I do have some plans in the back in my mind to make a truly
(multi-)concurrent, generational Shenandoah, which would build on
traversal too, but not on current partial/generational stuff. It
wouldn't use matrix/barriers either, it would instead use the classic
dirty-cards approach. All of which means, we may well drop partial
now/soonish, unless we have good reasons to keep it?

WDYT?

Roman
	
> http://cr.openjdk.java.net/~shade/shenandoah/heuristics-tests/webrev.01/
> 
> This includes several interconnected changesets:
> 
>  *) Passive heuristics now goes to Degenerated GC first, and then maybe to Full GC. This allows more
> precise barrier overhead measurements, because we would be execute the exact same cycle, but in STW
> mode.
> 
>  *) Remove partial heuristics from testing. They are not used by anyone, and testing with them takes
> significant time. Instead, we have their own special test that verify partial heuristics are not
> terribly broken.
> 
>  *) Reshuffling the test configurations. The motivation for it is simple. We first test "passive"
> with either Degen or Full GC, to capture egregious mistakes in the GC code itself. Then we test
> "aggressive", along with all exceptional corner cases that the cycle might run into. Then we test
> default concurrent modes which can expose some new bugs, and only then special configs.
> 
>  *) TestHeapDump is much faster when we tune down its heap, because heap traversal resets the bitmap
> for the heap, and that takes time for larger heap.
> 
> This cuts down tier3 testing time from 35 minutes to 25 minutes on my desktop.
> 
> Testing: tier3_gc_shenandoah
> 
> Thanks,
> -Aleksey
> 




More information about the shenandoah-dev mailing list