1 /*
   2  * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
   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  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "gc/shared/jvmFlagConstraintsGC.hpp"
  27 #include "runtime/globals_shared.hpp"
  28 
  29 // -- Define all JVM flags that have been declared in share/gc/g1/g1_globals.hpp
  30 
  31 #include "g1_globals.hpp"
  32 #include "runtime/flags/jvmFlag.inline.hpp"
  33 DEFN_PRODUCT_FLAG(G1UseAdaptiveIHOP);
  34 DEFN_PRODUCT_FLAG(G1AdaptiveIHOPNumInitialSamples); DEFN_PRODUCT_RANGE(G1AdaptiveIHOPNumInitialSamples);
  35 DEFN_PRODUCT_FLAG(G1ConfidencePercent); DEFN_PRODUCT_RANGE(G1ConfidencePercent);
  36 DEFN_PRODUCT_FLAG(G1SummarizeRSetStatsPeriod); DEFN_PRODUCT_RANGE(G1SummarizeRSetStatsPeriod);
  37 DEFN_PRODUCT_FLAG(G1ConcMarkStepDurationMillis); DEFN_PRODUCT_RANGE(G1ConcMarkStepDurationMillis);
  38 DEFN_PRODUCT_FLAG(G1RefProcDrainInterval); DEFN_PRODUCT_RANGE(G1RefProcDrainInterval);
  39 DEFN_PRODUCT_FLAG(G1UseReferencePrecleaning);
  40 DEFN_PRODUCT_FLAG(G1LastPLABAverageOccupancy); DEFN_PRODUCT_RANGE(G1LastPLABAverageOccupancy);
  41 DEFN_PRODUCT_FLAG(G1SATBBufferSize); DEFN_PRODUCT_RANGE(G1SATBBufferSize);
  42 DEFN_DEVELOP_FLAG(G1SATBProcessCompletedThreshold); DEFN_DEVELOP_RANGE(G1SATBProcessCompletedThreshold);
  43 DEFN_PRODUCT_FLAG(G1SATBBufferEnqueueingThresholdPercent); DEFN_PRODUCT_RANGE(G1SATBBufferEnqueueingThresholdPercent);
  44 DEFN_PRODUCT_FLAG(G1ExpandByPercentOfAvailable); DEFN_PRODUCT_RANGE(G1ExpandByPercentOfAvailable);
  45 DEFN_PRODUCT_FLAG(G1UpdateBufferSize); DEFN_PRODUCT_RANGE(G1UpdateBufferSize);
  46 DEFN_PRODUCT_FLAG(G1ConcRefinementYellowZone); DEFN_PRODUCT_RANGE(G1ConcRefinementYellowZone);
  47 DEFN_PRODUCT_FLAG(G1ConcRefinementRedZone); DEFN_PRODUCT_RANGE(G1ConcRefinementRedZone);
  48 DEFN_PRODUCT_FLAG(G1ConcRefinementGreenZone); DEFN_PRODUCT_RANGE(G1ConcRefinementGreenZone);
  49 DEFN_PRODUCT_FLAG(G1ConcRefinementServiceIntervalMillis); DEFN_PRODUCT_RANGE(G1ConcRefinementServiceIntervalMillis);
  50 DEFN_PRODUCT_FLAG(G1ConcRefinementThresholdStep); DEFN_PRODUCT_RANGE(G1ConcRefinementThresholdStep);
  51 DEFN_PRODUCT_FLAG(G1RSetUpdatingPauseTimePercent); DEFN_PRODUCT_RANGE(G1RSetUpdatingPauseTimePercent);
  52 DEFN_PRODUCT_FLAG(G1UseAdaptiveConcRefinement);
  53 DEFN_PRODUCT_FLAG(G1ConcRSLogCacheSize); DEFN_PRODUCT_RANGE(G1ConcRSLogCacheSize);
  54 DEFN_PRODUCT_FLAG(G1ConcRSHotCardLimit); DEFN_PRODUCT_RANGE(G1ConcRSHotCardLimit);
  55 DEFN_DEVELOP_FLAG(G1RSetRegionEntriesBase); DEFN_DEVELOP_RANGE(G1RSetRegionEntriesBase);
  56 DEFN_PRODUCT_FLAG(G1RSetRegionEntries); DEFN_PRODUCT_RANGE(G1RSetRegionEntries); DEFN_PRODUCT_CONSTRAINT(G1RSetRegionEntries);
  57 DEFN_DEVELOP_FLAG(G1RSetSparseRegionEntriesBase); DEFN_DEVELOP_RANGE(G1RSetSparseRegionEntriesBase);
  58 DEFN_PRODUCT_FLAG(G1RSetSparseRegionEntries); DEFN_PRODUCT_RANGE(G1RSetSparseRegionEntries); DEFN_PRODUCT_CONSTRAINT(G1RSetSparseRegionEntries);
  59 DEFN_DEVELOP_FLAG(G1MaxVerifyFailures); DEFN_DEVELOP_RANGE(G1MaxVerifyFailures);
  60 DEFN_PRODUCT_FLAG(G1ReservePercent); DEFN_PRODUCT_RANGE(G1ReservePercent);
  61 DEFN_PRODUCT_FLAG(G1HeapRegionSize); DEFN_PRODUCT_RANGE(G1HeapRegionSize); DEFN_PRODUCT_CONSTRAINT(G1HeapRegionSize);
  62 DEFN_PRODUCT_FLAG(G1ConcRefinementThreads); DEFN_PRODUCT_RANGE(G1ConcRefinementThreads);
  63 DEFN_DEVELOP_FLAG(G1VerifyCTCleanup);
  64 DEFN_DEVELOP_FLAG(G1DummyRegionsPerGC);
  65 DEFN_DEVELOP_FLAG(G1ExitOnExpansionFailure);
  66 DEFN_PRODUCT_FLAG(G1MaxNewSizePercent); DEFN_PRODUCT_RANGE(G1MaxNewSizePercent); DEFN_PRODUCT_CONSTRAINT(G1MaxNewSizePercent);
  67 DEFN_PRODUCT_FLAG(G1NewSizePercent); DEFN_PRODUCT_RANGE(G1NewSizePercent); DEFN_PRODUCT_CONSTRAINT(G1NewSizePercent);
  68 DEFN_PRODUCT_FLAG(G1MixedGCLiveThresholdPercent); DEFN_PRODUCT_RANGE(G1MixedGCLiveThresholdPercent);
  69 DEFN_PRODUCT_FLAG(G1HeapWastePercent); DEFN_PRODUCT_RANGE(G1HeapWastePercent);
  70 DEFN_PRODUCT_FLAG(G1MixedGCCountTarget); DEFN_PRODUCT_RANGE(G1MixedGCCountTarget);
  71 DEFN_PRODUCT_FLAG(G1EagerReclaimHumongousObjects);
  72 DEFN_PRODUCT_FLAG(G1EagerReclaimHumongousObjectsWithStaleRefs);
  73 DEFN_PRODUCT_FLAG(G1RebuildRemSetChunkSize); DEFN_PRODUCT_RANGE(G1RebuildRemSetChunkSize);
  74 DEFN_PRODUCT_FLAG(G1OldCSetRegionThresholdPercent); DEFN_PRODUCT_RANGE(G1OldCSetRegionThresholdPercent);
  75 DEFN_NOTPROD_FLAG(G1EvacuationFailureALot);
  76 DEFN_DEVELOP_FLAG(G1EvacuationFailureALotCount);
  77 DEFN_DEVELOP_FLAG(G1EvacuationFailureALotInterval);
  78 DEFN_DEVELOP_FLAG(G1EvacuationFailureALotDuringConcMark);
  79 DEFN_DEVELOP_FLAG(G1EvacuationFailureALotDuringInitialMark);
  80 DEFN_DEVELOP_FLAG(G1EvacuationFailureALotDuringYoungGC);
  81 DEFN_DEVELOP_FLAG(G1EvacuationFailureALotDuringMixedGC);
  82 DEFN_PRODUCT_FLAG(G1VerifyRSetsDuringFullGC);
  83 DEFN_PRODUCT_FLAG(G1VerifyHeapRegionCodeRoots);
  84 DEFN_DEVELOP_FLAG(G1VerifyBitmaps);
  85 DEFN_PRODUCT_FLAG(G1PeriodicGCInterval);
  86 DEFN_PRODUCT_FLAG(G1PeriodicGCInvokesConcurrent);
  87 DEFN_PRODUCT_FLAG(G1PeriodicGCSystemLoadThreshold); DEFN_PRODUCT_RANGE(G1PeriodicGCSystemLoadThreshold);
  88 DEFN_PRODUCT_FLAG(G1YoungExpansionBufferPercent); DEFN_PRODUCT_RANGE(G1YoungExpansionBufferPercent);