提交 d959eca7 编写于 作者: B brutisso

7198334: UseNUMA modifies system parameters on non-NUMA system

Summary: The flags MinHeapDeltaBytes and UseNUMAInterleaving must be adjusted after the OS have adjusted the UseNUMA flag in the method os::init_2.
Reviewed-by: dholmes, brutisso
Contributed-by: erik.helin@oracle.com
上级 5ecbc82b
...@@ -1485,14 +1485,6 @@ void Arguments::set_parallel_gc_flags() { ...@@ -1485,14 +1485,6 @@ void Arguments::set_parallel_gc_flags() {
} }
} }
} }
if (UseNUMA) {
if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) {
FLAG_SET_DEFAULT(MinHeapDeltaBytes, 64*M);
}
// For those collectors or operating systems (eg, Windows) that do
// not support full UseNUMA, we will map to UseNUMAInterleaving for now
UseNUMAInterleaving = true;
}
} }
void Arguments::set_g1_gc_flags() { void Arguments::set_g1_gc_flags() {
...@@ -3332,6 +3324,22 @@ jint Arguments::parse(const JavaVMInitArgs* args) { ...@@ -3332,6 +3324,22 @@ jint Arguments::parse(const JavaVMInitArgs* args) {
return JNI_OK; return JNI_OK;
} }
jint Arguments::adjust_after_os() {
#if INCLUDE_ALTERNATE_GCS
if (UseParallelGC || UseParallelOldGC) {
if (UseNUMA) {
if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) {
FLAG_SET_DEFAULT(MinHeapDeltaBytes, 64*M);
}
// For those collectors or operating systems (eg, Windows) that do
// not support full UseNUMA, we will map to UseNUMAInterleaving for now
UseNUMAInterleaving = true;
}
}
#endif
return JNI_OK;
}
int Arguments::PropertyList_count(SystemProperty* pl) { int Arguments::PropertyList_count(SystemProperty* pl) {
int count = 0; int count = 0;
while(pl != NULL) { while(pl != NULL) {
......
...@@ -409,6 +409,8 @@ class Arguments : AllStatic { ...@@ -409,6 +409,8 @@ class Arguments : AllStatic {
public: public:
// Parses the arguments // Parses the arguments
static jint parse(const JavaVMInitArgs* args); static jint parse(const JavaVMInitArgs* args);
// Adjusts the arguments after the OS have adjusted the arguments
static jint adjust_after_os();
// Check for consistency in the selection of the garbage collector. // Check for consistency in the selection of the garbage collector.
static bool check_gc_consistency(); static bool check_gc_consistency();
// Check consistecy or otherwise of VM argument settings // Check consistecy or otherwise of VM argument settings
......
...@@ -3334,6 +3334,9 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) { ...@@ -3334,6 +3334,9 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
jint os_init_2_result = os::init_2(); jint os_init_2_result = os::init_2();
if (os_init_2_result != JNI_OK) return os_init_2_result; if (os_init_2_result != JNI_OK) return os_init_2_result;
jint adjust_after_os_result = Arguments::adjust_after_os();
if (adjust_after_os_result != JNI_OK) return adjust_after_os_result;
// intialize TLS // intialize TLS
ThreadLocalStorage::init(); ThreadLocalStorage::init();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册