RFR: 8275049: [ZGC] missing null check in ZNMethod::log_register [v2]
Per Liden
pliden at openjdk.java.net
Tue Oct 12 16:22:58 UTC 2021
On Tue, 12 Oct 2021 15:21:15 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:
>> The VM crashes while trying to read (*p)->klass() in "ZNMethod::log_register" on PPC64. We need a null check. See JBS for details.
>
> Martin Doerr has updated the pull request incrementally with one additional commit since the last revision:
>
> Use Atomic::load to read the oop and change klass name to N/A in case of null oop.
Changes requested by pliden (Reviewer).
src/hotspot/share/gc/z/zNMethod.cpp line 129:
> 127: oop* const end = nm->oops_end();
> 128: for (oop* p = begin; p < end; p++) {
> 129: oop o = Atomic::load(p); // C1 PatchingStub may replace it concurrently.
Can we please make this `const oop o = ...`
src/hotspot/share/gc/z/zNMethod.cpp line 131:
> 129: oop o = Atomic::load(p); // C1 PatchingStub may replace it concurrently.
> 130: const char* external_name = o == nullptr ? "N/A"
> 131: : o->klass()->external_name();
Can we please make this a single line, and add parenthesis around `(o == nullptr)`
src/hotspot/share/gc/z/zNMethod.cpp line 133:
> 131: : o->klass()->external_name();
> 132: log_oops.print(" Oop[" SIZE_FORMAT "] " PTR_FORMAT " (%s)",
> 133: (p - begin), p2i(*p), external_name);
`p2i(*p)` should be `p2i(o)` now
-------------
PR: https://git.openjdk.java.net/jdk/pull/5892
More information about the hotspot-gc-dev
mailing list