11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * version 2 for more details (a copy is included in the LICENSE file that
14 * accompanied this code).
15 *
16 * You should have received a copy of the GNU General Public License version
17 * 2 along with this work; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 * or visit www.oracle.com if you need additional information or have any
22 * questions.
23 *
24 */
25
26 #include "precompiled.hpp"
27 #include "gc/shared/gcArguments.hpp"
28 #include "runtime/arguments.hpp"
29 #include "runtime/globals.hpp"
30 #include "runtime/globals_extension.hpp"
31 #include "utilities/macros.hpp"
32
33 void GCArguments::initialize() {
34 if (FullGCALot && FLAG_IS_DEFAULT(MarkSweepAlwaysCompactCount)) {
35 MarkSweepAlwaysCompactCount = 1; // Move objects every gc.
36 }
37
38 if (!(UseParallelGC || UseParallelOldGC) && FLAG_IS_DEFAULT(ScavengeBeforeFullGC)) {
39 FLAG_SET_DEFAULT(ScavengeBeforeFullGC, false);
40 }
41
42 if (GCTimeLimit == 100) {
43 // Turn off gc-overhead-limit-exceeded checks
44 FLAG_SET_DEFAULT(UseGCOverheadLimit, false);
45 }
46
47 if (MinHeapFreeRatio == 100) {
48 // Keeping the heap 100% free is hard ;-) so limit it to 99%.
49 FLAG_SET_ERGO(uintx, MinHeapFreeRatio, 99);
50 }
51
52 if (!ClassUnloading) {
53 // If class unloading is disabled, also disable concurrent class unloading.
54 FLAG_SET_CMDLINE(bool, ClassUnloadingWithConcurrentMark, false);
55 }
56 }
|
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * version 2 for more details (a copy is included in the LICENSE file that
14 * accompanied this code).
15 *
16 * You should have received a copy of the GNU General Public License version
17 * 2 along with this work; if not, write to the Free Software Foundation,
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21 * or visit www.oracle.com if you need additional information or have any
22 * questions.
23 *
24 */
25
26 #include "precompiled.hpp"
27 #include "gc/shared/gcArguments.hpp"
28 #include "runtime/arguments.hpp"
29 #include "runtime/globals.hpp"
30 #include "runtime/globals_extension.hpp"
31 #include "utilities/defaultStream.hpp"
32 #include "utilities/macros.hpp"
33
34 void GCArguments::initialize() {
35 if (FullGCALot && FLAG_IS_DEFAULT(MarkSweepAlwaysCompactCount)) {
36 MarkSweepAlwaysCompactCount = 1; // Move objects every gc.
37 }
38
39 if (!(UseParallelGC || UseParallelOldGC) && FLAG_IS_DEFAULT(ScavengeBeforeFullGC)) {
40 FLAG_SET_DEFAULT(ScavengeBeforeFullGC, false);
41 }
42
43 if (GCTimeLimit == 100) {
44 // Turn off gc-overhead-limit-exceeded checks
45 FLAG_SET_DEFAULT(UseGCOverheadLimit, false);
46 }
47
48 if (MinHeapFreeRatio == 100) {
49 // Keeping the heap 100% free is hard ;-) so limit it to 99%.
50 FLAG_SET_ERGO(uintx, MinHeapFreeRatio, 99);
51 }
52
53 if (!ClassUnloading) {
54 // If class unloading is disabled, also disable concurrent class unloading.
55 FLAG_SET_CMDLINE(bool, ClassUnloadingWithConcurrentMark, false);
56 }
57 }
58
59 bool GCArguments::check_args_consistency() {
60 bool status = true;
61 if (!FLAG_IS_DEFAULT(AllocateHeapAt) && !FLAG_IS_DEFAULT(AllocateOldGenAt)) {
62 jio_fprintf(defaultStream::error_stream(),
63 "AllocateHeapAt and AllocateOldGenAt cannot be used together.\n");
64 status = false;
65 }
66 if (!FLAG_IS_DEFAULT(AllocateOldGenAt) && (UseSerialGC || UseConcMarkSweepGC || UseEpsilonGC || UseZGC)) {
67 jio_fprintf(defaultStream::error_stream(),
68 "AllocateOldGenAt not supported for selected GC.\n");
69 status = false;
70 }
71 return status;
72 }
|