On Fri, 21 Jan 2022 17:35:14 GMT, Tyler Steele <[email protected]> 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 incrementally with one additional
> commit since the last revision:
>
> Copies updates from thread_linux_ppc.cpp to thread_aix.cpp
I think this PR needs to get fixed such that it compares to the rebased
revision. 131 are not reviewable.
src/hotspot/os_cpu/aix_ppc/thread_aix_ppc.cpp line 62:
> 60: (address)uc->uc_mcontext.regs->nip);
> 61:
> 62: if (ret_frame.pc() == NULL) {
Null check has been moved before frame constructor in head revision.
-------------
PR: https://git.openjdk.java.net/jdk/pull/6885