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 // This file should not directly include any header files.
  26 // This file should not have an include guard.
  27 // See globals.hpp for details.
  28 
  29 #if INCLUDE_ZGC
  30 PRODUCT_FLAG(ccstr, ZPath, NULL, None, JVMFlag::EXPERIMENTAL,
  31              "Filesystem path for Java heap backing storage "
  32              "(must be a tmpfs or a hugetlbfs filesystem)");
  33 
  34 PRODUCT_FLAG(double, ZAllocationSpikeTolerance, 2.0, None, JVMFlag::EXPERIMENTAL,
  35              "Allocation spike tolerance factor");
  36 
  37 PRODUCT_FLAG(double, ZFragmentationLimit, 25.0, None, JVMFlag::EXPERIMENTAL,
  38              "Maximum allowed heap fragmentation");
  39 
  40 PRODUCT_FLAG(size_t, ZMarkStackSpaceLimit, 8*G, Range, JVMFlag::EXPERIMENTAL,
  41              "Maximum number of bytes allocated for mark stacks",
  42              /* range */ 32*M, 1024*G);
  43 
  44 PRODUCT_FLAG(uint, ZCollectionInterval, 0, None, JVMFlag::EXPERIMENTAL,
  45              "Force GC at a fixed time interval (in seconds)");
  46 
  47 PRODUCT_FLAG(bool, ZUncommit, true, None, JVMFlag::EXPERIMENTAL,
  48              "Uncommit unused memory");
  49 
  50 PRODUCT_FLAG(uintx, ZUncommitDelay, 5 * 60, None, JVMFlag::EXPERIMENTAL,
  51              "Uncommit memory if it has been unused for the specified "
  52              "amount of time (in seconds)");
  53 
  54 PRODUCT_FLAG(uint, ZStatisticsInterval, 10, Range, JVMFlag::DIAGNOSTIC,
  55              "Time between statistics print outs (in seconds)",
  56              /* range */ 1, (uint)-1);
  57 
  58 PRODUCT_FLAG(bool, ZProactive, true, None, JVMFlag::DIAGNOSTIC,
  59              "Enable proactive GC cycles");
  60 
  61 PRODUCT_FLAG(bool, ZVerifyViews, false, None, JVMFlag::DIAGNOSTIC,
  62              "Verify heap view accesses");
  63 
  64 PRODUCT_FLAG(bool, ZVerifyRoots, trueInDebug, None, JVMFlag::DIAGNOSTIC,
  65              "Verify roots");
  66 
  67 PRODUCT_FLAG(bool, ZVerifyObjects, false, None, JVMFlag::DIAGNOSTIC,
  68              "Verify objects");
  69 
  70 PRODUCT_FLAG(bool, ZVerifyMarking, trueInDebug, None, JVMFlag::DIAGNOSTIC,
  71              "Verify marking stacks");
  72 
  73 PRODUCT_FLAG(bool, ZVerifyForwarding, false, None, JVMFlag::DIAGNOSTIC,
  74              "Verify forwarding tables");
  75 #endif // INCLUDE_ZGC