Mercurial > hg > truffle
diff src/share/vm/runtime/globals.hpp @ 6725:da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author | coleenp |
---|---|
date | Sat, 01 Sep 2012 13:25:18 -0400 |
parents | a5dd6e3ef9f3 |
children | 11fb740ce98f |
line wrap: on
line diff
--- a/src/share/vm/runtime/globals.hpp Fri Aug 31 16:39:35 2012 -0700 +++ b/src/share/vm/runtime/globals.hpp Sat Sep 01 13:25:18 2012 -0400 @@ -175,8 +175,7 @@ define_pd_global(intx, ReservedCodeCacheSize, 32*M); define_pd_global(intx, CodeCacheExpansionSize, 32*K); define_pd_global(intx, CodeCacheMinBlockLength, 1); -define_pd_global(uintx,PermSize, ScaleForWordSize(4*M)); -define_pd_global(uintx,MaxPermSize, ScaleForWordSize(64*M)); +define_pd_global(uintx,MetaspaceSize, ScaleForWordSize(4*M)); define_pd_global(bool, NeverActAsServerClassMachine, true); define_pd_global(uint64_t,MaxRAM, 1ULL*G); #define CI_COMPILER_COUNT 0 @@ -439,7 +438,11 @@ #define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, diagnostic, experimental, notproduct, manageable, product_rw, lp64_product) \ \ lp64_product(bool, UseCompressedOops, false, \ - "Use 32-bit object references in 64-bit VM. " \ + "Use 32-bit object references in 64-bit VM " \ + "lp64_product means flag is always constant in 32 bit VM") \ + \ + lp64_product(bool, UseCompressedKlassPointers, false, \ + "Use 32-bit klass pointers in 64-bit VM " \ "lp64_product means flag is always constant in 32 bit VM") \ \ notproduct(bool, CheckCompressedOops, true, \ @@ -1188,11 +1191,6 @@ "Decay time (in milliseconds) to re-enable bulk rebiasing of a " \ "type after previous bulk rebias") \ \ - develop(bool, JavaObjectsInPerm, false, \ - "controls whether Classes and interned Strings are allocated" \ - "in perm. This purely intended to allow debugging issues" \ - "in production.") \ - \ /* tracing */ \ \ notproduct(bool, TraceRuntimeCalls, false, \ @@ -1677,9 +1675,6 @@ product(uintx, CMSConcMarkMultiple, 32, \ "Size (in cards) of CMS concurrent MT marking task") \ \ - product(uintx, CMSRevisitStackSize, 1*M, \ - "Size of CMS KlassKlass revisit stack") \ - \ product(bool, CMSAbortSemantics, false, \ "Whether abort-on-overflow semantics is implemented") \ \ @@ -1697,10 +1692,6 @@ product(bool, CMSConcurrentMTEnabled, true, \ "Whether multi-threaded concurrent work enabled (if ParNewGC)") \ \ - product(bool, CMSPermGenPrecleaningEnabled, true, \ - "Whether concurrent precleaning enabled in perm gen" \ - " (effective only when CMSPrecleaningEnabled is true)") \ - \ product(bool, CMSPrecleaningEnabled, true, \ "Whether concurrent precleaning enabled") \ \ @@ -1816,11 +1807,6 @@ "Percentage of MinHeapFreeRatio in CMS generation that is " \ "allocated before a CMS collection cycle commences") \ \ - product(intx, CMSTriggerPermRatio, 80, \ - "Percentage of MinHeapFreeRatio in the CMS perm generation that " \ - "is allocated before a CMS collection cycle commences, that " \ - "also collects the perm generation") \ - \ product(uintx, CMSBootstrapOccupancy, 50, \ "Percentage CMS generation occupancy at which to " \ "initiate CMS collection for bootstrapping collection stats") \ @@ -1836,11 +1822,6 @@ "not just one of the generations (e.g., G1). A value of 0 " \ "denotes 'do constant GC cycles'.") \ \ - product(intx, CMSInitiatingPermOccupancyFraction, -1, \ - "Percentage CMS perm generation occupancy to start a " \ - "CMScollection cycle. A negative value means that " \ - "CMSTriggerPermRatio is used") \ - \ product(bool, UseCMSInitiatingOccupancyOnly, false, \ "Only use occupancy as a crierion for starting a CMS collection") \ \ @@ -1900,6 +1881,29 @@ "Number of ObjArray elements to push onto the marking stack" \ "before pushing a continuation entry") \ \ + develop(bool, MetadataAllocationFailALot, false, \ + "Fail metadata allocations at intervals controlled by " \ + "MetadataAllocationFailALotInterval") \ + \ + develop(uintx, MetadataAllocationFailALotInterval, 1000, \ + "metadata allocation failure alot interval") \ + \ + develop(bool, MetaDataDeallocateALot, false, \ + "Deallocation bunches of metadata at intervals controlled by " \ + "MetaDataAllocateALotInterval") \ + \ + develop(uintx, MetaDataDeallocateALotInterval, 100, \ + "Metadata deallocation alot interval") \ + \ + develop(bool, TraceMetadataChunkAllocation, false, \ + "Trace humongous metadata allocations") \ + \ + product(bool, TraceMetadataHumongousAllocation, false, \ + "Trace humongous metadata allocations") \ + \ + develop(bool, TraceMetavirtualspaceAllocation, false, \ + "Trace humongous metadata allocations") \ + \ notproduct(bool, ExecuteInternalVMTests, false, \ "Enable execution of internal VM tests.") \ \ @@ -1920,9 +1924,6 @@ product(bool, TLABStats, true, \ "Print various TLAB related information") \ \ - product(bool, PrintRevisitStats, false, \ - "Print revisit (klass and MDO) stack related information") \ - \ EMBEDDED_ONLY(product(bool, LowMemoryProtection, true, \ "Enable LowMemoryProtection")) \ \ @@ -2023,12 +2024,6 @@ product(uintx, SurvivorPadding, 3, \ "How much buffer to keep for survivor overflow") \ \ - product(uintx, AdaptivePermSizeWeight, 20, \ - "Weight for perm gen exponential resizing, between 0 and 100") \ - \ - product(uintx, PermGenPadding, 3, \ - "How much buffer to keep for perm gen sizing") \ - \ product(uintx, ThresholdTolerance, 10, \ "Allowed collection cost difference between generations") \ \ @@ -2216,6 +2211,12 @@ product_rw(bool, TraceLoaderConstraints, false, \ "Trace loader constraints") \ \ + develop(bool, TraceClassLoaderData, false, \ + "Trace class loader loader_data lifetime") \ + \ + product(uintx, InitialBootClassLoaderMetaspaceSize, 3*M, \ + "Initial size of the boot class loader data metaspace") \ + \ product(bool, TraceGen0Time, false, \ "Trace accumulated time for Gen 0 collection") \ \ @@ -2986,11 +2987,15 @@ "Additional size added to desired new generation size per " \ "non-daemon thread (in bytes)") \ \ - product_pd(uintx, PermSize, \ - "Initial size of permanent generation (in bytes)") \ - \ - product_pd(uintx, MaxPermSize, \ - "Maximum size of permanent generation (in bytes)") \ + product_pd(uintx, MetaspaceSize, \ + "Initial size of Metaspaces (in bytes)") \ + \ + product(uintx, MaxMetaspaceSize, max_uintx, \ + "Maximum size of Metaspaces (in bytes)") \ + \ + product(uintx, ClassMetaspaceSize, NOT_LP64(1*M) LP64_ONLY(512*M), \ + "Maximum size of InstanceKlass area in Metaspace used for " \ + "UseCompressedKlassPointers") \ \ product(uintx, MinHeapFreeRatio, 40, \ "Min percentage of heap free after GC to avoid expansion") \ @@ -3004,10 +3009,10 @@ product(uintx, MinHeapDeltaBytes, ScaleForWordSize(128*K), \ "Min change in heap space due to GC (in bytes)") \ \ - product(uintx, MinPermHeapExpansion, ScaleForWordSize(256*K), \ + product(uintx, MinMetaspaceExpansion, ScaleForWordSize(256*K), \ "Min expansion of permanent heap (in bytes)") \ \ - product(uintx, MaxPermHeapExpansion, ScaleForWordSize(4*M), \ + product(uintx, MaxMetaspaceExpansion, ScaleForWordSize(4*M), \ "Max expansion of permanent heap without full GC (in bytes)") \ \ product(intx, QueuedAllocationWarningCount, 0, \ @@ -3038,10 +3043,6 @@ "either completely full or completely empty. Par compact also" \ "has a smaller default value; see arguments.cpp.") \ \ - product(uintx, PermMarkSweepDeadRatio, 20, \ - "Percentage (0-100) of the perm gen allowed as dead wood." \ - "See MarkSweepDeadRatio for collector-specific comments.") \ - \ product(intx, MarkSweepAlwaysCompactCount, 4, \ "How often should we fully compact the heap (ignoring the dead " \ "space parameters)") \ @@ -3523,29 +3524,20 @@ product(bool, PrintSharedSpaces, false, \ "Print usage of shared spaces") \ \ - product(uintx, SharedDummyBlockSize, 512*M, \ - "Size of dummy block used to shift heap addresses (in bytes)") \ - \ - product(uintx, SharedReadWriteSize, NOT_LP64(12*M) LP64_ONLY(13*M), \ + product(uintx, SharedReadWriteSize, NOT_LP64(12*M) LP64_ONLY(16*M), \ "Size of read-write space in permanent generation (in bytes)") \ \ - product(uintx, SharedReadOnlySize, 10*M, \ + product(uintx, SharedReadOnlySize, NOT_LP64(12*M) LP64_ONLY(16*M), \ "Size of read-only space in permanent generation (in bytes)") \ \ - product(uintx, SharedMiscDataSize, NOT_LP64(4*M) LP64_ONLY(5*M) NOT_PRODUCT(+1*M), \ + product(uintx, SharedMiscDataSize, NOT_LP64(2*M) LP64_ONLY(4*M), \ "Size of the shared data area adjacent to the heap (in bytes)") \ \ - product(uintx, SharedMiscCodeSize, 4*M, \ + product(uintx, SharedMiscCodeSize, 120*K, \ "Size of the shared code area adjacent to the heap (in bytes)") \ \ - diagnostic(bool, SharedOptimizeColdStart, true, \ - "At dump time, order shared objects to achieve better " \ - "cold startup time.") \ - \ - develop(intx, SharedOptimizeColdStartPolicy, 2, \ - "Reordering policy for SharedOptimizeColdStart " \ - "0=favor classload-time locality, 1=balanced, " \ - "2=favor runtime locality") \ + product(uintx, SharedDummyBlockSize, 0, \ + "Size of dummy block used to shift heap addresses (in bytes)") \ \ diagnostic(bool, SharedSkipVerify, false, \ "Skip assert() and verify() which page-in unwanted shared " \