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