1.1 --- a/src/share/vm/prims/whitebox.cpp Wed Jul 03 20:04:13 2019 +0800 1.2 +++ b/src/share/vm/prims/whitebox.cpp Wed Jul 03 20:42:37 2019 +0800 1.3 @@ -171,7 +171,7 @@ 1.4 WB_ENTRY(void, WB_PrintHeapSizes(JNIEnv* env, jobject o)) { 1.5 CollectorPolicy * p = Universe::heap()->collector_policy(); 1.6 gclog_or_tty->print_cr("Minimum heap " SIZE_FORMAT " Initial heap " 1.7 - SIZE_FORMAT" Maximum heap " SIZE_FORMAT " Min alignment " SIZE_FORMAT " Max alignment " SIZE_FORMAT, 1.8 + SIZE_FORMAT " Maximum heap " SIZE_FORMAT " Space alignment " SIZE_FORMAT " Heap alignment " SIZE_FORMAT, 1.9 p->min_heap_byte_size(), p->initial_heap_byte_size(), p->max_heap_byte_size(), 1.10 p->space_alignment(), p->heap_alignment()); 1.11 } 1.12 @@ -371,6 +371,13 @@ 1.13 return (jlong)(uintptr_t)os::malloc(size, mtTest, stack); 1.14 WB_END 1.15 1.16 +// Alloc memory with pseudo call stack and specific memory type. 1.17 +WB_ENTRY(jlong, WB_NMTMallocWithPseudoStackAndType(JNIEnv* env, jobject o, jlong size, jint pseudo_stack, jint type)) 1.18 + address pc = (address)(size_t)pseudo_stack; 1.19 + NativeCallStack stack(&pc, 1); 1.20 + return (jlong)(uintptr_t)os::malloc(size, (MEMFLAGS)type, stack); 1.21 +WB_END 1.22 + 1.23 // Free the memory allocated by NMTAllocTest 1.24 WB_ENTRY(void, WB_NMTFree(JNIEnv* env, jobject o, jlong mem)) 1.25 os::free((void*)(uintptr_t)mem, mtTest); 1.26 @@ -1081,6 +1088,7 @@ 1.27 #if INCLUDE_NMT 1.28 {CC"NMTMalloc", CC"(J)J", (void*)&WB_NMTMalloc }, 1.29 {CC"NMTMallocWithPseudoStack", CC"(JI)J", (void*)&WB_NMTMallocWithPseudoStack}, 1.30 + {CC"NMTMallocWithPseudoStackAndType", CC"(JII)J", (void*)&WB_NMTMallocWithPseudoStackAndType}, 1.31 {CC"NMTFree", CC"(J)V", (void*)&WB_NMTFree }, 1.32 {CC"NMTReserveMemory", CC"(J)J", (void*)&WB_NMTReserveMemory }, 1.33 {CC"NMTCommitMemory", CC"(JJ)V", (void*)&WB_NMTCommitMemory },