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   diagnostic(uint, ZStatisticsInterval, 10,                                 \
  60           "Time between statistics print outs (in seconds)")                \
  61           range(1, (uint)-1)                                                \
  62                                                                             \
  63   diagnostic(bool, ZStatisticsForceTrace, false,                            \
  64           "Force tracing of ZStats")                                        \
  65                                                                             \
  66   diagnostic(bool, ZProactive, true,                                        \
  67           "Enable proactive GC cycles")                                     \
  68                                                                             \
  69   diagnostic(bool, ZVerifyViews, false,                                     \
  70           "Verify heap view accesses")                                      \
  71                                                                             \
  72   diagnostic(bool, ZVerifyMarking, false,                                   \
  73           "Verify marking stacks")                                          \
  74                                                                             \
  75   diagnostic(bool, ZVerifyForwarding, false,                                \
  76           "Verify forwarding tables")                                       \
  77                                                                             \
  78   diagnostic(bool, ZOptimizeLoadBarriers, true,                             \
  79           "Apply load barrier optimizations")                               \
  80                                                                             \
  81   develop(bool, ZVerifyLoadBarriers, false,                                 \
  82           "Verify that reference loads are followed by barriers")
  83 
  84 #endif // SHARE_GC_Z_Z_GLOBALS_HPP