--- old/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp 2014-11-06 01:36:41.901526484 -0800 +++ new/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp 2014-11-06 01:36:41.805526487 -0800 @@ -28,6 +28,7 @@ #include "gc_implementation/shared/gcHeapSummary.hpp" #include "gc_implementation/shared/gSpaceCounters.hpp" #include "gc_implementation/shared/gcStats.hpp" +#include "gc_implementation/shared/gcTrace.hpp" #include "gc_implementation/shared/gcWhen.hpp" #include "gc_implementation/shared/generationCounters.hpp" #include "memory/freeBlockDictionary.hpp" @@ -1178,7 +1179,8 @@ void reset_direct_allocated_words() { _direct_allocated_words = 0; } // Overrides for parallel promotion. - virtual oop par_promote(int thread_num, + virtual oop par_promote(const ParNewTracer* gc_tracer, + int thread_num, oop obj, markOop m, size_t word_sz); // This one should not be called for CMS. virtual void par_promote_alloc_undo(int thread_num, @@ -1226,7 +1228,11 @@ virtual bool expand(size_t bytes, size_t expand_bytes); void shrink(size_t bytes); void shrink_by(size_t bytes); - HeapWord* expand_and_par_lab_allocate(CMSParGCThreadState* ps, size_t word_sz); + // The oop (old) is used to extract information for promotion trace event + HeapWord* expand_and_par_lab_allocate(CMSParGCThreadState* ps, + const ParNewTracer* gc_tracer, + size_t word_sz, + const oop old, const markOop m); bool expand_and_ensure_spooling_space(PromotionInfo* promo); // Iteration support and related enquiries