174
175 WB_ENTRY(jlong, WB_GetCompressedOopsMaxHeapSize(JNIEnv* env, jobject o)) {
176 return (jlong)Arguments::max_heap_for_compressed_oops();
177 }
178 WB_END
179
180 WB_ENTRY(void, WB_PrintHeapSizes(JNIEnv* env, jobject o)) {
181 CollectorPolicy * p = Universe::heap()->collector_policy();
182 tty->print_cr("Minimum heap " SIZE_FORMAT " Initial heap "
183 SIZE_FORMAT " Maximum heap " SIZE_FORMAT " Space alignment " SIZE_FORMAT " Heap alignment " SIZE_FORMAT,
184 p->min_heap_byte_size(), p->initial_heap_byte_size(), p->max_heap_byte_size(),
185 p->space_alignment(), p->heap_alignment());
186 }
187 WB_END
188
189 #ifndef PRODUCT
190 // Forward declaration
191 void TestReservedSpace_test();
192 void TestReserveMemorySpecial_test();
193 void TestVirtualSpace_test();
194 void TestMetaspaceAux_test();
195 #endif
196
197 WB_ENTRY(void, WB_RunMemoryUnitTests(JNIEnv* env, jobject o))
198 #ifndef PRODUCT
199 TestReservedSpace_test();
200 TestReserveMemorySpecial_test();
201 TestVirtualSpace_test();
202 TestMetaspaceAux_test();
203 #endif
204 WB_END
205
206 WB_ENTRY(void, WB_ReadFromNoaccessArea(JNIEnv* env, jobject o))
207 size_t granularity = os::vm_allocation_granularity();
208 ReservedHeapSpace rhs(100 * granularity, granularity, false);
209 VirtualSpace vs;
210 vs.initialize(rhs, 50 * granularity);
211
212 // Check if constraints are complied
213 if (!( UseCompressedOops && rhs.base() != NULL &&
214 Universe::narrow_oop_base() != NULL &&
215 Universe::narrow_oop_use_implicit_null_checks() )) {
216 tty->print_cr("WB_ReadFromNoaccessArea method is useless:\n "
217 "\tUseCompressedOops is %d\n"
218 "\trhs.base() is " PTR_FORMAT "\n"
219 "\tUniverse::narrow_oop_base() is " PTR_FORMAT "\n"
220 "\tUniverse::narrow_oop_use_implicit_null_checks() is %d",
221 UseCompressedOops,
222 p2i(rhs.base()),
|
174
175 WB_ENTRY(jlong, WB_GetCompressedOopsMaxHeapSize(JNIEnv* env, jobject o)) {
176 return (jlong)Arguments::max_heap_for_compressed_oops();
177 }
178 WB_END
179
180 WB_ENTRY(void, WB_PrintHeapSizes(JNIEnv* env, jobject o)) {
181 CollectorPolicy * p = Universe::heap()->collector_policy();
182 tty->print_cr("Minimum heap " SIZE_FORMAT " Initial heap "
183 SIZE_FORMAT " Maximum heap " SIZE_FORMAT " Space alignment " SIZE_FORMAT " Heap alignment " SIZE_FORMAT,
184 p->min_heap_byte_size(), p->initial_heap_byte_size(), p->max_heap_byte_size(),
185 p->space_alignment(), p->heap_alignment());
186 }
187 WB_END
188
189 #ifndef PRODUCT
190 // Forward declaration
191 void TestReservedSpace_test();
192 void TestReserveMemorySpecial_test();
193 void TestVirtualSpace_test();
194 void TestMetaspaceUtils_test();
195 #endif
196
197 WB_ENTRY(void, WB_RunMemoryUnitTests(JNIEnv* env, jobject o))
198 #ifndef PRODUCT
199 TestReservedSpace_test();
200 TestReserveMemorySpecial_test();
201 TestVirtualSpace_test();
202 TestMetaspaceUtils_test();
203 #endif
204 WB_END
205
206 WB_ENTRY(void, WB_ReadFromNoaccessArea(JNIEnv* env, jobject o))
207 size_t granularity = os::vm_allocation_granularity();
208 ReservedHeapSpace rhs(100 * granularity, granularity, false);
209 VirtualSpace vs;
210 vs.initialize(rhs, 50 * granularity);
211
212 // Check if constraints are complied
213 if (!( UseCompressedOops && rhs.base() != NULL &&
214 Universe::narrow_oop_base() != NULL &&
215 Universe::narrow_oop_use_implicit_null_checks() )) {
216 tty->print_cr("WB_ReadFromNoaccessArea method is useless:\n "
217 "\tUseCompressedOops is %d\n"
218 "\trhs.base() is " PTR_FORMAT "\n"
219 "\tUniverse::narrow_oop_base() is " PTR_FORMAT "\n"
220 "\tUniverse::narrow_oop_use_implicit_null_checks() is %d",
221 UseCompressedOops,
222 p2i(rhs.base()),
|