RFR: 8326615: C1/C2 don't handle allocation failure properly during initialization (RuntimeStub::new_runtime_stub fatal crash) [v5]
Damon Fenacci
dfenacci at openjdk.org
Tue Jul 2 07:00:20 UTC 2024
On Tue, 11 Jun 2024 17:27:56 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> I suggest instead adjust CodeCache minimal size check when JIT compilers are enabled in `CompilerConfig::check_args_consistency()`. We check `CodeCacheMinimumUseSpace` value their which is 400Kb only. It could be enough to run with `-Xint` (Interpreter only). But it is definitely not enough to run with JIT compilers.
@vnkozlov thanks for your insights!
I've tried to figure out an estimate of a bare minimum code cache size for interpreter/C1/C2/both for a couple of architectures (basically by running `java -version`):
| | Int | C1 only | C2 only | C1/C2 tiered |
|----------------|------|---------|---------|--------------|
| linux-x64 | 680k | 4m | 900k | 2.2m |
| macosx-aarch64 | 580k | 3m | 800k | 1.5m |
| linux-aarch64 | 520k | 3.8m | 800k | 1.5m |
(interesting that C2 needs less code cache than C1 but I guess it could also be due to the fact that its thread might actually exit before it properly starts)
800k for the interpreter alone and 5 times as much (4m) when C1 or C2 are running might be good minima. What do you think?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/19280#issuecomment-2202101118
More information about the hotspot-compiler-dev
mailing list