RFR (M): 8165857: CMS _overflow_list is missing volatile qualifiers

Erik Österlund erik.osterlund at oracle.com
Mon Sep 19 11:43:34 UTC 2016


Hi,

This bug is a split out of the larger JDK-8033552 for adding volatile 
qualifiers to lock-free code.
The motivation is to make our implementation more robust since these 
kind of issues have struck us a few times too many already.

CR: https://bugs.openjdk.java.net/browse/JDK-8165857
Webrev: http://cr.openjdk.java.net/~eosterlund/8165857/webrev.00/

This specific CR handles the lack of volatile qualifiers for the 
_overflow_list fields of the ParallelGC ConcurrentMarkSweepGeneration 
and ParNewGeneration classes.
The type of the overflow list has been changed to HeapWord *volatile per 
Kim's recommendation as an oop variant requires changes to the oop class 
with new overloads, which seems a bit unnecessary considering the 
overflow lists are hardly proper oop lists either; it has e.g. sentinel 
values.

I went ahead and did the required changes to make the lists HeapWord 
*volatile, which should make them a little bit more robust.

Testing: JPRT

I will need a sponsor to push this.

Thanks,
/Erik


More information about the hotspot-gc-dev mailing list