< prev index next >

src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp

Print this page
rev 13180 : imported patch 8181917-refactor-ul-logstream

@@ -53,10 +53,11 @@
 #include "gc/shared/isGCActiveMark.hpp"
 #include "gc/shared/referencePolicy.hpp"
 #include "gc/shared/strongRootsScope.hpp"
 #include "gc/shared/taskqueue.inline.hpp"
 #include "logging/log.hpp"
+#include "logging/logStream.hpp"
 #include "memory/allocation.hpp"
 #include "memory/iterator.inline.hpp"
 #include "memory/padded.hpp"
 #include "memory/resourceArea.hpp"
 #include "oops/oop.inline.hpp"

@@ -692,12 +693,12 @@
 // At a promotion failure dump information on block layout in heap
 // (cms old generation).
 void ConcurrentMarkSweepGeneration::promotion_failure_occurred() {
   Log(gc, promotion) log;
   if (log.is_trace()) {
-    ResourceMark rm;
-    cmsSpace()->dump_at_safepoint_with_locks(collector(), log.trace_stream());
+    LogStream ls(log.trace());
+    cmsSpace()->dump_at_safepoint_with_locks(collector(), &ls);
   }
 }
 
 void ConcurrentMarkSweepGeneration::reset_after_compaction() {
   // Clear the promotion information.  These pointers can be adjusted

@@ -2244,11 +2245,13 @@
   bool do_bit(size_t offset) {
     HeapWord* addr = _marks->offsetToHeapWord(offset);
     if (!_marks->isMarked(addr)) {
       Log(gc, verify) log;
       ResourceMark rm;
-      oop(addr)->print_on(log.error_stream());
+      // Unconditional write?
+      LogStream ls(log.error());
+      oop(addr)->print_on(&ls);
       log.error(" (" INTPTR_FORMAT " should have been marked)", p2i(addr));
       _failed = true;
     }
     return true;
   }

@@ -2369,11 +2372,13 @@
   verification_mark_bm()->iterate(&vcl);
   if (vcl.failed()) {
     Log(gc, verify) log;
     log.error("Failed marking verification after remark");
     ResourceMark rm;
-    gch->print_on(log.error_stream());
+    // Unconditional write?
+    LogStream ls(log.error());
+    gch->print_on(&ls);
     fatal("CMS: failed marking verification after remark");
   }
 }
 
 class VerifyKlassOopsKlassClosure : public KlassClosure {

@@ -5877,11 +5882,13 @@
   if (_span.contains(addr)) {
     _verification_bm->mark(addr);
     if (!_cms_bm->isMarked(addr)) {
       Log(gc, verify) log;
       ResourceMark rm;
-      oop(addr)->print_on(log.error_stream());
+      // Unconditional write?
+      LogStream ls(log.error());
+      oop(addr)->print_on(&ls);
       log.error(" (" INTPTR_FORMAT " should have been marked)", p2i(addr));
       fatal("... aborting");
     }
   }
 }

@@ -6662,11 +6669,13 @@
     // Oop lies in _span and isn't yet grey or black
     _verification_bm->mark(addr);            // now grey
     if (!_cms_bm->isMarked(addr)) {
       Log(gc, verify) log;
       ResourceMark rm;
-      oop(addr)->print_on(log.error_stream());
+      // Unconditional write?
+      LogStream ls(log.error());
+      oop(addr)->print_on(&ls);
       log.error(" (" INTPTR_FORMAT " should have been marked)", p2i(addr));
       fatal("... aborting");
     }
 
     if (!_mark_stack->push(obj)) { // stack overflow

@@ -7070,11 +7079,13 @@
          "sweep _limit out of bounds");
   if (inFreeRange()) {
     Log(gc, sweep) log;
     log.error("inFreeRange() should have been reset; dumping state of SweepClosure");
     ResourceMark rm;
-    print_on(log.error_stream());
+    // Unconditional write?
+    LogStream ls(log.error());
+    print_on(&ls);
     ShouldNotReachHere();
   }
 
   if (log_is_enabled(Debug, gc, sweep)) {
     log_debug(gc, sweep)("Collected " SIZE_FORMAT " objects, " SIZE_FORMAT " bytes",
< prev index next >