On Wed, 6 May 2026 07:45:41 GMT, Thomas Schatzl <[email protected]> wrote:
> Hi all, > > please review this change that allows building of the JDK without Serial GC > enabled. > > There were some hardcoded entries for -XX:+UseSerialGC in the makefiles, and > one of the gtests is serial gc specific and needed to be moved. Noticed > during tests with JEP 523: Make G1 the Default Garbage Collector in All > Environments. > > I opted to a different fix than suggested in the CR, instead of wholesale > ignoring unrecognized options, only add serial gc to the relevant options if > the feature is enabled in the build. The change seems small enough. > > Tested manually with and without `--with-jvm-features=-serialgc`, both image > building and running the test works in both cases (being skipped/not found if > serial gc has not been enabled). > > Other testing: gha > > Thanks, > Thomas > > > > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). Test: fastdebug image building (that's what I mostly do, but ymmv) Either using `-XX:+UseG1GC` wherever there is currently `-XX:+UseSerialGC` in the makefiles - this is the case after making G1 default always (JEP 523); without JEP 523 one would either get Serial by default (exactly the same as before) or G1, which I explicitly tested. `$ for i in `seq 0 4`; do make reconfigure clean CONF=fastdebug-test; /usr/bin/time -a -o baseline.time make CONF=fastdebug-test images ; done` * the build configurations may not have been completely comparable across platforms; basically using whatever was configured at the time. Mix of open only/including closed sources. * note that depending OS, time output is different * the systems were idle, but not particularly benchmark-prepared aarch64/OSX Apple M4-something With -XX:+UseG1GC 242,37 real 1027,29 user 328,87 sys 242,10 real 1041,49 user 327,30 sys 242,55 real 1041,00 user 327,55 sys 244,88 real 1041,61 user 331,53 sys 238,77 real 1028,97 user 324,27 sys With -XX:+UseSerialGC 242,03 real 1008,41 user 328,66 sys 240,41 real 1013,91 user 322,72 sys 241,01 real 1032,61 user 334,18 sys 240,78 real 1018,91 user 326,91 sysa 246,80 real 1019,30 user 329,62 sys Aarch64/linux 8 cores/threads With -XX:+UseG1GC 3609.77 user 397.28 system 10:50.72 elapsed 615%CPU 3609.06 user 399.17 system 10:50.69 elapsed 615%CPU 3603.77 user 398.48 system 10:47.87 elapsed 617%CPU 3607.01 user 397.20 system 10:48.46 elapsed 617%CPU 3610.96 user 397.54 system 10:50.47 elapsed 616%CPU With -XX:+UseSerialGC 3594.05 user 390.28 system 10:47.74 elapsed 615%CPU 3598.96 user 393.94 system 10:48.69 elapsed 615%CPU 3603.72 user 400.47 system 10:52.30 elapsed 613%CPU 3598.58 user 395.28 system 10:50.41 elapsed 614%CPU 3597.56 user 396.53 system 10:46.82 elapsed 617%CPU x86/linux 18cores/36 threads With -XX:+UseG1GC 7832.05 user 312.06 system 5:14.24 elapsed 2591% CPU 7857.10 user 311.21 system 5:13.48 elapsed 2605%CPU 7863.41 user 311.84 system 5:14.73 elapsed 2597%CPU 7861.16 user 310.59 system 5:13.34 elapsed 2607%CPU 7859.08 user 312.54 system 5:14.76 elapsed 2596%CPU With -XX:+UseSerialGC 7947.52 user 411.59 system 5:20.41 elapsed 2608% CPU (not sure, seems outlier) 7949.13 user 404.06 system 5:19.74 elapsed 2612% CPU (not sure, seems outlier) 7856.50 user 317.78 system 5:13.77 elapsed 2605% CPU 7853.48 user 312.27 system 5:15.62 elapsed 2587% CPU 7853.75 user 311.70 system 5:14.65 elapsed 2595% CPU To me this is significantly enough to be the same (comparing e.g. user times differences are very small), so I will go ahead removing the flags. ------------- PR Comment: https://git.openjdk.org/jdk/pull/31049#issuecomment-4404861244
