os::processor_count() is set to the number of logical processors configured on a system (exact definition varies by platform). With the use of CPU sets, resource pools, and other affinity based mechanisms this can be a much larger value than the number of CPUs available for the VM to use.
The number of CPUs currently available for the VM to use should be reported through os::active_processor_count(). Though its use in this role has evolved over time - on *NIX platforms there has tyically been no difference between the active_processor_count and processor_count.
Windows and Solaris both account (to varying degrees) for a reduced number of processors being available to the VM, as reported by the active_processor_count, due to explicit scheduling affinity changes to the process, or the use of cpu/processor sets.
With the fix for 6515172 Linux will also account for the use of CPU sets in the value reported from active_processor_count.
Given the difference between the "configured" and "active" processor counts we need to ensure that different subsystems in the VM are using the right API in making any decisions based on "number of processors". Hence this task.
I will create sub-tasks for each area where processor_count() is being used (other than use in os::active_processor_count()) so that we can verify that use is correct, or else change it.
runtime will own this umbrella task but I will assign subtasks based on the actual area of affected code.