On Tue, 25 Jun 2024 18:55:14 GMT, Robert Toyonaga <d...@openjdk.org> wrote:
> This PR changes GenerateJfrFiles.java so that the generated > `JfrNativeSettings` union does not include JFR structs.`JfrNativeSettings` is > meant to hold the settings for JFR events, but previously also included JFR > structs such as MetaspaceSizes, StackFrame, CopyFailed, > G1EvacuationStatistics, ObjectSpace, VirtualSpace. These are not events, but > instead are JFR `Type`s, and so do not have settings such as stacktraces or > thresholds. > > The inclusion of JFR structs in `JfrNativeSettings` was problematic because > it could cause a displacement between event ID and`JfrNativeSettings` array > index (each index is meant to correspond with a specific event ID). > > Testing: > - jdk/jdk/jfr > - tier1 What drives the settings system is Java where the event name is linked to the ID, not the enum, e.g. jdk.jfr.internal.JVM.setEnabled(eventTypeId, enabled); If the type IDs are assigned in the order they appear in metadata.xml, then there will (or can be) holes. If GenerateJfrFiles.java makes sure native event types are processed first and then structs, we should be fine. ------------- PR Comment: https://git.openjdk.org/jdk/pull/19891#issuecomment-2192422923