The JVM tries to increase the priority of C2 and GC threads by using preemption control. However it is doing so completely incorrectly - preemption control is only to used momentarily, e.g. whilst holding a 'hot lock'. The JVM is enabling it permanently at thread startup which can cause performance issues. The code in question should just be removed.
Relevant files:
Calls to schedctl_start:
hotspot/src/os/solaris/vm/os_solaris.cpp (call to schedctl_start)
Calls to os::hint_no_preempt:
hotspot/src/share/vm/compiler/compileBroker.cpp
hotspot/src/share/vm/runtime/safepoint.cpp
hotspot/src/share/vm/runtime/vmThread.cpp
hotspot/src/os/aix/vm/os_aix.cpp
hotspot/src/os/windows/vm/os_windows.cpp
hotspot/src/os/bsd/vm/os_bsd.cpp
hotspot/src/os/linux/vm/os_linux.cpp
hotspot/src/os/solaris/vm/os_solaris.cpp