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(ccstr, ZPath, NULL,                                          \
  42           "Filesystem path for Java heap backing storage "                  \
  43           "(must be a tmpfs or a hugetlbfs filesystem)")                    \
  44                                                                             \
  45   experimental(double, ZAllocationSpikeTolerance, 2.0,                      \
  46           "Allocation spike tolerance factor")                              \
  47                                                                             \
  48   experimental(double, ZFragmentationLimit, 25.0,                           \
  49           "Maximum allowed heap fragmentation")                             \
  50                                                                             \
  51   experimental(size_t, ZMarkStackSpaceLimit, 8*G,                           \
  52           "Maximum number of bytes allocated for mark stacks")              \
  53           range(32*M, 1024*G)                                               \
  54                                                                             \
  55   experimental(uint, ZCollectionInterval, 0,                                \
  56           "Force GC at a fixed time interval (in seconds)")                 \
  57                                                                             \
  58   experimental(bool, ZUncommit, true,                                       \
  59           "Uncommit unused memory")                                         \
  60                                                                             \
  61   experimental(uintx, ZUncommitDelay, 5 * 60,                               \
  62           "Uncommit memory if it has been unused for the specified "        \
  63           "amount of time (in seconds)")                                    \
  64                                                                             \
  65   diagnostic(uint, ZStatisticsInterval, 10,                                 \
  66           "Time between statistics print outs (in seconds)")                \
  67           range(1, (uint)-1)                                                \
  68                                                                             \
  69   diagnostic(bool, ZProactive, true,                                        \
  70           "Enable proactive GC cycles")                                     \
  71                                                                             \
  72   diagnostic(bool, ZVerifyViews, false,                                     \
  73           "Verify heap view accesses")                                      \
  74                                                                             \
  75   diagnostic(bool, ZVerifyRoots, trueInDebug,                               \
  76           "Verify roots")                                                   \
  77                                                                             \
  78   diagnostic(bool, ZVerifyObjects, false,                                   \
  79           "Verify objects")                                                 \
  80                                                                             \
  81   diagnostic(bool, ZVerifyMarking, trueInDebug,                             \
  82           "Verify marking stacks")                                          \
  83                                                                             \
  84   diagnostic(bool, ZVerifyForwarding, false,                                \
  85           "Verify forwarding tables")
  86 
  87 #endif // SHARE_GC_Z_Z_GLOBALS_HPP