< prev index next >

src/share/vm/gc/parallel/psPromotionManager.cpp

Print this page

        

*** 28,37 **** --- 28,38 ---- #include "gc/parallel/psOldGen.hpp" #include "gc/parallel/psPromotionManager.inline.hpp" #include "gc/parallel/psScavenge.inline.hpp" #include "gc/shared/gcTrace.hpp" #include "gc/shared/taskqueue.inline.hpp" + #include "logging/log.hpp" #include "memory/allocation.inline.hpp" #include "memory/memRegion.hpp" #include "memory/padded.inline.hpp" #include "oops/instanceKlass.inline.hpp" #include "oops/instanceMirrorKlass.inline.hpp"
*** 97,107 **** } bool PSPromotionManager::post_scavenge(YoungGCTracer& gc_tracer) { bool promotion_failure_occurred = false; ! TASKQUEUE_STATS_ONLY(if (PrintTaskqueue) print_taskqueue_stats()); for (uint i = 0; i < ParallelGCThreads + 1; i++) { PSPromotionManager* manager = manager_array(i); assert(manager->claimed_stack_depth()->is_empty(), "should be empty"); if (manager->_promotion_failed_info.has_failed()) { gc_tracer.report_promotion_failed(manager->_promotion_failed_info); --- 98,108 ---- } bool PSPromotionManager::post_scavenge(YoungGCTracer& gc_tracer) { bool promotion_failure_occurred = false; ! TASKQUEUE_STATS_ONLY(print_taskqueue_stats()); for (uint i = 0; i < ParallelGCThreads + 1; i++) { PSPromotionManager* manager = manager_array(i); assert(manager->claimed_stack_depth()->is_empty(), "should be empty"); if (manager->_promotion_failed_info.has_failed()) { gc_tracer.report_promotion_failed(manager->_promotion_failed_info);
*** 126,136 **** "thr push steal chunked chunks", "--- ---------- ---------- ---------- ----------" }; void ! PSPromotionManager::print_taskqueue_stats(outputStream* const out) { out->print_cr("== GC Tasks Stats, GC %3d", ParallelScavengeHeap::heap()->total_collections()); TaskQueueStats totals; out->print("thr "); TaskQueueStats::print_header(1, out); out->cr(); --- 127,143 ---- "thr push steal chunked chunks", "--- ---------- ---------- ---------- ----------" }; void ! PSPromotionManager::print_taskqueue_stats() { ! LogHandle(gc, task, stats) log; ! if (!log.is_develop()) { ! return; ! } ! ResourceMark rm; ! outputStream* out = log.develop_stream(); out->print_cr("== GC Tasks Stats, GC %3d", ParallelScavengeHeap::heap()->total_collections()); TaskQueueStats totals; out->print("thr "); TaskQueueStats::print_header(1, out); out->cr();
*** 366,381 **** // i.e. if next is non-NULL. T* next_addr = (T*)java_lang_ref_Reference::next_addr(obj); T next_oop = oopDesc::load_heap_oop(next_addr); if (!oopDesc::is_null(next_oop)) { // i.e. ref is not "active" T* discovered_addr = (T*)java_lang_ref_Reference::discovered_addr(obj); ! debug_only( ! if(TraceReferenceGC && PrintGCDetails) { ! gclog_or_tty->print_cr(" Process discovered as normal " ! PTR_FORMAT, p2i(discovered_addr)); ! } ! ) if (PSScavenge::should_scavenge(discovered_addr)) { pm->claim_or_forward_depth(discovered_addr); } } // Treat next as normal oop; next is a link in the reference queue. --- 373,383 ---- // i.e. if next is non-NULL. T* next_addr = (T*)java_lang_ref_Reference::next_addr(obj); T next_oop = oopDesc::load_heap_oop(next_addr); if (!oopDesc::is_null(next_oop)) { // i.e. ref is not "active" T* discovered_addr = (T*)java_lang_ref_Reference::discovered_addr(obj); ! log_develop(gc, ref)(" Process discovered as normal " PTR_FORMAT, p2i(discovered_addr)); if (PSScavenge::should_scavenge(discovered_addr)) { pm->claim_or_forward_depth(discovered_addr); } } // Treat next as normal oop; next is a link in the reference queue.
*** 428,444 **** // No unallocation to worry about. obj = obj->forwardee(); } ! #ifndef PRODUCT ! if (TraceScavenge) { ! gclog_or_tty->print_cr("{%s %s " PTR_FORMAT " (%d)}", ! "promotion-failure", ! obj->klass()->internal_name(), ! p2i(obj), obj->size()); ! ! } ! #endif return obj; } --- 430,438 ---- // No unallocation to worry about. obj = obj->forwardee(); } ! log_develop(gc, scavenge)("{promotion-failure %s " PTR_FORMAT " (%d)}", obj->klass()->internal_name(), p2i(obj), obj->size()); return obj; }
< prev index next >