8151101: Improve UseParallelGC parallelization of object array processing
Reviewed-by: tschatzl, shade
Contributed-by: richard.reingruber@sap.com
--- a/hotspot/src/share/vm/gc/parallel/psCompactionManager.inline.hpp Mon Mar 07 15:07:58 2016 +0100
+++ b/hotspot/src/share/vm/gc/parallel/psCompactionManager.inline.hpp Thu Mar 03 11:36:25 2016 -0800
@@ -125,14 +125,14 @@
T* const beg = base + beg_index;
T* const end = base + end_index;
+ if (end_index < len) {
+ cm->push_objarray(obj, end_index); // Push the continuation.
+ }
+
// Push the non-NULL elements of the next stride on the marking stack.
for (T* e = beg; e < end; e++) {
cm->mark_and_push<T>(e);
}
-
- if (end_index < len) {
- cm->push_objarray(obj, end_index); // Push the continuation.
- }
}
inline void ParCompactionManager::follow_contents(objArrayOop obj, int index) {