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 _wb_full_gc:
  61       return "WhiteBox Initiated Full GC";
  62 
  63     case _no_gc:
  64       return "No GC";
  65 
  66     case _allocation_failure:
  67       return "Allocation Failure";
  68 
  69     case _tenured_generation_full:
  70       return "Tenured Generation Full";
  71 
  72     case _metadata_GC_threshold:
  73       return "Metadata GC Threshold";
  74 
  75     case _metadata_GC_clear_soft_refs:
  76       return "Metadata GC Clear Soft References";
  77 
  78     case _cms_generation_full:
  79       return "CMS Generation Full";
  80 
  81     case _cms_initial_mark:
  82       return "CMS Initial Mark";
  83 
  84     case _cms_final_remark:
  85       return "CMS Final Remark";
  86 
  87     case _cms_concurrent_mark:
  88       return "CMS Concurrent Mark";
  89 
  90     case _old_generation_expanded_on_last_scavenge:
  91       return "Old Generation Expanded On Last Scavenge";
  92 
  93     case _old_generation_too_full_to_scavenge:
  94       return "Old Generation Too Full To Scavenge";
  95 
  96     case _adaptive_size_policy:
  97       return "Ergonomics";
  98 
  99     case _g1_inc_collection_pause:
 100       return "G1 Evacuation Pause";
 101 
 102     case _g1_humongous_allocation:
 103       return "G1 Humongous Allocation";
 104 
 105     case _dcmd_gc_run:
 106       return "Diagnostic Command";
 107 
 108     case _last_gc_cause:
 109       return "ILLEGAL VALUE - last gc cause - ILLEGAL VALUE";
 110 
 111     default:
 112       return "unknown GCCause";
 113   }
 114   ShouldNotReachHere();
 115 }