< prev index next >

src/hotspot/share/prims/whitebox.cpp

Print this page
rev 60538 : imported patch jep387-all.patch

*** 44,53 **** --- 44,54 ---- #include "logging/log.hpp" #include "memory/filemap.hpp" #include "memory/heapShared.inline.hpp" #include "memory/metaspaceShared.hpp" #include "memory/metadataFactory.hpp" + #include "memory/metaspace/metaspace_test.hpp" #include "memory/iterator.hpp" #include "memory/resourceArea.hpp" #include "memory/universe.hpp" #include "memory/oopFactory.hpp" #include "oops/array.hpp"
*** 82,91 **** --- 83,93 ---- #include "utilities/align.hpp" #include "utilities/debug.hpp" #include "utilities/elfFile.hpp" #include "utilities/exceptions.hpp" #include "utilities/macros.hpp" + #include "utilities/ostream.hpp" #if INCLUDE_CDS #include "prims/cdsoffsets.hpp" #endif // INCLUDE_CDS #if INCLUDE_G1GC #include "gc/g1/g1Arguments.hpp"
*** 1688,1697 **** --- 1690,1758 ---- int WhiteBox::array_bytes_to_length(size_t bytes) { return Array<u1>::bytes_to_length(bytes); } + /////////////// + // MetaspaceTestContext and MetaspaceTestArena + WB_ENTRY(jlong, WB_CreateMetaspaceTestContext(JNIEnv* env, jobject wb, jlong commit_limit, jlong reserve_limit)) + metaspace::MetaspaceTestContext* context = + new metaspace::MetaspaceTestContext("whitebox-metaspace-context", (size_t) commit_limit, (size_t) reserve_limit); + return (jlong)p2i(context); + WB_END + + WB_ENTRY(void, WB_DestroyMetaspaceTestContext(JNIEnv* env, jobject wb, jlong context)) + delete (metaspace::MetaspaceTestContext*) context; + WB_END + + WB_ENTRY(void, WB_PurgeMetaspaceTestContext(JNIEnv* env, jobject wb, jlong context)) + metaspace::MetaspaceTestContext* context0 = (metaspace::MetaspaceTestContext*) context; + context0->purge_area(); + WB_END + + WB_ENTRY(void, WB_PrintMetaspaceTestContext(JNIEnv* env, jobject wb, jlong context)) + metaspace::MetaspaceTestContext* context0 = (metaspace::MetaspaceTestContext*) context; + context0->print_on(tty); + WB_END + + WB_ENTRY(jlong, WB_GetTotalCommittedWordsInMetaspaceTestContext(JNIEnv* env, jobject wb, jlong context)) + metaspace::MetaspaceTestContext* context0 = (metaspace::MetaspaceTestContext*) context; + return context0->committed_words(); + WB_END + + WB_ENTRY(jlong, WB_GetTotalUsedWordsInMetaspaceTestContext(JNIEnv* env, jobject wb, jlong context)) + metaspace::MetaspaceTestContext* context0 = (metaspace::MetaspaceTestContext*) context; + return context0->used_words(); + WB_END + + WB_ENTRY(jlong, WB_CreateArenaInTestContext(JNIEnv* env, jobject wb, jlong context, jboolean is_micro)) + const Metaspace::MetaspaceType type = is_micro ? Metaspace::ReflectionMetaspaceType : Metaspace::StandardMetaspaceType; + metaspace::MetaspaceTestContext* context0 = (metaspace::MetaspaceTestContext*) context; + return (jlong)p2i(context0->create_arena(type)); + WB_END + + WB_ENTRY(void, WB_DestroyMetaspaceTestArena(JNIEnv* env, jobject wb, jlong arena)) + delete (metaspace::MetaspaceTestArena*) arena; + WB_END + + WB_ENTRY(jlong, WB_AllocateFromMetaspaceTestArena(JNIEnv* env, jobject wb, jlong arena, jlong word_size)) + metaspace::MetaspaceTestArena* arena0 = (metaspace::MetaspaceTestArena*) arena; + MetaWord* p = arena0->allocate((size_t) word_size); + return (jlong)p2i(p); + WB_END + + WB_ENTRY(void, WB_DeallocateToMetaspaceTestArena(JNIEnv* env, jobject wb, jlong arena, jlong p, jlong word_size)) + metaspace::MetaspaceTestArena* arena0 = (metaspace::MetaspaceTestArena*) arena; + arena0->deallocate((MetaWord*)p, (size_t) word_size); + WB_END + + WB_ENTRY(jlong, WB_GetMaxMetaspaceAllocationSize(JNIEnv* env, jobject wb)) + return (jlong) Metaspace::max_allocation_word_size() * BytesPerWord; + WB_END + + ////////////// + WB_ENTRY(jlong, WB_AllocateMetaspace(JNIEnv* env, jobject wb, jobject class_loader, jlong size)) if (size < 0) { THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(), err_msg("WB_AllocateMetaspace: size is negative: " JLONG_FORMAT, size)); }
*** 1704,1722 **** void* metadata = MetadataFactory::new_array<u1>(cld, WhiteBox::array_bytes_to_length((size_t)size), thread); return (jlong)(uintptr_t)metadata; WB_END - WB_ENTRY(void, WB_FreeMetaspace(JNIEnv* env, jobject wb, jobject class_loader, jlong addr, jlong size)) - oop class_loader_oop = JNIHandles::resolve(class_loader); - ClassLoaderData* cld = class_loader_oop != NULL - ? java_lang_ClassLoader::loader_data_acquire(class_loader_oop) - : ClassLoaderData::the_null_class_loader_data(); - - MetadataFactory::free_array(cld, (Array<u1>*)(uintptr_t)addr); - WB_END - WB_ENTRY(void, WB_DefineModule(JNIEnv* env, jobject o, jobject module, jboolean is_open, jstring version, jstring location, jobjectArray packages)) Modules::define_module(module, is_open, version, location, packages, CHECK); WB_END --- 1765,1774 ----
*** 2433,2444 **** {CC"fullGC", CC"()V", (void*)&WB_FullGC }, {CC"youngGC", CC"()V", (void*)&WB_YoungGC }, {CC"readReservedMemory", CC"()V", (void*)&WB_ReadReservedMemory }, {CC"allocateMetaspace", CC"(Ljava/lang/ClassLoader;J)J", (void*)&WB_AllocateMetaspace }, - {CC"freeMetaspace", - CC"(Ljava/lang/ClassLoader;JJ)V", (void*)&WB_FreeMetaspace }, {CC"incMetaspaceCapacityUntilGC", CC"(J)J", (void*)&WB_IncMetaspaceCapacityUntilGC }, {CC"metaspaceCapacityUntilGC", CC"()J", (void*)&WB_MetaspaceCapacityUntilGC }, {CC"metaspaceReserveAlignment", CC"()J", (void*)&WB_MetaspaceReserveAlignment }, {CC"getCPUFeatures", CC"()Ljava/lang/String;", (void*)&WB_GetCPUFeatures }, {CC"getNMethod0", CC"(Ljava/lang/reflect/Executable;Z)[Ljava/lang/Object;", --- 2485,2494 ----
*** 2531,2540 **** --- 2581,2603 ---- {CC"disableElfSectionCache", CC"()V", (void*)&WB_DisableElfSectionCache }, {CC"resolvedMethodItemsCount", CC"()J", (void*)&WB_ResolvedMethodItemsCount }, {CC"protectionDomainRemovedCount", CC"()I", (void*)&WB_ProtectionDomainRemovedCount }, {CC"aotLibrariesCount", CC"()I", (void*)&WB_AotLibrariesCount }, {CC"getKlassMetadataSize", CC"(Ljava/lang/Class;)I",(void*)&WB_GetKlassMetadataSize}, + + {CC"createMetaspaceTestContext", CC"(JJ)J", (void*)&WB_CreateMetaspaceTestContext}, + {CC"destroyMetaspaceTestContext", CC"(J)V", (void*)&WB_DestroyMetaspaceTestContext}, + {CC"purgeMetaspaceTestContext", CC"(J)V", (void*)&WB_PurgeMetaspaceTestContext}, + {CC"printMetaspaceTestContext", CC"(J)V", (void*)&WB_PrintMetaspaceTestContext}, + {CC"getTotalCommittedWordsInMetaspaceTestContext", CC"(J)J",(void*)&WB_GetTotalCommittedWordsInMetaspaceTestContext}, + {CC"getTotalUsedWordsInMetaspaceTestContext", CC"(J)J", (void*)&WB_GetTotalUsedWordsInMetaspaceTestContext}, + {CC"createArenaInTestContext", CC"(JZ)J", (void*)&WB_CreateArenaInTestContext}, + {CC"destroyMetaspaceTestArena", CC"(J)V", (void*)&WB_DestroyMetaspaceTestArena}, + {CC"allocateFromMetaspaceTestArena", CC"(JJ)J", (void*)&WB_AllocateFromMetaspaceTestArena}, + {CC"deallocateToMetaspaceTestArena", CC"(JJJ)V", (void*)&WB_DeallocateToMetaspaceTestArena}, + {CC"maxMetaspaceAllocationSize", CC"()J", (void*)&WB_GetMaxMetaspaceAllocationSize}, + }; #undef CC
< prev index next >