1 /*
   2  * Copyright (c) 2017, 2018, Red Hat, Inc. 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 #ifndef SHARE_VM_GC_EPSILON_GLOBALS_HPP
  26 #define SHARE_VM_GC_EPSILON_GLOBALS_HPP
  27 
  28 #include "runtime/globals.hpp"
  29 //
  30 // Defines all globals flags used by the Epsilon GC.
  31 //
  32 
  33 #define GC_EPSILON_FLAGS(develop,                                           \
  34                     develop_pd,                                             \
  35                     product,                                                \
  36                     product_pd,                                             \
  37                     diagnostic,                                             \
  38                     diagnostic_pd,                                          \
  39                     experimental,                                           \
  40                     notproduct,                                             \
  41                     manageable,                                             \
  42                     product_rw,                                             \
  43                     lp64_product,                                           \
  44                     range,                                                  \
  45                     constraint,                                             \
  46                     writeable)                                              \
  47                                                                             \
  48   experimental(size_t, EpsilonPrintHeapStep, 100,                           \
  49           "Print heap occupancy stats with this number of steps. "          \
  50           "0 turns the printing off.")                                      \
  51           range(0, max_intx)                                                \
  52                                                                             \
  53   experimental(size_t, EpsilonUpdateCountersStep, 1 * M,                    \
  54           "Update heap heap occupancy counters after allocating this much " \
  55           "memory. Higher values would make allocations faster at "         \
  56           "the expense of lower resolution in heap counters.")              \
  57           range(1, max_intx)                                                \
  58                                                                             \
  59   experimental(size_t, EpsilonMaxTLABSize, 4 * M,                           \
  60           "Max TLAB size to use with Epsilon GC. Larger value improves "    \
  61           "performance at the expense of per-thread memory waste. This "    \
  62           "asks TLAB machinery to cap TLAB sizes at this value.")           \
  63           range(1, max_intx)                                                \
  64                                                                             \
  65   experimental(size_t, EpsilonMinHeapExpand, 128 * M,                       \
  66           "Min expansion step for heap. Larger value improves performance " \
  67           "at the potential expense of memory waste.")                      \
  68           range(1, max_intx)
  69 
  70 #endif // SHARE_VM_GC_EPSILON_GLOBALS_HPP