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