src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp

changeset 9896
1b8c45b8216a
parent 9787
9f28a4cac6d9
parent 9861
a248d0be1309
child 9931
fd44df5e3bc3
     1.1 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Thu Feb 27 19:01:32 2020 +0000
     1.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Tue Mar 03 12:57:23 2020 +0000
     1.3 @@ -3579,6 +3579,28 @@
     1.4  }
     1.5  #endif // PRODUCT
     1.6  
     1.7 +G1HeapSummary G1CollectedHeap::create_g1_heap_summary() {
     1.8 +
     1.9 +  size_t eden_used_bytes = _young_list->eden_used_bytes();
    1.10 +  size_t survivor_used_bytes = _young_list->survivor_used_bytes();
    1.11 +  size_t heap_used = Heap_lock->owned_by_self() ? used() : used_unlocked();
    1.12 +
    1.13 +  size_t eden_capacity_bytes =
    1.14 +    (g1_policy()->young_list_target_length() * HeapRegion::GrainBytes) - survivor_used_bytes;
    1.15 +
    1.16 +  VirtualSpaceSummary heap_summary = create_heap_space_summary();
    1.17 +  return G1HeapSummary(heap_summary, heap_used, eden_used_bytes,
    1.18 +                       eden_capacity_bytes, survivor_used_bytes, num_regions());
    1.19 +}
    1.20 +
    1.21 +void G1CollectedHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
    1.22 +  const G1HeapSummary& heap_summary = create_g1_heap_summary();
    1.23 +  gc_tracer->report_gc_heap_summary(when, heap_summary);
    1.24 +
    1.25 +  const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
    1.26 +  gc_tracer->report_metaspace_summary(when, metaspace_summary);
    1.27 +}
    1.28 +
    1.29  G1CollectedHeap* G1CollectedHeap::heap() {
    1.30    assert(_sh->kind() == CollectedHeap::G1CollectedHeap,
    1.31           "not a garbage-first heap");
    1.32 @@ -4096,7 +4118,7 @@
    1.33          g1_policy()->print_collection_set(g1_policy()->inc_cset_head(), gclog_or_tty);
    1.34  #endif // YOUNG_LIST_VERBOSE
    1.35  
    1.36 -        g1_policy()->record_collection_pause_start(sample_start_time_sec);
    1.37 +        g1_policy()->record_collection_pause_start(sample_start_time_sec, *_gc_tracer_stw);
    1.38  
    1.39          double scan_wait_start = os::elapsedTime();
    1.40          // We have to wait until the CM threads finish scanning the

mercurial