Release Note: Deprecate the `AlwaysActAsServerClassMachine` and `NeverActAsServerClassMachine` Flags

XMLWordPrintable

    • gc

      The `AlwaysActAsServerClassMachine` and `NeverActAsServerClassMachine` flags are used to influence two separate behaviors: 1) which GC is chosen by default, and 2) to influence whether client emulation mode is selected. Both flags have been marked as deprecated and will be obsoleted and removed in future releases.

      Client emulation mode was used to emulate a client build on platforms with reduced virtual address space, mainly Windows 32-bit (see [JDK-8166002](https://bugs.openjdk.org/browse/JDK-8166002)). With Windows 32-bit being deprecated in JDK 24 (see [JEP 479](https://bugs.openjdk.org/browse/JDK-8330623)), the incentive for maintaining the client emulation mode feature is gone, and thus also the method to influence whether it is enabled is no longer needed.

      Users who rely on a specific GC being chosen through the `AlwaysActAsServerClassMachine` and `NeverActAsServerClassMachine` flags should instead explicitly configure the GC they want, for example by using `-XX:+UseSerialGC` or `-XX:+UseG1GC`. When the flags are obsoleted and removed, users will no longer be able to influence whether client emulation mode is enabled via the `NeverActAsServerClassMachine` flag. Client emulation mode will continue to be available only for JVMs running with C1 and without C2 and JVMCI compilers, until it is eventually removed. Users who need to restrict their JVM to C1-only execution should use the `-XX:TieredStopAtLevel=1` flag. Alternatively, a minimal JVM can be built with the `--with-jvm-variants=minimal` configuration flag, producing a JVM with `compiler1 minimal opt-size serialgc` capabilities.

            Assignee:
            Joel Sikström
            Reporter:
            Joel Sikström
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: