JDK-8196807 : Deprecate VMThreadHintNoPreempt and CompilerThreadHintNoPreempt
  • Type: CSR
  • Component: hotspot
  • Sub-Component: runtime
  • Priority: P3
  • Status: Closed
  • Resolution: Approved
  • Fix Versions: 11
  • Submitted: 2018-02-05
  • Updated: 2018-02-07
  • Resolved: 2018-02-07
Related Reports
CSR :  
Description
Summary
-------

Deprecate Solaris-only options VMThreadHintNoPreempt and CompilerThreadHintNoPreempt.

Problem
-------

These are Solaris-only options that default to false and if turned on may have adverse affects on performance and are also untested.

Solution
--------

Deprecate and remove.

Specification
-------------

  product(bool, VMThreadHintNoPreempt, false,                               \
          "(Solaris only) Give VM thread an extra quanta")                  \

  product(bool, CompilerThreadHintNoPreempt, true,                          \
          "(Solaris only) Give compiler threads an extra quanta")           \
                                                                            \


Comments
Yes. thanks
07-02-2018

Moving to approved. I assume the deprecation will occur in 11 and the removal in a subsequent release.
07-02-2018

As CompilerThreadHintNoPreempt is enabled by default there is a higher risk involved here. As part of the deprecation it should also be changed to being off by default to see if there are any unexpected consequences.
06-02-2018

Remove the command line options.
06-02-2018

This flag has no affect except on Solaris and even there it does not achieve the desired goal - and the goal is no longer necessary: // A problem occurring on Solaris is when attempting to restart threads // the first #cpus - 1 go well, but then the VMThread is preempted when we get // to the next one (since it has been running the longest). We then have // to wait for a cpu to become available before we can continue restarting // threads. // FIXME: This causes the performance of the VM to degrade when active and with // large numbers of threads. Apparently this is due to the synchronous nature // of suspending threads. // // TODO-FIXME: the comments above are vestigial and no longer apply. // Furthermore, using solaris' schedctl in this particular context confers no benefit if (VMThreadHintNoPreempt) { os::hint_no_preempt(); } So deprecating and then removing this flag is not a concern.
05-02-2018