Mercurial > hg > graal-jvmci-8
comparison src/share/vm/services/mallocTracker.cpp @ 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 | 1ff288f0dae4 |
children | 787c9c28311f |
comparison
equal
deleted
inserted
replaced
20547:fffbcc20bf61 | 20553:417e3b8d04c5 |
---|---|
47 size_t amount = 0; | 47 size_t amount = 0; |
48 for (int index = 0; index < mt_number_of_types; index ++) { | 48 for (int index = 0; index < mt_number_of_types; index ++) { |
49 amount += _malloc[index].arena_size(); | 49 amount += _malloc[index].arena_size(); |
50 } | 50 } |
51 return amount; | 51 return amount; |
52 } | |
53 | |
54 | |
55 void MallocMemorySnapshot::reset() { | |
56 _tracking_header.reset(); | |
57 for (int index = 0; index < mt_number_of_types; index ++) { | |
58 _malloc[index].reset(); | |
59 } | |
60 } | 52 } |
61 | 53 |
62 // Make adjustment by subtracting chunks used by arenas | 54 // Make adjustment by subtracting chunks used by arenas |
63 // from total chunks to get total free chunck size | 55 // from total chunks to get total free chunck size |
64 void MallocMemorySnapshot::make_adjustment() { | 56 void MallocMemorySnapshot::make_adjustment() { |
114 } | 106 } |
115 | 107 |
116 bool MallocTracker::transition(NMT_TrackingLevel from, NMT_TrackingLevel to) { | 108 bool MallocTracker::transition(NMT_TrackingLevel from, NMT_TrackingLevel to) { |
117 assert(from != NMT_off, "Can not transition from off state"); | 109 assert(from != NMT_off, "Can not transition from off state"); |
118 assert(to != NMT_off, "Can not transition to off state"); | 110 assert(to != NMT_off, "Can not transition to off state"); |
119 if (from == NMT_minimal) { | 111 assert (from != NMT_minimal, "cannot transition from minimal state"); |
120 MallocMemorySummary::reset(); | |
121 } | |
122 | 112 |
123 if (to == NMT_detail) { | 113 if (from == NMT_detail) { |
124 assert(from == NMT_minimal || from == NMT_summary, "Just check"); | |
125 return MallocSiteTable::initialize(); | |
126 } else if (from == NMT_detail) { | |
127 assert(to == NMT_minimal || to == NMT_summary, "Just check"); | 114 assert(to == NMT_minimal || to == NMT_summary, "Just check"); |
128 MallocSiteTable::shutdown(); | 115 MallocSiteTable::shutdown(); |
129 } | 116 } |
130 return true; | 117 return true; |
131 } | 118 } |