RFR: 8368095: [leyden] Fix klass dependency recording

Aleksey Shipilev shade at openjdk.org
Fri Sep 19 13:36:41 UTC 2025


On Fri, 19 Sep 2025 13:16:32 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> See the bug for symptoms. https://github.com/openjdk/leyden/commit/7b7648a4c9f67be509c6fccbcbc0502648388fdc exposed that our dependency recording is not actually accurate. Now that we check that precompiled tasks have dependencies recorded, before we treat class IK as fully initialized, _missing dependencies_ lead to premature replacement of AP4 -> A4, and potential trap from A4.
> 
> Additional testing:
>  - [x] Linux x86_64 server fastdebug, `runtime/cds`
>  - [ ] Benchmarks

Javac benchmark:


Benchmark 1: build/linux-x86_64-server-release/images/jdk/bin/java -Xms64m -Xmx1g -XX:+UseSerialGC \
  -cp JavacBenchApp.jar -XX:AOTCache=app.aot JavacBenchApp 50

# 506af854234ed9eeec5543e60f2a0d41b73bc93d
  Time (mean ± σ):     331.7 ms ±   2.3 ms    [User: 660.7 ms, System: 104.6 ms]
  Range (min … max):   328.4 ms … 335.2 ms    10 runs

# current premain
  Time (mean ± σ):     567.5 ms ±  16.5 ms    [User: 1757.1 ms, System: 149.9 ms]
  Range (min … max):   547.0 ms … 599.3 ms    10 runs

# this PR
  Time (mean ± σ):     355.1 ms ±   2.4 ms    [User: 692.8 ms, System: 100.7 ms]
  Range (min … max):   351.6 ms … 358.4 ms    10 runs

quarkus-getting-started:


$ taskset -c 0-0 make ... compare_premain_builds

Run,Old CDS + AOT,New CDS + AOT
1,425,318
2,415,315
3,410,319
4,421,310
5,424,311
6,412,332
7,411,326
8,422,319
9,413,334
10,431,320
Geomean,418.35,320.31 (1.31x improvement)
Stdev,6.79,7.66

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

PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3312219465
PR Comment: https://git.openjdk.org/leyden/pull/97#issuecomment-3312223611


More information about the leyden-dev mailing list