src/share/vm/compiler/compileBroker.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
hotspot-rt-fx60 Cdiff src/share/vm/compiler/compileBroker.cpp
src/share/vm/compiler/compileBroker.cpp
Print this page
*** 853,886 ****
java_lang_Thread::set_thread(thread_oop(), compiler_thread);
// Note that this only sets the JavaThread _priority field, which by
// definition is limited to Java priorities and not OS priorities.
// The os-priority is set in the CompilerThread startup code itself
java_lang_Thread::set_priority(thread_oop(), NearMaxPriority);
- // CLEANUP PRIORITIES: This -if- statement hids a bug whereby the compiler
- // threads never have their OS priority set. The assumption here is to
- // enable the Performance group to do flag tuning, figure out a suitable
- // CompilerThreadPriority, and then remove this 'if' statement (and
- // comment) and unconditionally set the priority.
! // Compiler Threads should be at the highest Priority
! if ( CompilerThreadPriority != -1 )
! os::set_native_priority( compiler_thread, CompilerThreadPriority );
! else
! os::set_native_priority( compiler_thread, os::java_to_os_priority[NearMaxPriority]);
!
! // Note that I cannot call os::set_priority because it expects Java
! // priorities and I am *explicitly* using OS priorities so that it's
// possible to set the compiler thread priority higher than any Java
// thread.
java_lang_Thread::set_daemon(thread_oop());
compiler_thread->set_threadObj(thread_oop());
Threads::add(compiler_thread);
Thread::start(compiler_thread);
}
// Let go of Threads_lock before yielding
os::yield(); // make sure that the compiler thread is started early (especially helpful on SOLARIS)
return compiler_thread;
}
--- 853,887 ----
java_lang_Thread::set_thread(thread_oop(), compiler_thread);
// Note that this only sets the JavaThread _priority field, which by
// definition is limited to Java priorities and not OS priorities.
// The os-priority is set in the CompilerThread startup code itself
+
java_lang_Thread::set_priority(thread_oop(), NearMaxPriority);
! // Note that we cannot call os::set_priority because it expects Java
! // priorities and we are *explicitly* using OS priorities so that it's
// possible to set the compiler thread priority higher than any Java
// thread.
+ int native_prio = CompilerThreadPriority;
+ if (native_prio == -1) {
+ if (UseCriticalCompilerThreadPriority) {
+ native_prio = os::java_to_os_priority[CriticalPriority];
+ } else {
+ native_prio = os::java_to_os_priority[NearMaxPriority];
+ }
+ }
+ os::set_native_priority(compiler_thread, native_prio);
+
java_lang_Thread::set_daemon(thread_oop());
compiler_thread->set_threadObj(thread_oop());
Threads::add(compiler_thread);
Thread::start(compiler_thread);
}
+
// Let go of Threads_lock before yielding
os::yield(); // make sure that the compiler thread is started early (especially helpful on SOLARIS)
return compiler_thread;
}
src/share/vm/compiler/compileBroker.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File