RFR: 8242082: Shenandoah: Purge Traversal mode

Roman Kennke rkennke at redhat.com
Fri Apr 3 12:56:44 UTC 2020


Hi Aleksey,

>> Traversal mode has become cumbersome to maintain. Every single
>> non-trivial feature required extra work to play with Traversal, and
>> usually caused a trail of follow-up issues. And all that for little
>> gain. We are transplanting the interesting properties to the upcoming
>> I-U mode (which is much less trouble-some), and can ditch Traversal mode
>> altogether.
>>
>> My original plan was to ditch it after I-U is in, but now I want to do a
>> couple of cleanups before I-U and I'm not in the mood to special-case
>> Traversal there. Let's get rid of it ahead of time.
>>
>> Issue:
>> https://bugs.openjdk.java.net/browse/JDK-8242082
>> Webrev:
>> http://cr.openjdk.java.net/~rkennke/JDK-8242082/webrev.00/
> 
> Good riddance.
> 
> *) Do you have any hits if your grep for "traversal" / "Traversal" on the new code? When I was
> playing with my own removal, that highlighted some easy things to ditch.
> 
> *) The removal of ShenandoahConcurrentRoots::can_do_concurrent_roots seems premature. It mirrors
> other {can|should}_do_* things. I understand it would return true all the time, that seems fine.
> 
> *) The addition of is_concurrent_mark_in_progress is weird here. Should be deferred to IU?
> 
>   88 inline void ShenandoahBarrierSet::storeval_barrier(oop obj) {
>   89   if (obj != NULL && ShenandoahStoreValEnqueueBarrier &&
>   90       _heap->is_concurrent_mark_in_progress()) {
>   91     enqueue(obj);
>   92   }
>   93 }
> 
> *) In ShenandoahForwardedIsAliveClosure::do_object_b, can drop parentheses around the last arg and
> put it on new line?
> 
> 45   shenandoah_assert_not_forwarded_if(NULL, obj,
> 46                                      (ShenandoahHeap::heap()->is_concurrent_mark_in_progress()))
> 

I added all your suggestions, plus removed the last remaining seq_num
stuff from ShHeapRegion as you suggested in the other email:

http://cr.openjdk.java.net/~rkennke/JDK-8242082/webrev.02/

Tests are still passing fine.

Roman



More information about the shenandoah-dev mailing list