RFR: 8276711: compiler/codecache/cli tests failing when SegmentedCodeCache used with -Xint [v3]

Vladimir Kozlov kvn at openjdk.java.net
Thu Mar 3 00:19:05 UTC 2022


On Wed, 2 Mar 2022 22:50:22 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> src/hotspot/share/code/codeCache.cpp line 371:
>> 
>>> 369:     // No segmentation: use a single code heap
>>> 370:     return (code_blob_type == CodeBlobType::All);
>>> 371:   } else if (CompilerConfig::is_interpreter_only()) {
>> 
>> Doesn't this introduce a very subtle change in behaviour in relation to the handling of `MethodNonProfiled`?
>> @vnkozlov please confirm this is what you intended - I don't know the implications.
>
> According to my conversation with Rickard, TierStopAtLevel=0 is the same as -Xint.  If TieredStopAtLevel=0, the compiler won't allocate nmethods in the MethodProfiled and MethodNonProfiled areas anyway, so this won't allocate them now.

I think this code was missed during Igor's V. changes which introduced `CompilerConfig::is_interpreter_only()`.
Coleen is correct, with `TieredStopAtLevel=0` all JIT compilers are disabled. `MethodNonProfiled` is codeheap for tier1 (C1) and tier4 (C2) compiled nmethods. It does not make sense to have such codeheap when compilation disabled.

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

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


More information about the hotspot-dev mailing list