annotate src/share/vm/memory/metaspaceChunkFreeListSummary.hpp @ 20304:a22acf6d7598

8048112: G1 Full GC needs to support the case when the very first region is not available Summary: Refactor preparation for compaction during Full GC so that it lazily initializes the first compaction point. This also avoids problems later when the first region may not be committed. Also reviewed by K. Barrett. Reviewed-by: brutisso
author tschatzl
date Mon, 21 Jul 2014 10:00:31 +0200
parents 9fdaa79b0c27
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17771
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
1 /*
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
4 *
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
7 * published by the Free Software Foundation.
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
8 *
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
13 * accompanied this code).
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
14 *
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
18 *
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
21 * questions.
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
22 *
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
23 */
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
24 #ifndef SHARE_VM_MEMORY_METASPACE_CHUNK_FREE_LIST_SUMMARY_HPP
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
25 #define SHARE_VM_MEMORY_METASPACE_CHUNK_FREE_LIST_SUMMARY_HPP
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
26
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
27 #include "memory/allocation.hpp"
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
28
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
29 class MetaspaceChunkFreeListSummary VALUE_OBJ_CLASS_SPEC {
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
30 size_t _num_specialized_chunks;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
31 size_t _num_small_chunks;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
32 size_t _num_medium_chunks;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
33 size_t _num_humongous_chunks;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
34
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
35 size_t _specialized_chunks_size_in_bytes;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
36 size_t _small_chunks_size_in_bytes;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
37 size_t _medium_chunks_size_in_bytes;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
38 size_t _humongous_chunks_size_in_bytes;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
39
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
40 public:
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
41 MetaspaceChunkFreeListSummary() :
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
42 _num_specialized_chunks(0),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
43 _num_small_chunks(0),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
44 _num_medium_chunks(0),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
45 _num_humongous_chunks(0),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
46 _specialized_chunks_size_in_bytes(0),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
47 _small_chunks_size_in_bytes(0),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
48 _medium_chunks_size_in_bytes(0),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
49 _humongous_chunks_size_in_bytes(0)
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
50 {}
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
51
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
52 MetaspaceChunkFreeListSummary(size_t num_specialized_chunks,
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
53 size_t num_small_chunks,
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
54 size_t num_medium_chunks,
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
55 size_t num_humongous_chunks,
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
56 size_t specialized_chunks_size_in_bytes,
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
57 size_t small_chunks_size_in_bytes,
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
58 size_t medium_chunks_size_in_bytes,
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
59 size_t humongous_chunks_size_in_bytes) :
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
60 _num_specialized_chunks(num_specialized_chunks),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
61 _num_small_chunks(num_small_chunks),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
62 _num_medium_chunks(num_medium_chunks),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
63 _num_humongous_chunks(num_humongous_chunks),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
64 _specialized_chunks_size_in_bytes(specialized_chunks_size_in_bytes),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
65 _small_chunks_size_in_bytes(small_chunks_size_in_bytes),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
66 _medium_chunks_size_in_bytes(medium_chunks_size_in_bytes),
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
67 _humongous_chunks_size_in_bytes(humongous_chunks_size_in_bytes)
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
68 {}
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
69
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
70 size_t num_specialized_chunks() const {
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
71 return _num_specialized_chunks;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
72 }
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
73
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
74 size_t num_small_chunks() const {
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
75 return _num_small_chunks;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
76 }
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
77
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
78 size_t num_medium_chunks() const {
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
79 return _num_medium_chunks;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
80 }
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
81
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
82 size_t num_humongous_chunks() const {
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
83 return _num_humongous_chunks;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
84 }
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
85
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
86 size_t specialized_chunks_size_in_bytes() const {
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
87 return _specialized_chunks_size_in_bytes;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
88 }
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
89
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
90 size_t small_chunks_size_in_bytes() const {
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
91 return _small_chunks_size_in_bytes;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
92 }
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
93
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
94 size_t medium_chunks_size_in_bytes() const {
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
95 return _medium_chunks_size_in_bytes;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
96 }
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
97
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
98 size_t humongous_chunks_size_in_bytes() const {
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
99 return _humongous_chunks_size_in_bytes;
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
100 }
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
101 };
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
102
9fdaa79b0c27 8036703: Add trace event with statistics for the metaspace chunk free lists
ehelin
parents:
diff changeset
103 #endif // SHARE_VM_MEMORY_METASPACE_CHUNK_FREE_LIST_SUMMARY_HPP