annotate src/share/vm/services/memBaseline.hpp @ 20553:417e3b8d04c5

8059100: SIGSEGV VirtualMemoryTracker::remove_released_region Summary: Disallow increasing native memory tracking level Reviewed-by: hseigel, ctornqvi, gtriantafill
author coleenp
date Fri, 10 Oct 2014 19:36:12 +0000
parents dd3939fe8424
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
1 /*
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
2 * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
4 *
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
7 * published by the Free Software Foundation.
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
8 *
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
13 * accompanied this code).
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
14 *
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
18 *
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
21 * questions.
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
22 *
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
23 */
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
24
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
25 #ifndef SHARE_VM_SERVICES_MEM_BASELINE_HPP
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
26 #define SHARE_VM_SERVICES_MEM_BASELINE_HPP
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
27
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
28 #if INCLUDE_NMT
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
29
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
30 #include "memory/allocation.hpp"
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
31 #include "runtime/mutex.hpp"
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
32 #include "services/mallocSiteTable.hpp"
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
33 #include "services/mallocTracker.hpp"
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
34 #include "services/nmtCommon.hpp"
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
35 #include "services/virtualMemoryTracker.hpp"
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
36 #include "utilities/linkedlist.hpp"
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
37
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
38 typedef LinkedListIterator<MallocSite> MallocSiteIterator;
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
39 typedef LinkedListIterator<VirtualMemoryAllocationSite> VirtualMemorySiteIterator;
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
40 typedef LinkedListIterator<ReservedMemoryRegion> VirtualMemoryAllocationIterator;
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
41
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
42 /*
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
43 * Baseline a memory snapshot
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
44 */
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
45 class MemBaseline VALUE_OBJ_CLASS_SPEC {
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
46 public:
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
47 enum BaselineThreshold {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
48 SIZE_THRESHOLD = K // Only allocation size over this threshold will be baselined.
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
49 };
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
50
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
51 enum BaselineType {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
52 Not_baselined,
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
53 Summary_baselined,
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
54 Detail_baselined
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
55 };
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
56
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
57 enum SortingOrder {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
58 by_address, // by memory address
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
59 by_size, // by memory size
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
60 by_site // by call site where the memory is allocated from
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
61 };
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
62
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
63 private:
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
64 // Summary information
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
65 MallocMemorySnapshot _malloc_memory_snapshot;
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
66 VirtualMemorySnapshot _virtual_memory_snapshot;
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
67
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
68 size_t _class_count;
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
69
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
70 // Allocation sites information
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
71 // Malloc allocation sites
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
72 LinkedListImpl<MallocSite> _malloc_sites;
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
73
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
74 // All virtual memory allocations
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
75 LinkedListImpl<ReservedMemoryRegion> _virtual_memory_allocations;
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
76
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
77 // Virtual memory allocations by allocation sites, always in by_address
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
78 // order
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
79 LinkedListImpl<VirtualMemoryAllocationSite> _virtual_memory_sites;
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
80
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
81 SortingOrder _malloc_sites_order;
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
82 SortingOrder _virtual_memory_sites_order;
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
83
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
84 BaselineType _baseline_type;
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
85
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
86 public:
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
87 // create a memory baseline
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
88 MemBaseline():
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
89 _baseline_type(Not_baselined),
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
90 _class_count(0) {
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
91 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
92
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
93 bool baseline(bool summaryOnly = true);
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
94
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
95 BaselineType baseline_type() const { return _baseline_type; }
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
96
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
97 MallocMemorySnapshot* malloc_memory_snapshot() {
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
98 return &_malloc_memory_snapshot;
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
99 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
100
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
101 VirtualMemorySnapshot* virtual_memory_snapshot() {
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
102 return &_virtual_memory_snapshot;
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
103 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
104
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
105 MallocSiteIterator malloc_sites(SortingOrder order);
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
106 VirtualMemorySiteIterator virtual_memory_sites(SortingOrder order);
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
107
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
108 // Virtual memory allocation iterator always returns in virtual memory
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
109 // base address order.
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
110 VirtualMemoryAllocationIterator virtual_memory_allocations() {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
111 assert(!_virtual_memory_allocations.is_empty(), "Not detail baseline");
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
112 return VirtualMemoryAllocationIterator(_virtual_memory_allocations.head());
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
113 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
114
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
115 // Total reserved memory = total malloc'd memory + total reserved virtual
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
116 // memory
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
117 size_t total_reserved_memory() const {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
118 assert(baseline_type() != Not_baselined, "Not yet baselined");
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
119 size_t amount = _malloc_memory_snapshot.total() +
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
120 _virtual_memory_snapshot.total_reserved();
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
121 return amount;
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
122 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
123
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
124 // Total committed memory = total malloc'd memory + total committed
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
125 // virtual memory
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
126 size_t total_committed_memory() const {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
127 assert(baseline_type() != Not_baselined, "Not yet baselined");
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
128 size_t amount = _malloc_memory_snapshot.total() +
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
129 _virtual_memory_snapshot.total_committed();
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
130 return amount;
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
131 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
132
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
133 size_t total_arena_memory() const {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
134 assert(baseline_type() != Not_baselined, "Not yet baselined");
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
135 return _malloc_memory_snapshot.total_arena();
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
136 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
137
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
138 size_t malloc_tracking_overhead() const {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
139 assert(baseline_type() != Not_baselined, "Not yet baselined");
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
140 MemBaseline* bl = const_cast<MemBaseline*>(this);
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
141 return bl->_malloc_memory_snapshot.malloc_overhead()->size();
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
142 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
143
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
144 MallocMemory* malloc_memory(MEMFLAGS flag) {
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
145 assert(baseline_type() != Not_baselined, "Not yet baselined");
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
146 return _malloc_memory_snapshot.by_type(flag);
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
147 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
148
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
149 VirtualMemory* virtual_memory(MEMFLAGS flag) {
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
150 assert(baseline_type() != Not_baselined, "Not yet baselined");
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
151 return _virtual_memory_snapshot.by_type(flag);
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
152 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
153
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
154
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
155 size_t class_count() const {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
156 assert(baseline_type() != Not_baselined, "Not yet baselined");
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
157 return _class_count;
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
158 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
159
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
160 size_t thread_count() const {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
161 assert(baseline_type() != Not_baselined, "Not yet baselined");
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
162 return _malloc_memory_snapshot.thread_count();
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
163 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
164
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
165 // reset the baseline for reuse
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
166 void reset() {
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
167 _baseline_type = Not_baselined;
20553
417e3b8d04c5 8059100: SIGSEGV VirtualMemoryTracker::remove_released_region
coleenp
parents: 20366
diff changeset
168 // _malloc_memory_snapshot and _virtual_memory_snapshot are copied over.
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
169 _class_count = 0;
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
170
20366
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
171 _malloc_sites.clear();
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
172 _virtual_memory_sites.clear();
dd3939fe8424 8054546: NMT2 leaks memory
zgu
parents: 20360
diff changeset
173 _virtual_memory_allocations.clear();
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
174 }
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
175
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
176 private:
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
177 // Baseline summary information
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
178 bool baseline_summary();
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
179
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
180 // Baseline allocation sites (detail tracking only)
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
181 bool baseline_allocation_sites();
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
182
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
183 // Aggregate virtual memory allocation by allocation sites
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
184 bool aggregate_virtual_memory_allocation_sites();
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
185
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
186 // Sorting allocation sites in different orders
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
187 // Sort allocation sites in size order
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
188 void malloc_sites_to_size_order();
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
189 // Sort allocation sites in call site address order
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
190 void malloc_sites_to_allocation_site_order();
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
191
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
192 // Sort allocation sites in reserved size order
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
193 void virtual_memory_sites_to_size_order();
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
194 // Sort allocation sites in call site address order
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
195 void virtual_memory_sites_to_reservation_site_order();
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
196 };
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
197
20360
833b0f92429a 8046598: Scalable Native memory tracking development
zgu
parents: 10148
diff changeset
198 #endif // INCLUDE_NMT
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
199
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents:
diff changeset
200 #endif // SHARE_VM_SERVICES_MEM_BASELINE_HPP