RFR: JDK-8157141 & JDK-8166454: Solaris getisax(2) and meminfo(2) cleanup
Alan Burlison
Alan.Burlison at oracle.com
Tue Sep 27 13:47:16 UTC 2016
On 27/09/2016 00:54, David Holmes wrote:
> Thanks Alan. It is the creation of the intermediate log-stream that can
> not be accomplished at this stage of VM initialization so we will need
> to stick with what you had. Thanks for trying.
Done. I've tweaked the output slightly, it is now:
torside-kz6$ ./java -Xlog:os+cpu -version
[0.177s][info][os,cpu] getisax(2) returned 1 words:
[0.177s][info][os,cpu] word 1: 0x3ffe8df0
That's on a M5, on a T7 and similar it will be 2 words. I've respun the
webrev, for reference here are the review links again:
getisainfo() manpage:
http://docs.oracle.com/cd/E53394_01/html/E54765/getisax-2.html
meminfo() manpage:
https://docs.oracle.com/cd/E53394_01/html/E54765/meminfo-2.html
Bugs: https://bugs.openjdk.java.net/browse/JDK-8157141
https://bugs.openjdk.java.net/browse/JDK-8166454
Webrev: http://cr.openjdk.java.net/~alanbur/JDK-8157141%2bJDK-8166454/
A JPRT hotspot testset run is clean.
In the first review there was this question from Kim:
> The use of getisax with an empty array to determine how many elements
> to allocate for a real call doesn't obviously follow from the
> referenced documentation. "... returns the number of array elements
> that contain non-zero values." suggests to me that it should be no
> greater than the "n" (second) argument and could be less, as it is the
> number of non-zero elements in the first (array) argument that is
> returned. Perhaps that's a bug in the documentation?
It is indeed a bug in the Solaris documentation. I've added a
clarification to the original Solaris engineering case and logged a
Solaris manpage bug (24716290) to clear that up.
I've also taken the opportunity to strip out most of the '#ifndef(FOO)'
probes for the HW capability bit macros in vm_version_solaris_sparc.cpp.
They are now redundant as the macros are are in the system header files
from Solaris 11.1 onwards. The only ones that aren't are T7/M7 related
ones (from Solaris 11.3 onwards), namely AV_SPARC_FMAF and
AV2_SPARC_SPARC5. For those I've left the macro probes in place.
The other oddity was the AV_SPARC_FMAU macro defined in
vm_version_solaris_sparc.cpp. This macro never actually appeared in any
Solaris header file, the only references I can find are in engineering
specifications from 2006 related to the cancelled ROCK processor. In
addition, I couldn't find any uses of the feature that's being probed
for in the JVM code. I've therefore removed it and all the associated
infrastructure - VM_Version::fmau_instructions_m, fmau_instructions,
CPUFeature.FMAU etc - from the JVM code as well.
--
Alan Burlison
--
More information about the hotspot-runtime-dev
mailing list