1/*
2 * Copyright (c) 2005, 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
25#ifndef OS_LINUX_GLOBALS_LINUX_HPP
26#define OS_LINUX_GLOBALS_LINUX_HPP
27
28//
29// Defines Linux specific flags. They are not available on other platforms.
30//
31#define RUNTIME_OS_FLAGS(develop, \
32 develop_pd, \
33 product, \
34 product_pd, \
35 diagnostic, \
36 diagnostic_pd, \
37 notproduct, \
38 range, \
39 constraint, \
40 writeable) \
41 \
42 product(bool, UseOprofile, false, \
43 "enable support for Oprofile profiler") \
44 \
45 /* NB: The default value of UseLinuxPosixThreadCPUClocks may be */ \
46 /* overridden in Arguments::parse_each_vm_init_arg. */ \
47 product(bool, UseLinuxPosixThreadCPUClocks, true, \
48 "enable fast Linux Posix clocks where available") \
49 \
50 product(bool, UseHugeTLBFS, false, \
51 "Use MAP_HUGETLB for large pages") \
52 \
53 product(bool, UseTransparentHugePages, false, \
54 "Use MADV_HUGEPAGE for large pages") \
55 \
56 product(bool, LoadExecStackDllInVMThread, true, \
57 "Load DLLs with executable-stack attribute in the VM Thread") \
58 \
59 product(bool, UseSHM, false, \
60 "Use SYSV shared memory for large pages") \
61 \
62 product(bool, UseContainerSupport, true, \
63 "Enable detection and runtime container configuration support") \
64 \
65 product(bool, PreferContainerQuotaForCPUCount, true, \
66 "Calculate the container CPU availability based on the value" \
67 " of quotas (if set), when true. Otherwise, use the CPU" \
68 " shares value, provided it is less than quota.") \
69 \
70 diagnostic(bool, DumpPrivateMappingsInCore, true, \
71 "If true, sets bit 2 of /proc/PID/coredump_filter, thus " \
72 "resulting in file-backed private mappings of the process to "\
73 "be dumped into the corefile.") \
74 \
75 diagnostic(bool, DumpSharedMappingsInCore, true, \
76 "If true, sets bit 3 of /proc/PID/coredump_filter, thus " \
77 "resulting in file-backed shared mappings of the process to " \
78 "be dumped into the corefile.") \
79 \
80 diagnostic(bool, UseCpuAllocPath, false, \
81 "Use CPU_ALLOC code path in os::active_processor_count ")
82
83//
84// Defines Linux-specific default values. The flags are available on all
85// platforms, but they may have different default values on other platforms.
86//
87define_pd_global(bool, UseLargePages, false);
88define_pd_global(bool, UseLargePagesIndividualAllocation, false);
89define_pd_global(bool, UseOSErrorReporting, false);
90define_pd_global(bool, UseThreadPriorities, true) ;
91
92#endif // OS_LINUX_GLOBALS_LINUX_HPP
93