JDK-6988568 : RFE: Java SE to be resource pool aware
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
Solaris zones are growing more and more popular.
Using zones involves resource pools.
Customers expect Java SE to be resource pool aware, so
that Java SE processes on such Solaris configurations
are safe and supported.
This issue has been discussed elsewhere (though I can't locate it right now). As I recall the possibilities were to detect when running under a resource pool and to assume there is more than one CPU even if only one is currently configured; or else to have a flag -XX:+AssumeMP to force the VM to ignore the number of processors in deciding whether it is MP or not.
The use of process binding, processor sets, and resource pools on Solaris makes it extremely complicated to answer the basic question of "how many CPUs are available to the VM" or for the real-time VM "how many CPUs are available to the current thread".
Note we have a similar CR open to recognize Linux TaskSets - 6515172
Note that even JPRT is affected by this issue as availableProcessors() returns the host machine info not the allocation available from the zone/pool running a given client.
This really isn't fixed and should be re-examined for JDK 9 at least.
This may not be an issue for JDK 6 but I believe this RFE should remain open for 9.
Triage team: We consider that the fix provided by JDK-2178143 is sufficient to address this problem at the time.