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

Reply via email to