author | serb |
Sun, 24 Jun 2018 16:35:21 -0700 | |
changeset 50834 | 9cf279436b9d |
parent 49058 | 15765495db12 |
child 52960 | a6182c464b31 |
permissions | -rw-r--r-- |
1 | 1 |
/* |
49058
15765495db12
8197589: Update CPU count algorithm when both cpu shares and quotas are used
bobv
parents:
47903
diff
changeset
|
2 |
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. |
1 | 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 |
* |
|
5547
f4b087cbb361
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1623
diff
changeset
|
19 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
f4b087cbb361
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1623
diff
changeset
|
20 |
* or visit www.oracle.com if you need additional information or have any |
f4b087cbb361
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1623
diff
changeset
|
21 |
* questions. |
1 | 22 |
* |
23 |
*/ |
|
24 |
||
7397 | 25 |
#ifndef OS_LINUX_VM_GLOBALS_LINUX_HPP |
26 |
#define OS_LINUX_VM_GLOBALS_LINUX_HPP |
|
27 |
||
1 | 28 |
// |
29 |
// Defines Linux specific flags. They are not available on other platforms. |
|
30 |
// |
|
38273
2634194d7555
8073500: Prevent certain commercial flags from being changed at runtime
gziemski
parents:
35884
diff
changeset
|
31 |
#define RUNTIME_OS_FLAGS(develop, \ |
2634194d7555
8073500: Prevent certain commercial flags from being changed at runtime
gziemski
parents:
35884
diff
changeset
|
32 |
develop_pd, \ |
2634194d7555
8073500: Prevent certain commercial flags from being changed at runtime
gziemski
parents:
35884
diff
changeset
|
33 |
product, \ |
2634194d7555
8073500: Prevent certain commercial flags from being changed at runtime
gziemski
parents:
35884
diff
changeset
|
34 |
product_pd, \ |
2634194d7555
8073500: Prevent certain commercial flags from being changed at runtime
gziemski
parents:
35884
diff
changeset
|
35 |
diagnostic, \ |
39117 | 36 |
diagnostic_pd, \ |
38273
2634194d7555
8073500: Prevent certain commercial flags from being changed at runtime
gziemski
parents:
35884
diff
changeset
|
37 |
notproduct, \ |
2634194d7555
8073500: Prevent certain commercial flags from being changed at runtime
gziemski
parents:
35884
diff
changeset
|
38 |
range, \ |
2634194d7555
8073500: Prevent certain commercial flags from being changed at runtime
gziemski
parents:
35884
diff
changeset
|
39 |
constraint, \ |
2634194d7555
8073500: Prevent certain commercial flags from being changed at runtime
gziemski
parents:
35884
diff
changeset
|
40 |
writeable) \ |
31371
311143309e73
8122937: [JEP 245] Validate JVM Command-Line Flag Arguments.
gziemski
parents:
20400
diff
changeset
|
41 |
\ |
9335
7bdd2a3ab3d8
7034464: Support transparent large pages on Linux
iveresov
parents:
7397
diff
changeset
|
42 |
product(bool, UseOprofile, false, \ |
7bdd2a3ab3d8
7034464: Support transparent large pages on Linux
iveresov
parents:
7397
diff
changeset
|
43 |
"enable support for Oprofile profiler") \ |
7bdd2a3ab3d8
7034464: Support transparent large pages on Linux
iveresov
parents:
7397
diff
changeset
|
44 |
\ |
31371
311143309e73
8122937: [JEP 245] Validate JVM Command-Line Flag Arguments.
gziemski
parents:
20400
diff
changeset
|
45 |
/* NB: The default value of UseLinuxPosixThreadCPUClocks may be */ \ |
311143309e73
8122937: [JEP 245] Validate JVM Command-Line Flag Arguments.
gziemski
parents:
20400
diff
changeset
|
46 |
/* overridden in Arguments::parse_each_vm_init_arg. */ \ |
9335
7bdd2a3ab3d8
7034464: Support transparent large pages on Linux
iveresov
parents:
7397
diff
changeset
|
47 |
product(bool, UseLinuxPosixThreadCPUClocks, true, \ |
7bdd2a3ab3d8
7034464: Support transparent large pages on Linux
iveresov
parents:
7397
diff
changeset
|
48 |
"enable fast Linux Posix clocks where available") \ |
7bdd2a3ab3d8
7034464: Support transparent large pages on Linux
iveresov
parents:
7397
diff
changeset
|
49 |
\ |
7bdd2a3ab3d8
7034464: Support transparent large pages on Linux
iveresov
parents:
7397
diff
changeset
|
50 |
product(bool, UseHugeTLBFS, false, \ |
7bdd2a3ab3d8
7034464: Support transparent large pages on Linux
iveresov
parents:
7397
diff
changeset
|
51 |
"Use MAP_HUGETLB for large pages") \ |
7bdd2a3ab3d8
7034464: Support transparent large pages on Linux
iveresov
parents:
7397
diff
changeset
|
52 |
\ |
19546
f6b7c9e96ea3
8007074: SIGSEGV at ParMarkBitMap::verify_clear()
stefank
parents:
15926
diff
changeset
|
53 |
product(bool, UseTransparentHugePages, false, \ |
f6b7c9e96ea3
8007074: SIGSEGV at ParMarkBitMap::verify_clear()
stefank
parents:
15926
diff
changeset
|
54 |
"Use MADV_HUGEPAGE for large pages") \ |
f6b7c9e96ea3
8007074: SIGSEGV at ParMarkBitMap::verify_clear()
stefank
parents:
15926
diff
changeset
|
55 |
\ |
15926
8e87d545195f
7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
9419
diff
changeset
|
56 |
product(bool, LoadExecStackDllInVMThread, true, \ |
8e87d545195f
7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
9419
diff
changeset
|
57 |
"Load DLLs with executable-stack attribute in the VM Thread") \ |
8e87d545195f
7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
9419
diff
changeset
|
58 |
\ |
9335
7bdd2a3ab3d8
7034464: Support transparent large pages on Linux
iveresov
parents:
7397
diff
changeset
|
59 |
product(bool, UseSHM, false, \ |
35884
ec439aaca107
6515172: Runtime.availableProcessors() ignores Linux taskset command
dholmes
parents:
31371
diff
changeset
|
60 |
"Use SYSV shared memory for large pages") \ |
ec439aaca107
6515172: Runtime.availableProcessors() ignores Linux taskset command
dholmes
parents:
31371
diff
changeset
|
61 |
\ |
47903
7f22774a5f42
8146115: Improve docker container detection and resource configuration usage
bobv
parents:
47216
diff
changeset
|
62 |
product(bool, UseContainerSupport, true, \ |
7f22774a5f42
8146115: Improve docker container detection and resource configuration usage
bobv
parents:
47216
diff
changeset
|
63 |
"Enable detection and runtime container configuration support") \ |
7f22774a5f42
8146115: Improve docker container detection and resource configuration usage
bobv
parents:
47216
diff
changeset
|
64 |
\ |
49058
15765495db12
8197589: Update CPU count algorithm when both cpu shares and quotas are used
bobv
parents:
47903
diff
changeset
|
65 |
product(bool, PreferContainerQuotaForCPUCount, true, \ |
15765495db12
8197589: Update CPU count algorithm when both cpu shares and quotas are used
bobv
parents:
47903
diff
changeset
|
66 |
"Calculate the container CPU availability based on the value" \ |
15765495db12
8197589: Update CPU count algorithm when both cpu shares and quotas are used
bobv
parents:
47903
diff
changeset
|
67 |
" of quotas (if set), when true. Otherwise, use the CPU" \ |
15765495db12
8197589: Update CPU count algorithm when both cpu shares and quotas are used
bobv
parents:
47903
diff
changeset
|
68 |
" shares value, provided it is less than quota.") \ |
15765495db12
8197589: Update CPU count algorithm when both cpu shares and quotas are used
bobv
parents:
47903
diff
changeset
|
69 |
\ |
35884
ec439aaca107
6515172: Runtime.availableProcessors() ignores Linux taskset command
dholmes
parents:
31371
diff
changeset
|
70 |
diagnostic(bool, UseCpuAllocPath, false, \ |
ec439aaca107
6515172: Runtime.availableProcessors() ignores Linux taskset command
dholmes
parents:
31371
diff
changeset
|
71 |
"Use CPU_ALLOC code path in os::active_processor_count ") |
1 | 72 |
|
73 |
// |
|
74 |
// Defines Linux-specific default values. The flags are available on all |
|
75 |
// platforms, but they may have different default values on other platforms. |
|
76 |
// |
|
20400
1c658ebcb3c1
8024838: Significant slowdown due to transparent huge pages
stefank
parents:
19546
diff
changeset
|
77 |
define_pd_global(bool, UseLargePages, false); |
1421
a7ef1a3b2644
6660681: Incrementally reserve pages on win server 2003 for better large page affinity
jmasa
parents:
1
diff
changeset
|
78 |
define_pd_global(bool, UseLargePagesIndividualAllocation, false); |
1 | 79 |
define_pd_global(bool, UseOSErrorReporting, false); |
80 |
define_pd_global(bool, UseThreadPriorities, true) ; |
|
7397 | 81 |
|
82 |
#endif // OS_LINUX_VM_GLOBALS_LINUX_HPP |