RFR: JDK-8157141 & JDK-8166454: Solaris getisax(2) and meminfo(2) cleanup

David Holmes david.holmes at oracle.com
Fri Sep 23 01:11:29 UTC 2016


Hi Alan,

On 23/09/2016 8:54 AM, Alan Burlison wrote:
> getisax(2) and meminfo(2) are both Committed interfaces. getisax(2)
> first appeared in Solaris 10, meminfo(2) first appeared in Solaris 9.
> Currently they are both accessed via dlsym(3C) which is unnecessary as
> they will always be present on any version of Solaris that Java9+ will
> run on. In addition, this patch modifies the use of getisax(2) to probe
> for the correct buffer size to use so it will continue to work if/when
> the current 2-word buffer size is exceeded - although of course any
> newly-returned capability bits will need handling, as is already the case.
>
> I'm submitting these two bugs as a single unit for review as they share
> common code (os::Solaris::misc_sym_init()) which can be removed if they
> are fixed together.
>
> 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/
>
> JPRT hostpot testset is clean.

This is looks good - thanks for cleaning it up.

One nit/favour ...

src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp

  364   log_info(os, cpu)("getisax(2) returned: ");
  365   for (int i = 0; i < avn; i++) {
  366     log_info(os, cpu)(" " PTR32_FORMAT, avs[i]);
  367   }

For compound logging statements it is better to put them in a 
conditional checking the logging is enabled - the original if statement 
escaped (my) notice, the use of a loop here makes this more obvious. You 
can then use the more direct logging form rather than the high-level 
log_info "macro"

  if (log_is_enabled(Info, os, cpu)) {
     outputStream* log = Log(os, cpu)::info_stream();
     log->print("getisax(2) returned:");
     for (int i = 0; i < avn; i++) {
       log->print(" " PTR32_FORMAT, avs[i]);
     }
     log->cr();
  }

No need to see an updated webrev.

Thanks,
David


More information about the hotspot-runtime-dev mailing list