Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reexamine trace hooks to reduce code invalidation #7089

Open
headius opened this issue Feb 10, 2022 · 0 comments
Open

Reexamine trace hooks to reduce code invalidation #7089

headius opened this issue Feb 10, 2022 · 0 comments

Comments

@headius
Copy link
Member

headius commented Feb 10, 2022

JRuby currently supports several trace events like class and raise as "always-on" events. Others like line are only enabled in debug mode.

We have not recently evaluated how these trace hooks affect JIT-compiled code.

Events like line and some of the call events are hooked into code using safe points, which means activating them will potentially invalidate a large amount of code. In the case of line this is largely unavoidable; all lines need to suddenly start reporting events to any trace hook or TracePoint that has been installed. Others, however, like call and certainly class and raise are already very heavy, potentially-invalidating events, so always checking for trace hooks would probably be acceptable.

We should do some analysis of the current set of trace events and how they impact compiled and optimized code, to avoid their casual use wiping out optimizations unnecessarily.

@headius headius added this to the JRuby 9.4.0.0 milestone Feb 10, 2022
@headius headius modified the milestones: JRuby 9.4.0.0, JRuby 9.4.1.0 Nov 10, 2022
@enebo enebo modified the milestones: JRuby 9.4.1.0, JRuby 9.4.2.0 Jan 31, 2023
@headius headius modified the milestones: JRuby 9.4.2.0, JRuby 9.4.3.0 Mar 1, 2023
@headius headius modified the milestones: JRuby 9.4.3.0, JRuby 9.4.4.0 Jun 6, 2023
@headius headius removed this from the JRuby 9.4.4.0 milestone Oct 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants