Mercurial > hg > truffle
annotate src/share/vm/memory/filemap.hpp @ 20543:e7d0505c8a30
8059758: Footprint regressions with JDK-8038423
Summary: Changes in JDK-8038423 always initialize (zero out) virtual memory used for auxiliary data structures. This causes a footprint regression for G1 in startup benchmarks. This is because they do not touch that memory at all, so the operating system does not actually commit these pages. The fix is to, if the initialization value of the data structures matches the default value of just committed memory (=0), do not do anything.
Reviewed-by: jwilhelm, brutisso
author | tschatzl |
---|---|
date | Fri, 10 Oct 2014 15:51:58 +0200 |
parents | 6e0cb14ce59b |
children | 8cb56c8cb30d |
rev | line source |
---|---|
0 | 1 /* |
12056
740e263c80c6
8003424: Enable Class Data Sharing for CompressedOops
hseigel
parents:
11056
diff
changeset
|
2 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
21 * questions. |
0 | 22 * |
23 */ | |
24 | |
1972 | 25 #ifndef SHARE_VM_MEMORY_FILEMAP_HPP |
26 #define SHARE_VM_MEMORY_FILEMAP_HPP | |
27 | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6197
diff
changeset
|
28 #include "memory/metaspaceShared.hpp" |
12838
85c1ca43713f
8024547: MaxMetaspaceSize should limit the committed memory used by the metaspaces
stefank
parents:
12056
diff
changeset
|
29 #include "memory/metaspace.hpp" |
1972 | 30 |
0 | 31 // Layout of the file: |
32 // header: dump of archive instance plus versioning info, datestamp, etc. | |
33 // [magic # = 0xF00BABA2] | |
34 // ... padding to align on page-boundary | |
35 // read-write space from CompactingPermGenGen | |
36 // read-only space from CompactingPermGenGen | |
37 // misc data (block offset table, string table, symbols, dictionary, etc.) | |
38 // tag(666) | |
39 | |
40 static const int JVM_IDENT_MAX = 256; | |
41 | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6197
diff
changeset
|
42 class Metaspace; |
0 | 43 |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
44 class SharedClassPathEntry VALUE_OBJ_CLASS_SPEC { |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
45 public: |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
46 const char *_name; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
47 time_t _timestamp; // jar timestamp, 0 if is directory |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
48 long _filesize; // jar file size, -1 if is directory |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
49 bool is_dir() { |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
50 return _filesize == -1; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
51 } |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
52 }; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
53 |
6197 | 54 class FileMapInfo : public CHeapObj<mtInternal> { |
0 | 55 private: |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
56 friend class ManifestStream; |
0 | 57 enum { |
58 _invalid_version = -1, | |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
59 _current_version = 2 |
0 | 60 }; |
61 | |
62 bool _file_open; | |
63 int _fd; | |
64 long _file_offset; | |
65 | |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
66 private: |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
67 static SharedClassPathEntry* _classpath_entry_table; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
68 static int _classpath_entry_table_size; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
69 static size_t _classpath_entry_size; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
70 static bool _validating_classpath_entry_table; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
71 |
0 | 72 // FileMapHeader describes the shared space data in the file to be |
73 // mapped. This structure gets written to a file. It is not a class, so | |
74 // that the compilers don't add any compiler-private data to it. | |
75 | |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
76 public: |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
77 struct FileMapHeaderBase : public CHeapObj<mtClass> { |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
78 virtual bool validate() = 0; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
79 virtual void populate(FileMapInfo* info, size_t alignment) = 0; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
80 }; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
81 struct FileMapHeader : FileMapHeaderBase { |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
82 // Use data() and data_size() to memcopy to/from the FileMapHeader. We need to |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
83 // avoid read/writing the C++ vtable pointer. |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
84 static size_t data_size(); |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
85 char* data() { |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
86 return ((char*)this) + sizeof(FileMapHeaderBase); |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
87 } |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
88 |
0 | 89 int _magic; // identify file type. |
90 int _version; // (from enum, above.) | |
91 size_t _alignment; // how shared archive should be aligned | |
7461
561148896559
8005076: Creating a CDS archive with one alignment and running another causes a crash.
hseigel
parents:
6882
diff
changeset
|
92 int _obj_alignment; // value of ObjectAlignmentInBytes |
0 | 93 |
94 struct space_info { | |
95 int _file_offset; // sizeof(this) rounded to vm page size | |
96 char* _base; // copy-on-write base address | |
97 size_t _capacity; // for validity checking | |
98 size_t _used; // for setting space top on read | |
99 bool _read_only; // read only space? | |
100 bool _allow_exec; // executable code in space? | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6197
diff
changeset
|
101 } _space[MetaspaceShared::n_regions]; |
0 | 102 |
103 // The following fields are all sanity checks for whether this archive | |
104 // will function correctly with this JVM and the bootclasspath it's | |
105 // invoked with. | |
106 char _jvm_ident[JVM_IDENT_MAX]; // identifier for jvm | |
107 | |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
108 // The _paths_misc_info is a variable-size structure that records "miscellaneous" |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
109 // information during dumping. It is generated and validated by the |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
110 // SharedPathsMiscInfo class. See SharedPathsMiscInfo.hpp and sharedClassUtil.hpp for |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
111 // detailed description. |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
112 // |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
113 // The _paths_misc_info data is stored as a byte array in the archive file header, |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
114 // immediately after the _header field. This information is used only when |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
115 // checking the validity of the archive and is deallocated after the archive is loaded. |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
116 // |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
117 // Note that the _paths_misc_info does NOT include information for JAR files |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
118 // that existed during dump time. Their information is stored in _classpath_entry_table. |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
119 int _paths_misc_info_size; |
0 | 120 |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
121 // The following is a table of all the class path entries that were used |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
122 // during dumping. At run time, we require these files to exist and have the same |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
123 // size/modification time, or else the archive will refuse to load. |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
124 // |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
125 // All of these entries must be JAR files. The dumping process would fail if a non-empty |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
126 // directory was specified in the classpaths. If an empty directory was specified |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
127 // it is checked by the _paths_misc_info as described above. |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
128 // |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
129 // FIXME -- if JAR files in the tail of the list were specified but not used during dumping, |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
130 // they should be removed from this table, to save space and to avoid spurious |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
131 // loading failures during runtime. |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
132 int _classpath_entry_table_size; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
133 size_t _classpath_entry_size; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
134 SharedClassPathEntry* _classpath_entry_table; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
135 |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
136 virtual bool validate(); |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
137 virtual void populate(FileMapInfo* info, size_t alignment); |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
138 }; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
139 |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
140 FileMapHeader * _header; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
141 |
0 | 142 const char* _full_path; |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
143 char* _paths_misc_info; |
0 | 144 |
145 static FileMapInfo* _current_info; | |
146 | |
147 bool init_from_file(int fd); | |
148 void align_file_position(); | |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
149 bool validate_header_impl(); |
0 | 150 |
151 public: | |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
152 FileMapInfo(); |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
153 ~FileMapInfo(); |
0 | 154 |
155 static int current_version() { return _current_version; } | |
156 void populate_header(size_t alignment); | |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
157 bool validate_header(); |
0 | 158 void invalidate(); |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
159 int version() { return _header->_version; } |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
160 size_t alignment() { return _header->_alignment; } |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
161 size_t space_capacity(int i) { return _header->_space[i]._capacity; } |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
162 char* region_base(int i) { return _header->_space[i]._base; } |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
163 struct FileMapHeader* header() { return _header; } |
8720
fad90b102190
8008310: Some adjustments needed to minimal VM warnings and errors for unsupported command line options
jprovino
parents:
7461
diff
changeset
|
164 |
fad90b102190
8008310: Some adjustments needed to minimal VM warnings and errors for unsupported command line options
jprovino
parents:
7461
diff
changeset
|
165 static FileMapInfo* current_info() { |
fad90b102190
8008310: Some adjustments needed to minimal VM warnings and errors for unsupported command line options
jprovino
parents:
7461
diff
changeset
|
166 CDS_ONLY(return _current_info;) |
fad90b102190
8008310: Some adjustments needed to minimal VM warnings and errors for unsupported command line options
jprovino
parents:
7461
diff
changeset
|
167 NOT_CDS(return NULL;) |
fad90b102190
8008310: Some adjustments needed to minimal VM warnings and errors for unsupported command line options
jprovino
parents:
7461
diff
changeset
|
168 } |
fad90b102190
8008310: Some adjustments needed to minimal VM warnings and errors for unsupported command line options
jprovino
parents:
7461
diff
changeset
|
169 |
0 | 170 static void assert_mark(bool check); |
171 | |
172 // File manipulation. | |
8720
fad90b102190
8008310: Some adjustments needed to minimal VM warnings and errors for unsupported command line options
jprovino
parents:
7461
diff
changeset
|
173 bool initialize() NOT_CDS_RETURN_(false); |
0 | 174 bool open_for_read(); |
175 void open_for_write(); | |
176 void write_header(); | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6197
diff
changeset
|
177 void write_space(int i, Metaspace* space, bool read_only); |
0 | 178 void write_region(int region, char* base, size_t size, |
179 size_t capacity, bool read_only, bool allow_exec); | |
180 void write_bytes(const void* buffer, int count); | |
181 void write_bytes_aligned(const void* buffer, int count); | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6197
diff
changeset
|
182 char* map_region(int i); |
0 | 183 void unmap_region(int i); |
184 void close(); | |
185 bool is_open() { return _file_open; } | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6197
diff
changeset
|
186 ReservedSpace reserve_shared_memory(); |
0 | 187 |
188 // JVM/TI RedefineClasses() support: | |
189 // Remap the shared readonly space to shared readwrite, private. | |
190 bool remap_shared_readonly_as_readwrite(); | |
191 | |
192 // Errors. | |
193 static void fail_stop(const char *msg, ...); | |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
194 static void fail_continue(const char *msg, ...); |
0 | 195 |
196 // Return true if given address is in the mapped shared space. | |
8720
fad90b102190
8008310: Some adjustments needed to minimal VM warnings and errors for unsupported command line options
jprovino
parents:
7461
diff
changeset
|
197 bool is_in_shared_space(const void* p) NOT_CDS_RETURN_(false); |
11056
221df7e37535
8016075: Win32 crash with CDS enabled and small heap size
iklam
parents:
8720
diff
changeset
|
198 void print_shared_spaces() NOT_CDS_RETURN; |
12056
740e263c80c6
8003424: Enable Class Data Sharing for CompressedOops
hseigel
parents:
11056
diff
changeset
|
199 |
740e263c80c6
8003424: Enable Class Data Sharing for CompressedOops
hseigel
parents:
11056
diff
changeset
|
200 static size_t shared_spaces_size() { |
740e263c80c6
8003424: Enable Class Data Sharing for CompressedOops
hseigel
parents:
11056
diff
changeset
|
201 return align_size_up(SharedReadOnlySize + SharedReadWriteSize + |
740e263c80c6
8003424: Enable Class Data Sharing for CompressedOops
hseigel
parents:
11056
diff
changeset
|
202 SharedMiscDataSize + SharedMiscCodeSize, |
740e263c80c6
8003424: Enable Class Data Sharing for CompressedOops
hseigel
parents:
11056
diff
changeset
|
203 os::vm_allocation_granularity()); |
740e263c80c6
8003424: Enable Class Data Sharing for CompressedOops
hseigel
parents:
11056
diff
changeset
|
204 } |
740e263c80c6
8003424: Enable Class Data Sharing for CompressedOops
hseigel
parents:
11056
diff
changeset
|
205 |
740e263c80c6
8003424: Enable Class Data Sharing for CompressedOops
hseigel
parents:
11056
diff
changeset
|
206 // Stop CDS sharing and unmap CDS regions. |
740e263c80c6
8003424: Enable Class Data Sharing for CompressedOops
hseigel
parents:
11056
diff
changeset
|
207 static void stop_sharing_and_unmap(const char* msg); |
20375
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
208 |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
209 static void allocate_classpath_entry_table(); |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
210 bool validate_classpath_entry_table(); |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
211 |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
212 static SharedClassPathEntry* shared_classpath(int index) { |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
213 char* p = (char*)_classpath_entry_table; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
214 p += _classpath_entry_size * index; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
215 return (SharedClassPathEntry*)p; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
216 } |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
217 static const char* shared_classpath_name(int index) { |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
218 return shared_classpath(index)->_name; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
219 } |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
220 |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
221 static int get_number_of_share_classpaths() { |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
222 return _classpath_entry_table_size; |
6e0cb14ce59b
8046070: Class Data Sharing clean up and refactoring
iklam
parents:
12838
diff
changeset
|
223 } |
0 | 224 }; |
1972 | 225 |
226 #endif // SHARE_VM_MEMORY_FILEMAP_HPP |