The flags NeverActAsServerClassMachine and AlwaysActAsServerClassMachine nfluence:
1. Default Garbage Collector Selection:
Both flags affect whether the JVM ergonomically selects G1 (for server-class machines) or SerialGC (otherwise) as the default garbage collector.
2. Client Emulation Mode:
Only the NeverActAsServerClassMachine determine if client emulation mode is enabled, even when the C2 and/or JVMCI compilers are active.
Both flags impact the decision logic that determines whether a system is considered a "server class machine." When deemed a server-class machine, G1 is chosen by default, otherwise, SerialGC is selected. With the planned introduction of JDK-8359802, this distinction, and thus the need for these flags, is no longer necessary.
In addition, only `NeverActAsServerClassMachine` is considered when evaluating whether client emulation mode should be activated. This is unintuitive, as `AlwaysActAsServerClassMachine` has no effect in this scenario and is not documented in `java.md`. The user-facing interaction and precedence of these flags are unclear, especially since their combined use is not documented. If both flags are set to the same value (both `true` or both `false`), they conflict, and the documented behavior states that `NeverActAsServerClassMachine` takes precedence.
The overall usefulness of client emulation mode is questionable, especially since there has been an apparent bug in memory limit from JDK 11 to JDK 26. Removing user access to client emulation mode through these flags enables us to simplify the JVM implementation and reduce maintenance costs.
            
1. Default Garbage Collector Selection:
Both flags affect whether the JVM ergonomically selects G1 (for server-class machines) or SerialGC (otherwise) as the default garbage collector.
2. Client Emulation Mode:
Only the NeverActAsServerClassMachine determine if client emulation mode is enabled, even when the C2 and/or JVMCI compilers are active.
Both flags impact the decision logic that determines whether a system is considered a "server class machine." When deemed a server-class machine, G1 is chosen by default, otherwise, SerialGC is selected. With the planned introduction of JDK-8359802, this distinction, and thus the need for these flags, is no longer necessary.
In addition, only `NeverActAsServerClassMachine` is considered when evaluating whether client emulation mode should be activated. This is unintuitive, as `AlwaysActAsServerClassMachine` has no effect in this scenario and is not documented in `java.md`. The user-facing interaction and precedence of these flags are unclear, especially since their combined use is not documented. If both flags are set to the same value (both `true` or both `false`), they conflict, and the documented behavior states that `NeverActAsServerClassMachine` takes precedence.
The overall usefulness of client emulation mode is questionable, especially since there has been an apparent bug in memory limit from JDK 11 to JDK 26. Removing user access to client emulation mode through these flags enables us to simplify the JVM implementation and reduce maintenance costs.
- csr for
 - 
                    
JDK-8370844 Deprecate AlwaysActAsServerClassMachine and NeverActAsServerClassMachine
-         
     - Closed
 
 -