RFR: Klass is_<x>Array() fix, and support for value type ref fields with Parallel GC
David Simms
david.simms at oracle.com
Thu Mar 16 12:46:46 UTC 2017
Hi all,
http://cr.openjdk.java.net/~dsimms/valhalla/valueoops/webrev1/
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
for ObjArrayKlass.
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).
Cheers
/David Simms
More information about the valhalla-dev
mailing list