annotate src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.hpp @ 23472:047a642c9729

8065579: WB method to start G1 concurrent mark cycle should be introduced Summary: Add a WhiteBox callback to the VM to start a concurrent mark cycle in G1. Reviewed-by: tschatzl, sjohanss Contributed-by: Leonid Mesnik <leonid.mesnik@oracle.com>
author kevinw
date Wed, 02 Dec 2015 13:58:34 +0530
parents 33e421924c67
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
1 /*
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
4 *
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
7 * published by the Free Software Foundation.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
8 *
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
13 * accompanied this code).
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
14 *
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
18 *
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
21 * questions.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
22 *
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
23 */
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
24
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1PAGEBASEDVIRTUALSPACE_HPP
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
26 #define SHARE_VM_GC_IMPLEMENTATION_G1_G1PAGEBASEDVIRTUALSPACE_HPP
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
27
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
28 #include "memory/allocation.hpp"
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
29 #include "memory/memRegion.hpp"
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
30 #include "runtime/virtualspace.hpp"
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
31 #include "utilities/bitMap.hpp"
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
32
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
33 // Virtual space management helper for a virtual space with an OS page allocation
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
34 // granularity.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
35 // (De-)Allocation requests are always OS page aligned by passing a page index
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
36 // and multiples of pages.
22977
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
37 // For systems that only commits of memory in a given size (always greater than
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
38 // page size) the base address is required to be aligned to that page size.
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
39 // The actual size requested need not be aligned to that page size, but the size
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
40 // of the reservation passed may be rounded up to this page size. Any fragment
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
41 // (less than the page size) of the actual size at the tail of the request will
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
42 // be committed using OS small pages.
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
43 // The implementation gives an error when trying to commit or uncommit pages that
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
44 // have already been committed or uncommitted.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
45 class G1PageBasedVirtualSpace VALUE_OBJ_CLASS_SPEC {
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
46 friend class VMStructs;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
47 private:
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
48 // Reserved area addresses.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
49 char* _low_boundary;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
50 char* _high_boundary;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
51
22977
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
52 // The size of the tail in bytes of the handled space that needs to be committed
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
53 // using small pages.
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
54 size_t _tail_size;
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
55
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
56 // The preferred page size used for commit/uncommit in bytes.
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
57 size_t _page_size;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
58
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
59 // Bitmap used for verification of commit/uncommit operations.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
60 BitMap _committed;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
61
20795
ae52ee069062 8062063: Usage of UseHugeTLBFS, UseLargePagesInMetaspace and huge SurvivorAlignmentInBytes cause crashes in CMBitMapClosure::do_bit
sjohanss
parents: 20337
diff changeset
62 // Bitmap used to keep track of which pages are dirty or not for _special
ae52ee069062 8062063: Usage of UseHugeTLBFS, UseLargePagesInMetaspace and huge SurvivorAlignmentInBytes cause crashes in CMBitMapClosure::do_bit
sjohanss
parents: 20337
diff changeset
63 // spaces. This is needed because for those spaces the underlying memory
ae52ee069062 8062063: Usage of UseHugeTLBFS, UseLargePagesInMetaspace and huge SurvivorAlignmentInBytes cause crashes in CMBitMapClosure::do_bit
sjohanss
parents: 20337
diff changeset
64 // will only be zero filled the first time it is committed. Calls to commit
ae52ee069062 8062063: Usage of UseHugeTLBFS, UseLargePagesInMetaspace and huge SurvivorAlignmentInBytes cause crashes in CMBitMapClosure::do_bit
sjohanss
parents: 20337
diff changeset
65 // will use this bitmap and return whether or not the memory is zero filled.
ae52ee069062 8062063: Usage of UseHugeTLBFS, UseLargePagesInMetaspace and huge SurvivorAlignmentInBytes cause crashes in CMBitMapClosure::do_bit
sjohanss
parents: 20337
diff changeset
66 BitMap _dirty;
ae52ee069062 8062063: Usage of UseHugeTLBFS, UseLargePagesInMetaspace and huge SurvivorAlignmentInBytes cause crashes in CMBitMapClosure::do_bit
sjohanss
parents: 20337
diff changeset
67
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
68 // Indicates that the entire space has been committed and pinned in memory,
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
69 // os::commit_memory() or os::uncommit_memory() have no function.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
70 bool _special;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
71
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
72 // Indicates whether the committed space should be executable.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
73 bool _executable;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
74
22977
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
75 // Helper function for committing memory. Commit the given memory range by using
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
76 // _page_size pages as much as possible and the remainder with small sized pages.
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
77 void commit_internal(size_t start_page, size_t end_page);
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
78 // Commit num_pages pages of _page_size size starting from start. All argument
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
79 // checking has been performed.
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
80 void commit_preferred_pages(size_t start_page, size_t end_page);
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
81 // Commit space at the high end of the space that needs to be committed with small
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
82 // sized pages.
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
83 void commit_tail();
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
84
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
85 // Uncommit the given memory range.
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
86 void uncommit_internal(size_t start_page, size_t end_page);
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
87
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
88 // Pretouch the given memory range.
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
89 void pretouch_internal(size_t start_page, size_t end_page);
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
90
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
91 // Returns the index of the page which contains the given address.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
92 uintptr_t addr_to_page_index(char* addr) const;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
93 // Returns the address of the given page index.
22977
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
94 char* page_start(size_t index) const;
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
95
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
96 // Is the given page index the last page?
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
97 bool is_last_page(size_t index) const { return index == (_committed.size() - 1); }
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
98 // Is the given page index the first after last page?
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
99 bool is_after_last_page(size_t index) const;
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
100 // Is the last page only partially covered by this space?
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
101 bool is_last_page_partial() const { return !is_ptr_aligned(_high_boundary, _page_size); }
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
102 // Returns the end address of the given page bounded by the reserved space.
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
103 char* bounded_end_addr(size_t end_page) const;
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
104
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
105 // Returns true if the entire area is backed by committed memory.
22977
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
106 bool is_area_committed(size_t start_page, size_t size_in_pages) const;
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
107 // Returns true if the entire area is not backed by committed memory.
22977
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
108 bool is_area_uncommitted(size_t start_page, size_t size_in_pages) const;
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
109
22977
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
110 void initialize_with_page_size(ReservedSpace rs, size_t used_size, size_t page_size);
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
111 public:
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
112
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
113 // Commit the given area of pages starting at start being size_in_pages large.
20795
ae52ee069062 8062063: Usage of UseHugeTLBFS, UseLargePagesInMetaspace and huge SurvivorAlignmentInBytes cause crashes in CMBitMapClosure::do_bit
sjohanss
parents: 20337
diff changeset
114 // Returns true if the given area is zero filled upon completion.
22977
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
115 bool commit(size_t start_page, size_t size_in_pages);
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
116
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
117 // Uncommit the given area of pages starting at start being size_in_pages large.
22977
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
118 void uncommit(size_t start_page, size_t size_in_pages);
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
119
22977
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
120 // Initialize the given reserved space with the given base address and the size
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
121 // actually used.
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
122 // Prefer to commit in page_size chunks.
33e421924c67 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
tschatzl
parents: 20795
diff changeset
123 G1PageBasedVirtualSpace(ReservedSpace rs, size_t used_size, size_t page_size);
20337
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
124
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
125 // Destruction
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
126 ~G1PageBasedVirtualSpace();
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
127
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
128 // Amount of reserved memory.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
129 size_t reserved_size() const;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
130 // Memory used in this virtual space.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
131 size_t committed_size() const;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
132 // Memory left to use/expand in this virtual space.
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
133 size_t uncommitted_size() const;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
134
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
135 bool contains(const void* p) const;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
136
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
137 MemRegion reserved() {
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
138 MemRegion x((HeapWord*)_low_boundary, reserved_size() / HeapWordSize);
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
139 return x;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
140 }
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
141
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
142 void release();
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
143
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
144 void check_for_contiguity() PRODUCT_RETURN;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
145
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
146 // Debugging
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
147 void print_on(outputStream* out) PRODUCT_RETURN;
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
148 void print();
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
149 };
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
150
1f1d373cd044 8038423: G1: Decommit memory within heap
tschatzl
parents:
diff changeset
151 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1PAGEBASEDVIRTUALSPACE_HPP