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

Mon, 19 Aug 2019 10:11:31 +0200

author
neugens
date
Mon, 19 Aug 2019 10:11:31 +0200
changeset 9861
a248d0be1309
parent 7195
c02ec279b062
permissions
-rw-r--r--

8229401: Fix JFR code cache test failures
8223689: Add JFR Thread Sampling Support
8223690: Add JFR BiasedLock Event Support
8223691: Add JFR G1 Region Type Change Event Support
8223692: Add JFR G1 Heap Summary Event Support
Summary: Backport JFR from JDK11, additional fixes
Reviewed-by: neugens, apetushkov
Contributed-by: denghui.ddh@alibaba-inc.com

     1 /*
     2  * Copyright (c) 2014, 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  */
    25 #include "precompiled.hpp"
    26 #include "gc_implementation/g1/heapRegionType.hpp"
    28 bool HeapRegionType::is_valid(Tag tag) {
    29   switch (tag) {
    30     case FreeTag:
    31     case EdenTag:
    32     case SurvTag:
    33     case HumStartsTag:
    34     case HumContTag:
    35     case OldTag:
    36       return true;
    37   }
    38   return false;
    39 }
    41 const char* HeapRegionType::get_str() const {
    42   hrt_assert_is_valid(_tag);
    43   switch (_tag) {
    44     case FreeTag:      return "FREE";
    45     case EdenTag:      return "EDEN";
    46     case SurvTag:      return "SURV";
    47     case HumStartsTag: return "HUMS";
    48     case HumContTag:   return "HUMC";
    49     case OldTag:       return "OLD";
    50   }
    51   ShouldNotReachHere();
    52   // keep some compilers happy
    53   return NULL;
    54 }
    56 const char* HeapRegionType::get_short_str() const {
    57   hrt_assert_is_valid(_tag);
    58   switch (_tag) {
    59     case FreeTag:      return "F";
    60     case EdenTag:      return "E";
    61     case SurvTag:      return "S";
    62     case HumStartsTag: return "HS";
    63     case HumContTag:   return "HC";
    64     case OldTag:       return "O";
    65   }
    66   ShouldNotReachHere();
    67   // keep some compilers happy
    68   return NULL;
    69 }
    71 G1HeapRegionTraceType::Type HeapRegionType::get_trace_type() {
    72   hrt_assert_is_valid(_tag);
    73   switch (_tag) {
    74     case FreeTag:               return G1HeapRegionTraceType::Free;
    75     case EdenTag:               return G1HeapRegionTraceType::Eden;
    76     case SurvTag:               return G1HeapRegionTraceType::Survivor;
    77     case HumStartsTag:          return G1HeapRegionTraceType::StartsHumongous;
    78     case HumContTag:            return G1HeapRegionTraceType::ContinuesHumongous;
    79     case OldTag:                return G1HeapRegionTraceType::Old;
    80     default:
    81       ShouldNotReachHere();
    82       return G1HeapRegionTraceType::Free; // keep some compilers happy
    83   }
    84 }

mercurial