1 /*
   2  * Copyright (c) 2018, 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 #ifndef SHARE_GC_Z_Z_GLOBALS_HPP
  25 #define SHARE_GC_Z_Z_GLOBALS_HPP
  26 
  27 #define GC_Z_FLAGS(develop,                                                 \
  28                    develop_pd,                                              \
  29                    product,                                                 \
  30                    product_pd,                                              \
  31                    diagnostic,                                              \
  32                    diagnostic_pd,                                           \
  33                    experimental,                                            \
  34                    notproduct,                                              \
  35                    manageable,                                              \
  36                    product_rw,                                              \
  37                    lp64_product,                                            \
  38                    range,                                                   \
  39                    constraint)                                              \
  40                                                                             \
  41   experimental(double, ZAllocationSpikeTolerance, 2.0,                      \
  42           "Allocation spike tolerance factor")                              \
  43                                                                             \
  44   experimental(double, ZFragmentationLimit, 25.0,                           \
  45           "Maximum allowed heap fragmentation")                             \
  46                                                                             \
  47   experimental(size_t, ZMarkStackSpaceLimit, 8*G,                           \
  48           "Maximum number of bytes allocated for mark stacks")              \
  49           range(32*M, 1024*G)                                               \
  50                                                                             \
  51   experimental(uint, ZCollectionInterval, 0,                                \
  52           "Force GC at a fixed time interval (in seconds)")                 \
  53                                                                             \
  54   experimental(bool, ZProactive, true,                                      \
  55           "Enable proactive GC cycles")                                     \
  56                                                                             \
  57   experimental(bool, ZUncommit, true,                                       \
  58           "Uncommit unused memory")                                         \
  59                                                                             \
  60   experimental(uintx, ZUncommitDelay, 5 * 60,                               \
  61           "Uncommit memory if it has been unused for the specified "        \
  62           "amount of time (in seconds)")                                    \
  63                                                                             \
  64   diagnostic(uint, ZStatisticsInterval, 10,                                 \
  65           "Time between statistics print outs (in seconds)")                \
  66           range(1, (uint)-1)                                                \
  67                                                                             \
  68   diagnostic(bool, ZVerifyViews, false,                                     \
  69           "Verify heap view accesses")                                      \
  70                                                                             \
  71   diagnostic(bool, ZVerifyRoots, trueInDebug,                               \
  72           "Verify roots")                                                   \
  73                                                                             \
  74   diagnostic(bool, ZVerifyObjects, false,                                   \
  75           "Verify objects")                                                 \
  76                                                                             \
  77   diagnostic(bool, ZVerifyMarking, trueInDebug,                             \
  78           "Verify marking stacks")                                          \
  79                                                                             \
  80   diagnostic(bool, ZVerifyForwarding, false,                                \
  81           "Verify forwarding tables")
  82 
  83 #endif // SHARE_GC_Z_Z_GLOBALS_HPP