1 /*
   2  * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "gc/shared/gcCause.hpp"
  27 
  28 const char* GCCause::to_string(GCCause::Cause cause) {
  29   switch (cause) {
  30     case _java_lang_system_gc:
  31       return "System.gc()";
  32 
  33     case _full_gc_alot:
  34       return "FullGCAlot";
  35 
  36     case _scavenge_alot:
  37       return "ScavengeAlot";
  38 
  39     case _allocation_profiler:
  40       return "Allocation Profiler";
  41 
  42     case _jvmti_force_gc:
  43       return "JvmtiEnv ForceGarbageCollection";
  44 
  45     case _gc_locker:
  46       return "GCLocker Initiated GC";
  47 
  48     case _heap_inspection:
  49       return "Heap Inspection Initiated GC";
  50 
  51     case _heap_dump:
  52       return "Heap Dump Initiated GC";
  53 
  54     case _wb_young_gc:
  55       return "WhiteBox Initiated Young GC";
  56 
  57     case _wb_conc_mark:
  58       return "WhiteBox Initiated Concurrent Mark";
  59 
  60     case _update_allocation_context_stats_inc:
  61     case _update_allocation_context_stats_full:
  62       return "Update Allocation Context Stats";
  63 
  64     case _no_gc:
  65       return "No GC";
  66 
  67     case _allocation_failure:
  68       return "Allocation Failure";
  69 
  70     case _tenured_generation_full:
  71       return "Tenured Generation Full";
  72 
  73     case _metadata_GC_threshold:
  74       return "Metadata GC Threshold";
  75 
  76     case _cms_generation_full:
  77       return "CMS Generation Full";
  78 
  79     case _cms_initial_mark:
  80       return "CMS Initial Mark";
  81 
  82     case _cms_final_remark:
  83       return "CMS Final Remark";
  84 
  85     case _cms_concurrent_mark:
  86       return "CMS Concurrent Mark";
  87 
  88     case _old_generation_expanded_on_last_scavenge:
  89       return "Old Generation Expanded On Last Scavenge";
  90 
  91     case _old_generation_too_full_to_scavenge:
  92       return "Old Generation Too Full To Scavenge";
  93 
  94     case _adaptive_size_policy:
  95       return "Ergonomics";
  96 
  97     case _g1_inc_collection_pause:
  98       return "G1 Evacuation Pause";
  99 
 100     case _g1_humongous_allocation:
 101       return "G1 Humongous Allocation";
 102 
 103     case _last_ditch_collection:
 104       return "Last ditch collection";
 105 
 106     case _last_gc_cause:
 107       return "ILLEGAL VALUE - last gc cause - ILLEGAL VALUE";
 108 
 109     default:
 110       return "unknown GCCause";
 111   }
 112   ShouldNotReachHere();
 113 }