aboutsummaryrefslogtreecommitdiffstats
path: root/hotspot/.hg/patches/gc-java8.patch
diff options
context:
space:
mode:
authorIvan Dubrov <idubrov@guidewire.com>2015-03-31 18:14:18 -0700
committerIvan Dubrov <idubrov@guidewire.com>2015-03-31 18:16:53 -0700
commit53c3f53814ae54b4450fc68f01f1972631eaf9e8 (patch)
tree4474eab37dec71cbdc2b368ee48d0376c7b9ab2a /hotspot/.hg/patches/gc-java8.patch
parentb620f801f5a0382da772f73af23da315667357a4 (diff)
downloaddcevm-53c3f53814ae54b4450fc68f01f1972631eaf9e8.tar.gz
dcevm-53c3f53814ae54b4450fc68f01f1972631eaf9e8.zip
jdk8u40-b25 updates
Diffstat (limited to 'hotspot/.hg/patches/gc-java8.patch')
-rw-r--r--hotspot/.hg/patches/gc-java8.patch122
1 files changed, 64 insertions, 58 deletions
diff --git a/hotspot/.hg/patches/gc-java8.patch b/hotspot/.hg/patches/gc-java8.patch
index b190c7d8..f4c471a3 100644
--- a/hotspot/.hg/patches/gc-java8.patch
+++ b/hotspot/.hg/patches/gc-java8.patch
@@ -1,8 +1,11 @@
+# HG changeset patch
+# Parent 8f44f8a7e50563e6c9a82fb0ed6c7bce4925bd3b
Change MarkAndSweep garbage collector to allow changing instances during redefinition.
-diff --git a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
---- a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
-+++ b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
-@@ -161,6 +161,12 @@
+
+diff -r 8f44f8a7e505 src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+--- a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Tue Mar 31 18:01:20 2015 -0700
++++ b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Tue Mar 31 18:05:19 2015 -0700
+@@ -163,6 +163,12 @@
}
}
@@ -15,7 +18,7 @@ diff --git a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeL
// Like CompactibleSpace forward() but always calls cross_threshold() to
// update the block offset table. Removed initialize_threshold call because
// CFLS does not use a block offset array for contiguous spaces.
-@@ -2098,7 +2104,7 @@
+@@ -2097,7 +2103,7 @@
// Support for compaction
void CompactibleFreeListSpace::prepare_for_compaction(CompactPoint* cp) {
@@ -24,7 +27,7 @@ diff --git a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeL
// prepare_for_compaction() uses the space between live objects
// so that later phase can skip dead space quickly. So verification
// of the free lists doesn't work after.
-@@ -2119,7 +2125,7 @@
+@@ -2118,7 +2124,7 @@
}
void CompactibleFreeListSpace::compact() {
@@ -33,9 +36,9 @@ diff --git a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeL
}
// fragmentation_metric = 1 - [sum of (fbs**2) / (sum of fbs)**2]
-diff --git a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp
---- a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp
-+++ b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp
+diff -r 8f44f8a7e505 src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp
+--- a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp Tue Mar 31 18:01:20 2015 -0700
++++ b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp Tue Mar 31 18:05:19 2015 -0700
@@ -150,6 +150,7 @@
// Support for compacting cms
@@ -44,19 +47,19 @@ diff --git a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeL
HeapWord* forward(oop q, size_t size, CompactPoint* cp, HeapWord* compact_top);
// Initialization helpers.
-diff --git a/src/share/vm/gc_implementation/shared/markSweep.cpp b/src/share/vm/gc_implementation/shared/markSweep.cpp
---- a/src/share/vm/gc_implementation/shared/markSweep.cpp
-+++ b/src/share/vm/gc_implementation/shared/markSweep.cpp
-@@ -46,6 +46,8 @@
+diff -r 8f44f8a7e505 src/share/vm/gc_implementation/shared/markSweep.cpp
+--- a/src/share/vm/gc_implementation/shared/markSweep.cpp Tue Mar 31 18:01:20 2015 -0700
++++ b/src/share/vm/gc_implementation/shared/markSweep.cpp Tue Mar 31 18:05:19 2015 -0700
+@@ -48,6 +48,8 @@
STWGCTimer* MarkSweep::_gc_timer = NULL;
SerialOldTracer* MarkSweep::_gc_tracer = NULL;
+GrowableArray<HeapWord*>* MarkSweep::_rescued_oops = NULL;
+
MarkSweep::FollowRootClosure MarkSweep::follow_root_closure;
- CodeBlobToOopClosure MarkSweep::follow_code_root_closure(&MarkSweep::follow_root_closure, /*do_marking=*/ true);
-@@ -171,3 +173,100 @@
+ void MarkSweep::FollowRootClosure::do_oop(oop* p) { follow_root(p); }
+@@ -165,3 +167,100 @@
}
#endif
@@ -157,10 +160,10 @@ diff --git a/src/share/vm/gc_implementation/shared/markSweep.cpp b/src/share/vm/
+ }
+ }
+}
-diff --git a/src/share/vm/gc_implementation/shared/markSweep.hpp b/src/share/vm/gc_implementation/shared/markSweep.hpp
---- a/src/share/vm/gc_implementation/shared/markSweep.hpp
-+++ b/src/share/vm/gc_implementation/shared/markSweep.hpp
-@@ -107,8 +107,12 @@
+diff -r 8f44f8a7e505 src/share/vm/gc_implementation/shared/markSweep.hpp
+--- a/src/share/vm/gc_implementation/shared/markSweep.hpp Tue Mar 31 18:01:20 2015 -0700
++++ b/src/share/vm/gc_implementation/shared/markSweep.hpp Tue Mar 31 18:05:19 2015 -0700
+@@ -96,8 +96,12 @@
friend class AdjustPointerClosure;
friend class KeepAliveClosure;
friend class VM_MarkSweep;
@@ -173,7 +176,7 @@ diff --git a/src/share/vm/gc_implementation/shared/markSweep.hpp b/src/share/vm/
//
// Vars
//
-@@ -169,6 +173,9 @@
+@@ -157,6 +161,9 @@
static inline void push_objarray(oop obj, size_t index);
@@ -183,17 +186,17 @@ diff --git a/src/share/vm/gc_implementation/shared/markSweep.hpp b/src/share/vm/
static void follow_stack(); // Empty marking stack.
static void follow_klass(Klass* klass);
-diff --git a/src/share/vm/memory/genMarkSweep.cpp b/src/share/vm/memory/genMarkSweep.cpp
---- a/src/share/vm/memory/genMarkSweep.cpp
-+++ b/src/share/vm/memory/genMarkSweep.cpp
-@@ -334,11 +334,16 @@
+diff -r 8f44f8a7e505 src/share/vm/memory/genMarkSweep.cpp
+--- a/src/share/vm/memory/genMarkSweep.cpp Tue Mar 31 18:01:20 2015 -0700
++++ b/src/share/vm/memory/genMarkSweep.cpp Tue Mar 31 18:05:19 2015 -0700
+@@ -327,11 +327,16 @@
// in the same order in phase2, phase3 and phase4. We don't quite do that
// here (perm_gen first rather than last), so we tell the validate code
// to use a higher index (saved from phase2) when verifying perm_gen.
+ assert(_rescued_oops == NULL, "must be empty before processing");
GenCollectedHeap* gch = GenCollectedHeap::heap();
- GCTraceTime tm("phase 4", PrintGC && Verbose, true, _gc_timer);
+ GCTraceTime tm("phase 4", PrintGC && Verbose, true, _gc_timer, _gc_tracer->gc_id());
trace("4");
+ MarkSweep::copy_rescued_objects_back();
@@ -203,10 +206,10 @@ diff --git a/src/share/vm/memory/genMarkSweep.cpp b/src/share/vm/memory/genMarkS
+
+ MarkSweep::copy_rescued_objects_back();
}
-diff --git a/src/share/vm/memory/space.cpp b/src/share/vm/memory/space.cpp
---- a/src/share/vm/memory/space.cpp
-+++ b/src/share/vm/memory/space.cpp
-@@ -379,9 +379,8 @@
+diff -r 8f44f8a7e505 src/share/vm/memory/space.cpp
+--- a/src/share/vm/memory/space.cpp Tue Mar 31 18:01:20 2015 -0700
++++ b/src/share/vm/memory/space.cpp Tue Mar 31 18:05:19 2015 -0700
+@@ -377,9 +377,8 @@
_compaction_top = bottom();
}
@@ -218,7 +221,7 @@ diff --git a/src/share/vm/memory/space.cpp b/src/share/vm/memory/space.cpp
// First check if we should switch compaction space
assert(this == cp->space, "'this' should be current compaction space.");
size_t compaction_max_size = pointer_delta(end(), compact_top);
-@@ -401,8 +400,15 @@
+@@ -399,8 +398,15 @@
compaction_max_size = pointer_delta(cp->space->end(), compact_top);
}
@@ -235,7 +238,7 @@ diff --git a/src/share/vm/memory/space.cpp b/src/share/vm/memory/space.cpp
q->forward_to(oop(compact_top));
assert(q->is_gc_marked(), "encoding the pointer should preserve the mark");
} else {
-@@ -423,6 +429,58 @@
+@@ -421,6 +427,58 @@
return compact_top;
}
@@ -294,7 +297,7 @@ diff --git a/src/share/vm/memory/space.cpp b/src/share/vm/memory/space.cpp
bool CompactibleSpace::insert_deadspace(size_t& allowed_deadspace_words,
HeapWord* q, size_t deadlength) {
-@@ -444,12 +502,17 @@
+@@ -442,12 +500,17 @@
#define adjust_obj_size(s) s
void CompactibleSpace::prepare_for_compaction(CompactPoint* cp) {
@@ -314,7 +317,7 @@ diff --git a/src/share/vm/memory/space.cpp b/src/share/vm/memory/space.cpp
}
void Space::adjust_pointers() {
-@@ -487,6 +550,111 @@
+@@ -485,6 +548,111 @@
assert(q == t, "just checking");
}
@@ -426,7 +429,7 @@ diff --git a/src/share/vm/memory/space.cpp b/src/share/vm/memory/space.cpp
void CompactibleSpace::adjust_pointers() {
// Check first is there is any work to do.
if (used() == 0) {
-@@ -497,7 +665,12 @@
+@@ -495,7 +663,12 @@
}
void CompactibleSpace::compact() {
@@ -440,10 +443,10 @@ diff --git a/src/share/vm/memory/space.cpp b/src/share/vm/memory/space.cpp
}
void Space::print_short() const { print_short_on(tty); }
-diff --git a/src/share/vm/memory/space.hpp b/src/share/vm/memory/space.hpp
---- a/src/share/vm/memory/space.hpp
-+++ b/src/share/vm/memory/space.hpp
-@@ -450,6 +450,9 @@
+diff -r 8f44f8a7e505 src/share/vm/memory/space.hpp
+--- a/src/share/vm/memory/space.hpp Tue Mar 31 18:01:20 2015 -0700
++++ b/src/share/vm/memory/space.hpp Tue Mar 31 18:05:19 2015 -0700
+@@ -392,6 +392,9 @@
// indicates when the next such action should be taken.
virtual void prepare_for_compaction(CompactPoint* cp);
// MarkSweep support phase3
@@ -453,7 +456,7 @@ diff --git a/src/share/vm/memory/space.hpp b/src/share/vm/memory/space.hpp
virtual void adjust_pointers();
// MarkSweep support phase4
virtual void compact();
-@@ -479,6 +482,15 @@
+@@ -421,6 +424,15 @@
// accordingly".
virtual HeapWord* forward(oop q, size_t size, CompactPoint* cp,
HeapWord* compact_top);
@@ -469,16 +472,19 @@ diff --git a/src/share/vm/memory/space.hpp b/src/share/vm/memory/space.hpp
// Return a size with adjusments as required of the space.
virtual size_t adjust_object_size_v(size_t size) const { return size; }
-@@ -509,7 +521,7 @@
- size_t word_len);
- };
+diff -r 8f44f8a7e505 src/share/vm/memory/space.inline.hpp
+--- a/src/share/vm/memory/space.inline.hpp Tue Mar 31 18:01:20 2015 -0700
++++ b/src/share/vm/memory/space.inline.hpp Tue Mar 31 18:05:19 2015 -0700
+@@ -35,7 +35,7 @@
+ return block_start_const(p);
+ }
-#define SCAN_AND_FORWARD(cp,scan_limit,block_is_obj,block_size) { \
+#define SCAN_AND_FORWARD(cp,scan_limit,block_is_obj,block_size,redefinition_run) { \
/* Compute the new addresses for the live objects and store it in the mark \
* Used by universe::mark_sweep_phase2() \
*/ \
-@@ -567,7 +579,17 @@
+@@ -93,7 +93,17 @@
/* prefetch beyond q */ \
Prefetch::write(q, interval); \
size_t size = block_size(q); \
@@ -496,7 +502,7 @@ diff --git a/src/share/vm/memory/space.hpp b/src/share/vm/memory/space.hpp
q += size; \
end_of_live = q; \
} else { \
-@@ -616,6 +638,8 @@
+@@ -142,6 +152,8 @@
} \
} \
\
@@ -505,7 +511,7 @@ diff --git a/src/share/vm/memory/space.hpp b/src/share/vm/memory/space.hpp
assert(q == t, "just checking"); \
if (liveRange != NULL) { \
liveRange->set_end(q); \
-@@ -662,13 +686,8 @@
+@@ -188,13 +200,8 @@
q += size; \
} \
\
@@ -521,7 +527,7 @@ diff --git a/src/share/vm/memory/space.hpp b/src/share/vm/memory/space.hpp
} \
\
const intx interval = PrefetchScanIntervalInBytes; \
-@@ -696,7 +715,7 @@
+@@ -222,7 +229,7 @@
assert(q == t, "just checking"); \
}
@@ -530,7 +536,7 @@ diff --git a/src/share/vm/memory/space.hpp b/src/share/vm/memory/space.hpp
/* Copy all live objects to their new location \
* Used by MarkSweep::mark_sweep_phase4() */ \
\
-@@ -721,13 +740,9 @@
+@@ -247,13 +254,9 @@
} \
) /* debug_only */ \
\
@@ -546,7 +552,7 @@ diff --git a/src/share/vm/memory/space.hpp b/src/share/vm/memory/space.hpp
\
const intx scan_interval = PrefetchScanIntervalInBytes; \
const intx copy_interval = PrefetchCopyIntervalInBytes; \
-@@ -745,11 +760,34 @@
+@@ -271,11 +274,34 @@
size_t size = obj_size(q); \
HeapWord* compaction_top = (HeapWord*)oop(q)->forwardee(); \
\
@@ -582,22 +588,22 @@ diff --git a/src/share/vm/memory/space.hpp b/src/share/vm/memory/space.hpp
Copy::aligned_conjoint_words(q, compaction_top, size); \
oop(compaction_top)->init_mark(); \
assert(oop(compaction_top)->klass() != NULL, "should have a class"); \
-diff --git a/src/share/vm/memory/universe.cpp b/src/share/vm/memory/universe.cpp
---- a/src/share/vm/memory/universe.cpp
-+++ b/src/share/vm/memory/universe.cpp
-@@ -78,6 +78,8 @@
- #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
- #endif // INCLUDE_ALL_GCS
+diff -r 8f44f8a7e505 src/share/vm/memory/universe.cpp
+--- a/src/share/vm/memory/universe.cpp Tue Mar 31 18:01:20 2015 -0700
++++ b/src/share/vm/memory/universe.cpp Tue Mar 31 18:05:19 2015 -0700
+@@ -84,6 +84,8 @@
+
+ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
+bool Universe::_is_redefining_gc_run = false;
+
// Known objects
Klass* Universe::_boolArrayKlassObj = NULL;
Klass* Universe::_byteArrayKlassObj = NULL;
-diff --git a/src/share/vm/memory/universe.hpp b/src/share/vm/memory/universe.hpp
---- a/src/share/vm/memory/universe.hpp
-+++ b/src/share/vm/memory/universe.hpp
-@@ -248,7 +248,13 @@
+diff -r 8f44f8a7e505 src/share/vm/memory/universe.hpp
+--- a/src/share/vm/memory/universe.hpp Tue Mar 31 18:01:20 2015 -0700
++++ b/src/share/vm/memory/universe.hpp Tue Mar 31 18:05:19 2015 -0700
+@@ -251,7 +251,13 @@
static void compute_verify_oop_data();