aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstefank <none@none>2012-09-28 14:14:25 +0200
committerstefank <none@none>2012-09-28 14:14:25 +0200
commit1bac024e917c46f2b5884889b8faffb60546d7c1 (patch)
tree9878318d56185cd582678340729bf45fefe2d1da
parentd62de0547e828870e9b4770135667b719925d5ad (diff)
parentba1c5c13e080692b66f56f7986889fac090705fb (diff)
Merge
-rw-r--r--src/share/vm/code/codeCache.cpp6
-rw-r--r--src/share/vm/code/codeCache.hpp4
-rw-r--r--src/share/vm/code/nmethod.cpp11
-rw-r--r--src/share/vm/code/nmethod.hpp6
-rw-r--r--src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp4
-rw-r--r--src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp2
-rw-r--r--src/share/vm/gc_implementation/g1/g1MarkSweep.cpp4
-rw-r--r--src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp3
-rw-r--r--src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp3
-rw-r--r--src/share/vm/memory/genMarkSweep.cpp2
-rw-r--r--src/share/vm/memory/metaspace.cpp4
11 files changed, 17 insertions, 32 deletions
diff --git a/src/share/vm/code/codeCache.cpp b/src/share/vm/code/codeCache.cpp
index 0b4a99ad1..c40a377eb 100644
--- a/src/share/vm/code/codeCache.cpp
+++ b/src/share/vm/code/codeCache.cpp
@@ -309,12 +309,10 @@ int CodeCache::alignment_offset() {
// Mark nmethods for unloading if they contain otherwise unreachable
// oops.
-void CodeCache::do_unloading(BoolObjectClosure* is_alive,
- OopClosure* keep_alive,
- bool unloading_occurred) {
+void CodeCache::do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred) {
assert_locked_or_safepoint(CodeCache_lock);
FOR_ALL_ALIVE_NMETHODS(nm) {
- nm->do_unloading(is_alive, keep_alive, unloading_occurred);
+ nm->do_unloading(is_alive, unloading_occurred);
}
}
diff --git a/src/share/vm/code/codeCache.hpp b/src/share/vm/code/codeCache.hpp
index b9dee54d6..6187ba9a2 100644
--- a/src/share/vm/code/codeCache.hpp
+++ b/src/share/vm/code/codeCache.hpp
@@ -130,9 +130,7 @@ class CodeCache : AllStatic {
// If "unloading_occurred" is true, then unloads (i.e., breaks root links
// to) any unmarked codeBlobs in the cache. Sets "marked_for_unloading"
// to "true" iff some code got unloaded.
- static void do_unloading(BoolObjectClosure* is_alive,
- OopClosure* keep_alive,
- bool unloading_occurred);
+ static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred);
static void oops_do(OopClosure* f) {
CodeBlobToOopClosure oopc(f, /*do_marking=*/ false);
blobs_do(&oopc);
diff --git a/src/share/vm/code/nmethod.cpp b/src/share/vm/code/nmethod.cpp
index 1b3ddf48e..8d206ea6a 100644
--- a/src/share/vm/code/nmethod.cpp
+++ b/src/share/vm/code/nmethod.cpp
@@ -1472,9 +1472,7 @@ void nmethod::flush_dependencies(BoolObjectClosure* is_alive) {
// If this oop is not live, the nmethod can be unloaded.
-bool nmethod::can_unload(BoolObjectClosure* is_alive,
- OopClosure* keep_alive,
- oop* root, bool unloading_occurred) {
+bool nmethod::can_unload(BoolObjectClosure* is_alive, oop* root, bool unloading_occurred) {
assert(root != NULL, "just checking");
oop obj = *root;
if (obj == NULL || is_alive->do_object_b(obj)) {
@@ -1583,8 +1581,7 @@ void nmethod::post_compiled_method_unload() {
// GC to unload an nmethod if it contains otherwise unreachable
// oops.
-void nmethod::do_unloading(BoolObjectClosure* is_alive,
- OopClosure* keep_alive, bool unloading_occurred) {
+void nmethod::do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred) {
// Make sure the oop's ready to receive visitors
assert(!is_zombie() && !is_unloaded(),
"should not call follow on zombie or unloaded nmethod");
@@ -1672,7 +1669,7 @@ void nmethod::do_unloading(BoolObjectClosure* is_alive,
(r->oop_addr() >= oops_begin() && r->oop_addr() < oops_end()),
"oop must be found in exactly one place");
if (r->oop_is_immediate() && r->oop_value() != NULL) {
- if (can_unload(is_alive, keep_alive, r->oop_addr(), unloading_occurred)) {
+ if (can_unload(is_alive, r->oop_addr(), unloading_occurred)) {
return;
}
}
@@ -1684,7 +1681,7 @@ void nmethod::do_unloading(BoolObjectClosure* is_alive,
// Scopes
for (oop* p = oops_begin(); p < oops_end(); p++) {
if (*p == Universe::non_oop_word()) continue; // skip non-oops
- if (can_unload(is_alive, keep_alive, p, unloading_occurred)) {
+ if (can_unload(is_alive, p, unloading_occurred)) {
return;
}
}
diff --git a/src/share/vm/code/nmethod.hpp b/src/share/vm/code/nmethod.hpp
index a64e9ff71..fbd0b2cdb 100644
--- a/src/share/vm/code/nmethod.hpp
+++ b/src/share/vm/code/nmethod.hpp
@@ -556,10 +556,8 @@ public:
void set_method(Method* method) { _method = method; }
// GC support
- void do_unloading(BoolObjectClosure* is_alive, OopClosure* keep_alive,
- bool unloading_occurred);
- bool can_unload(BoolObjectClosure* is_alive, OopClosure* keep_alive,
- oop* root, bool unloading_occurred);
+ void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred);
+ bool can_unload(BoolObjectClosure* is_alive, oop* root, bool unloading_occurred);
void preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map,
OopClosure* f);
diff --git a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
index d26749e26..203821d2f 100644
--- a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+++ b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
@@ -5954,9 +5954,7 @@ void CMSCollector::refProcessingWork(bool asynch, bool clear_all_soft_refs) {
bool purged_class = SystemDictionary::do_unloading(&_is_alive_closure);
// Follow CodeCache roots and unload any methods marked for unloading
- CodeCache::do_unloading(&_is_alive_closure,
- &cmsKeepAliveClosure,
- purged_class);
+ CodeCache::do_unloading(&_is_alive_closure, purged_class);
cmsDrainMarkingStackClosure.do_void();
verify_work_stacks_empty();
diff --git a/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp b/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp
index ae8439ad2..7a102cf43 100644
--- a/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp
+++ b/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp
@@ -129,7 +129,7 @@ void WorkerDataArray<T>::print(int level, const char* title) {
buf.append_and_print_cr("]");
}
-#ifdef ASSERT
+#ifndef PRODUCT
template <class T>
void WorkerDataArray<T>::reset() {
diff --git a/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp b/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp
index 67eac907c..55925da89 100644
--- a/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp
+++ b/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp
@@ -151,9 +151,7 @@ void G1MarkSweep::mark_sweep_phase1(bool& marked_for_unloading,
// Follow code cache roots (has to be done after system dictionary,
// assumes all live klasses are marked)
- CodeCache::do_unloading(&GenMarkSweep::is_alive,
- &GenMarkSweep::keep_alive,
- purged_class);
+ CodeCache::do_unloading(&GenMarkSweep::is_alive, purged_class);
GenMarkSweep::follow_stack();
// Update subklass/sibling/implementor links of live klasses
diff --git a/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp b/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp
index 1c59966ee..44e764f7a 100644
--- a/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp
+++ b/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp
@@ -521,8 +521,7 @@ void PSMarkSweep::mark_sweep_phase1(bool clear_all_softrefs) {
bool purged_class = SystemDictionary::do_unloading(is_alive_closure());
// Follow code cache roots
- CodeCache::do_unloading(is_alive_closure(), mark_and_push_closure(),
- purged_class);
+ CodeCache::do_unloading(is_alive_closure(), purged_class);
follow_stack(); // Flush marking stack
// Update subklass/sibling/implementor links of live klasses
diff --git a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
index fe8ec1780..7a0776212 100644
--- a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
+++ b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
@@ -2375,8 +2375,7 @@ void PSParallelCompact::marking_phase(ParCompactionManager* cm,
bool purged_class = SystemDictionary::do_unloading(is_alive_closure());
// Follow code cache roots.
- CodeCache::do_unloading(is_alive_closure(), &mark_and_push_closure,
- purged_class);
+ CodeCache::do_unloading(is_alive_closure(), purged_class);
cm->follow_marking_stacks(); // Flush marking stack.
// Update subklass/sibling/implementor links of live klasses
diff --git a/src/share/vm/memory/genMarkSweep.cpp b/src/share/vm/memory/genMarkSweep.cpp
index 5ab72e4e9..91fe3957c 100644
--- a/src/share/vm/memory/genMarkSweep.cpp
+++ b/src/share/vm/memory/genMarkSweep.cpp
@@ -291,7 +291,7 @@ void GenMarkSweep::mark_sweep_phase1(int level,
bool purged_class = SystemDictionary::do_unloading(&is_alive);
// Follow code cache roots
- CodeCache::do_unloading(&is_alive, &keep_alive, purged_class);
+ CodeCache::do_unloading(&is_alive, purged_class);
follow_stack(); // Flush marking stack
// Update subklass/sibling/implementor links of live klasses
diff --git a/src/share/vm/memory/metaspace.cpp b/src/share/vm/memory/metaspace.cpp
index 23aabded2..0396eef2d 100644
--- a/src/share/vm/memory/metaspace.cpp
+++ b/src/share/vm/memory/metaspace.cpp
@@ -2518,7 +2518,7 @@ void SpaceManager::dump(outputStream* const out) const {
" waste " SIZE_FORMAT, curr_total, used, free, capacity, waste);
}
-#ifndef PRODUCT
+#ifdef ASSERT
void SpaceManager::mangle_freed_chunks() {
for (ChunkIndex index = SmallIndex;
index < NumberOfFreeLists;
@@ -2536,7 +2536,7 @@ void SpaceManager::mangle_freed_chunks() {
}
}
}
-#endif // PRODUCT
+#endif // ASSERT
// MetaspaceAux