tonyp@1524: /* mikael@4153: * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved. tonyp@1524: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. tonyp@1524: * tonyp@1524: * This code is free software; you can redistribute it and/or modify it tonyp@1524: * under the terms of the GNU General Public License version 2 only, as tonyp@1524: * published by the Free Software Foundation. tonyp@1524: * tonyp@1524: * This code is distributed in the hope that it will be useful, but WITHOUT tonyp@1524: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or tonyp@1524: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License tonyp@1524: * version 2 for more details (a copy is included in the LICENSE file that tonyp@1524: * accompanied this code). tonyp@1524: * tonyp@1524: * You should have received a copy of the GNU General Public License version tonyp@1524: * 2 along with this work; if not, write to the Free Software Foundation, tonyp@1524: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. tonyp@1524: * trims@1907: * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA trims@1907: * or visit www.oracle.com if you need additional information or have any trims@1907: * questions. tonyp@1524: * tonyp@1524: */ tonyp@1524: stefank@2314: #include "precompiled.hpp" stefank@2314: #include "gc_implementation/g1/g1CollectedHeap.hpp" stefank@2314: #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" stefank@2314: #include "gc_implementation/g1/g1CollectorPolicy.hpp" stefank@2314: #include "gc_implementation/g1/heapRegion.hpp" stefank@2314: #include "services/g1MemoryPool.hpp" tonyp@1524: tonyp@1524: G1MemoryPoolSuper::G1MemoryPoolSuper(G1CollectedHeap* g1h, tonyp@1524: const char* name, tonyp@1524: size_t init_size, tonyp@3176: size_t max_size, tonyp@1524: bool support_usage_threshold) : tonyp@3176: _g1mm(g1h->g1mm()), CollectedMemoryPool(name, tonyp@3176: MemoryPool::Heap, tonyp@3176: init_size, tonyp@3176: max_size, tonyp@3176: support_usage_threshold) { tonyp@1524: assert(UseG1GC, "sanity"); tonyp@1524: } tonyp@1524: tonyp@1524: G1EdenPool::G1EdenPool(G1CollectedHeap* g1h) : tonyp@1524: G1MemoryPoolSuper(g1h, tonyp@3170: "G1 Eden Space", tonyp@3176: g1h->g1mm()->eden_space_committed(), /* init_size */ tonyp@3176: _undefined_max, tonyp@2109: false /* support_usage_threshold */) { } tonyp@1524: tonyp@1524: MemoryUsage G1EdenPool::get_memory_usage() { tonyp@1527: size_t initial_sz = initial_size(); tonyp@1527: size_t max_sz = max_size(); tonyp@1527: size_t used = used_in_bytes(); tonyp@3176: size_t committed = _g1mm->eden_space_committed(); tonyp@1524: tonyp@1527: return MemoryUsage(initial_sz, used, committed, max_sz); tonyp@1524: } tonyp@1524: tonyp@1524: G1SurvivorPool::G1SurvivorPool(G1CollectedHeap* g1h) : tonyp@1524: G1MemoryPoolSuper(g1h, tonyp@3170: "G1 Survivor Space", tonyp@3176: g1h->g1mm()->survivor_space_committed(), /* init_size */ tonyp@3176: _undefined_max, tonyp@2109: false /* support_usage_threshold */) { } tonyp@1524: tonyp@1524: MemoryUsage G1SurvivorPool::get_memory_usage() { tonyp@1527: size_t initial_sz = initial_size(); tonyp@1527: size_t max_sz = max_size(); tonyp@1527: size_t used = used_in_bytes(); tonyp@3176: size_t committed = _g1mm->survivor_space_committed(); tonyp@1524: tonyp@1527: return MemoryUsage(initial_sz, used, committed, max_sz); tonyp@1524: } tonyp@1524: tonyp@1524: G1OldGenPool::G1OldGenPool(G1CollectedHeap* g1h) : tonyp@1524: G1MemoryPoolSuper(g1h, tonyp@1524: "G1 Old Gen", tonyp@3176: g1h->g1mm()->old_space_committed(), /* init_size */ tonyp@3462: g1h->g1mm()->old_gen_max(), tonyp@2109: true /* support_usage_threshold */) { } tonyp@1524: tonyp@1524: MemoryUsage G1OldGenPool::get_memory_usage() { tonyp@1527: size_t initial_sz = initial_size(); tonyp@1527: size_t max_sz = max_size(); tonyp@1527: size_t used = used_in_bytes(); tonyp@3176: size_t committed = _g1mm->old_space_committed(); tonyp@1524: tonyp@1527: return MemoryUsage(initial_sz, used, committed, max_sz); tonyp@1524: }