RFR: 8203290: [PPC64, s390] Check functionality of JDK-8199712 (Flight Recorder) [v20]

Martin Doerr mdoerr at openjdk.java.net
Fri Feb 4 09:30:21 UTC 2022


On Fri, 4 Feb 2022 00:25:43 GMT, Tyler Steele <duke at openjdk.java.net> wrote:

>> Just in time for the holidays I have completed an implementation of the JFR functionality for AIX. As a side note, this is my first submission to OpenJDK ��
>> 
>> ### Implementation notes and alternatives considered
>> 
>> After modifying the build system to allow the --enable-jvm-feature-jfr to work on AIX, my task was to implement the interfaces from os_perf.hpp. The os_perf_aix.cpp implementation that existed was, I believe, a copy of the Linux implementation. A review of the code in that file showed that NetworkInterface, CPUPerformanceInterface, and SystemProcessInterface would require modification to work on AIX. Using the Linux implementation as a guide, I initially expected to use files from the aix procfs like /proc/<pid>/psinfo, and /proc/<pid>/status in a manner similar to the Linux implementation. However, I ended up using libperfstat for all functionality required by the interfaces.
>> 
>> ### Testing
>> 
>> Testing for JFR seems to be quite light in the repo both before and after this change. In addition to performing manual testing, I have added some basic sanity checks that ensure events can be created and committed (using jtreg), and performs some basic checks on the results of the interface member functions (using gtest).
>> 
>> ### More notes
>> 
>> I've sent an email to the JFR group about a TOC overflow warning I encountered while building (for the release server target). I believe the fix is to pass -qpic=large when using the xlc toolchain, but my modifications to flags-cflags.m4 have not been successful in removing this warning.
>
> Tyler Steele has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains ten commits:
> 
>  - Merge branch 'master' into JDK-8203290
>  - Adds Oracle & IBM copyrights as per guidance from IBM legal team.
>  - Removes incorrect Oracle copyright line from libperfstat_aix.cpp/hpp, and loadlib_aix.hpp
>  - Edit thread_aix.cpp to match thread_linux.cpp in pd_get_top_fram_for_profiling and ...for_signal_handler
>  - Addresses issues from review and other sm fixes
>    
>    - Adds commenting in regards to memory handling by SystemProcess &
>    NetworkInterface classes
>    - Replaces explicit initialization and copy of structs with memcpy
>    and memset as appropriate
>    - Renames internal struct definitions in os_perf_aix
>    - Other minor fixes
>  - Changes macoss -> macosx in problem list
>  - Refactors loadlib_aix: Removes redundant c++ class
>  - Merge branch 'master' into JDK-8203290
>  - Implements JFR on AIX
>    
>    - Implements interfaces from os_perf.hpp in os_perf_aix.cpp
>    - Updates libperfstat_aix to contain functionality needed by os_perf_aix
>    - Implements missing functionality in loadlib_aix (Fixes failure noted
>    by TestNativeLibraies.java)
>    - Removes platform checks for --enable-feature-jfr (Now enable-able on
>    all platforms)
>    - Enables TestNetworkUtilizationEvent.java which now passes on AIX
>    - Updates AIX JavaThread::pd_get_top_frame_for_profiling with changes from Linux

Adding IBM Copyright may be appropriate in files in which you have made significant contributions.
If you add Oracle Copyright lines, please make sure to do it correctly (not "2022, 2022").
Note that your former colleagues haven't done any of that in most cases. I can't tell if this should be done and I think the change can get integrated as it is.
There's no answer, yet: https://mail.openjdk.java.net/pipermail/jdk-dev/2022-January/006364.html

> I'm a fan of more testing @tstuefe. Let me know if you discover anything interesting.

Testing is hard for us because we don't have nightly builds and tests on AIX any more. I don't know if he can afford doing much for it.

-------------

PR: https://git.openjdk.java.net/jdk/pull/6885


More information about the hotspot-runtime-dev mailing list