Integrated: 8307958: Metaspace verification is slow causing extreme class unloading times
Axel Boldt-Christmas
aboldtch at openjdk.org
Thu May 25 09:07:11 UTC 2023
On Mon, 22 May 2023 14:22:07 GMT, Axel Boldt-Christmas <aboldtch at openjdk.org> wrote:
> From JBS:
>>We see very long class unloading times with Generational ZGC in fastdebug builds. MacOS spindumps show that it is caused by Metaspace verification code.
>>
>>I think the main problem is that many of the verification operations are performed at every operation (add, remove, split, merge) and the individual operation verifies much more than a constant number of chunks. This seems to give a quadratic complexity which blows up if you don't class unload often enough.
>
> The approach here is to resolve this by putting the verification behind the SOMETIMES macro. It is then possible to turn it of completely with `-XX:VerifyMetaspaceInterval=0` while still benefiting from some stochastic verification.
>
> The goal here is to have the calls to Verify unchanged. Leaving all explicit gtest verify and Universe::verify calls unaffected.
> The verification was also left unchanged when committing the memory.
>
> All SOMETIMES uses the same frequency, `VerifyMetaspaceInterval`. I looked at the possibility of adding weight to some of the call site, but it did not seem to be worth the complexity.
>
> Testing: GHA and Oracle CI (tier1-3 ongoing), various long running stress tests.
This pull request has now been integrated.
Changeset: 8d8153e9
Author: Axel Boldt-Christmas <aboldtch at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/8d8153e98a64094e6cbccc94062fcf4d9edabe3d
Stats: 35 lines in 6 files changed: 1 ins; 0 del; 34 mod
8307958: Metaspace verification is slow causing extreme class unloading times
Reviewed-by: stuefe, coleenp
-------------
PR: https://git.openjdk.org/jdk/pull/14084
More information about the hotspot-runtime-dev
mailing list