On Tue, 27 Oct 2026 18:24:11 GMT, Aleksey Shipilev <[email protected]> wrote:

>> Andrew Haley has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Silence MacOS compiler.
>
> The uncommon trap count regression seems to be gone! 
> 
> I can see one config where first iterations are considerably faster when I 
> set a giant PCR, but the steady state is still slower to achieve.
> 
> 
> # Ryzen 9950X, distribute across all CCX-es
> $ taskset -c 0-3,8-11 ./run-renaissance.sh dotty -r 20
> 
> dotty -r 20
> 
> --- Patched, PCR=1
> Run 1: 4326 1440 1037 823 761 650 622 592 535 514 476 511 451 452 453 425 432 
> 410 394 390 
> Run 2: 4382 1434 1060 916 780 696 650 570 541 521 519 486 461 457 441 425 425 
> 403 397 409 
> Run 3: 4173 1483 1001 923 747 662 611 557 538 503 488 500 453 448 445 424 410 
> 411 402 401 
> 
> Tier1: 0.043 s, 9747 bytes, 2136 methods;
> Tier2: 1.514 s, 1222241 bytes, 6952 methods;
> Tier3: 3.891 s, 2337675 bytes, 12766 methods;
> Tier4: 43.960 s, 5769281 bytes, 6342 methods;
> 
> Uncommon traps hit: 398
> 
> ...
> 
> --- Patched, PCR=16384
> Run 1: 3967 1373 997 825 743 693 638 613 565 566 556 590 575 595 568 552 548 
> 545 481 478 
> Run 2: 3914 1373 991 822 727 662 623 596 569 550 543 519 520 507 504 488 488 
> 488 479 473 
> Run 3: 3852 1385 1027 822 734 687 631 600 593 565 547 535 526 524 504 500 493 
> 495 477 477 
> 
> Tier1: 0.034 s, 9773 bytes, 2142 methods;
> Tier2: 0.380 s, 306761 bytes, 1811 methods;
> Tier3: 3.686 s, 2424264 bytes, 14852 methods;
> Tier4: 22.989 s, 2905419 bytes, 6351 methods;
> 
> Uncommon traps hit: 457
> 
> 
> BTW, this fails right away with ` -XX:+AggressiveProfileReduction`:
> 
> 
> $ build/linux-x86_64-server-release/images/jdk/bin/java 
> -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -Xmx4g -Xms4g 
> -XX:+UseTransparentHugePages -XX:+AlwaysPreTouch 
> -XX:ReservedCodeCacheSize=256M -XX:+AggressiveProfileReduction -XX:+UseG1GC 
> -XX:ProfileCaptureRatio=4 -jar renaissance-gpl-0.16.1.jar dotty -r 20
> [2026-10-27T19:21:53.168+0100] org.renaissance.core 
> (org.renaissance.core.Launcher main)
> SEVERE: Harness failed with java.lang.NoClassDefFoundError: 
> scala/collection/immutable/Seq
>       at org.renaissance.harness.RenaissanceSuite.main(RenaissanceSuite.scala)
>       at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
>       at java.base/java.lang.reflect.Method.invoke(Method.java:583)
>       at 
> org.renaissance.core.Launcher.loadAndInvokeHarnessClass(Launcher.java:125)
>       at org.renaissance.core.Launcher.launchHarnessClass(Launcher.java:74)
>       at org.renaissance.core.Launcher.main(Launcher.java:43)
> Caused by: java.lang.ClassNotFoundException: scala.collection.immutable.Seq
>       at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:377)
>       at java...

@shipilev , I think the arithmetic is correct, even with very large PCRs. One 
interesting observation is that on a many-core machine uncommon traps can be 
very much higher because C2 compilation is done too soon, even with PCR=1.

I think this PR really should be good to go now. OK?

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

PR Comment: https://git.openjdk.org/jdk/pull/28541#issuecomment-6770256538

Reply via email to