RFR: Klass is_<x>Array() fix, and support for value type ref fields with Parallel GC
david.simms at oracle.com
Thu Mar 16 12:46:46 UTC 2017
As follow-up to "Value Types with ref fields, GC: Serial and G1"
change earlier today, I realized only a few simple changes were required
for basic Parallel GC support. Main outage:
ValueArrayKlass::oop_pc_follow_contents() is not parallel as is the case
The main change is actually a bug fix, whereby Klass layout helper
was always set "is_typeArray()" to true for valueArrayKlass. Previous to
adding reference fields to value type this wasn't much of a problem.
There is a fair amount of GC code which checks "is_typeArray()" then
"nothing to do here".
One could argue that value arrays, could use the obj array bit for
rather than testing "valueKlass::contains_oops()", but for clarity, I
simply added another discrete array tag bit. Arrays are one of three
things, but not two of three as was the case (value and type array).
More information about the valhalla-dev