diff --git a/src/hotspot/share/compiler/compilationPolicy.cpp b/src/hotspot/share/compiler/compilationPolicy.cpp index e28c4511d52..7f2a67f641b 100644 --- a/src/hotspot/share/compiler/compilationPolicy.cpp +++ b/src/hotspot/share/compiler/compilationPolicy.cpp @@ -633,6 +633,11 @@ CompileTask* CompilationPolicy::select_task(CompileQueue* compile_queue) { task = next_task; continue; } + if (task->compile_reason() == CompileTask::Reason_Whitebox) { + // Whitebox (CTW) tasks do not participate in rate selection and/or any level + // adjustments. Just return them in order. + return task; + } Method* method = task->method(); methodHandle mh(Thread::current(), method); if (task->can_become_stale() && is_stale(t, TieredCompileTaskTimeout, mh) && !is_old(mh)) { diff --git a/src/hotspot/share/compiler/compileTask.hpp b/src/hotspot/share/compiler/compileTask.hpp index 14591a3abdf..04ad7e35a13 100644 --- a/src/hotspot/share/compiler/compileTask.hpp +++ b/src/hotspot/share/compiler/compileTask.hpp @@ -199,6 +199,8 @@ class CompileTask : public CHeapObj { int comp_level() { return _comp_level;} void set_comp_level(int comp_level) { _comp_level = comp_level;} + CompileReason compile_reason() { return _compile_reason; } + AbstractCompiler* compiler() const; CompileTask* select_for_compilation();