1 /*
   2  * Copyright (c) 2002, 2012, 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_interface/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 _no_gc:
  55       return "No GC";
  56 
  57     case _allocation_failure:
  58       return "Allocation Failure";
  59 
  60     case _tenured_generation_full:
  61       return "Tenured Generation Full";
  62 
  63     case _metadata_GC_threshold:
  64       return "Metadata GC Threshold";
  65 
  66     case _cms_generation_full:
  67       return "CMS Generation Full";
  68 
  69     case _cms_initial_mark:
  70       return "CMS Initial Mark";
  71 
  72     case _cms_final_remark:
  73       return "CMS Final Remark";
  74 
  75     case _cms_concurrent_mark:
  76       return "CMS Concurrent Mark";
  77 
  78     case _old_generation_expanded_on_last_scavenge:
  79       return "Old Generation Expanded On Last Scavenge";
  80 
  81     case _old_generation_too_full_to_scavenge:
  82       return "Old Generation Too Full To Scavenge";
  83 
  84     case _adaptive_size_policy:
  85       return "Ergonomics";
  86 
  87     case _g1_humongous_allocation:
  88       return "G1 Humongous Allocation";
  89 
  90     case _last_ditch_collection:
  91       return "Last ditch collection";
  92 
  93     case _last_gc_cause:
  94       return "ILLEGAL VALUE - last gc cause - ILLEGAL VALUE";
  95 
  96     default:
  97       return "unknown GCCause";
  98   }
  99   ShouldNotReachHere();
 100 }