-
-
Notifications
You must be signed in to change notification settings - Fork 33.8k
gh-143183: Link trace to side exits, rather than stop #143268
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
Conversation
diegorusso
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see that #143187 add a test. Can we have it here as well?
|
I fixed the test in the test suite so that it catches it. I verified that without the change, the test fails. With the change, the test passes. |
diegorusso
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for fixing the regression and adding the test for it!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Damn you're too fast.. was about to hit approve when you merged it 😆
| DPRINTF(2, "Unsupported: oparg too large\n"); | ||
| unsupported: | ||
| { | ||
| // Rewind to previous instruction and replace with _EXIT_TRACE. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the other PR, I meant to update this comment but GH shows the suggestions in a weird a way for unchanges lines.. The point is the comment mentions _EXIT_TRACE but it should be _DEOPT now :)
// Rewind to previous instruction and replace with _EXIT_TRACE.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh yeah. Good point!
#143187 caused a pretty serious regression in JIT performance, mainly because we stop the trace prior to the ENTER_EXECUTOR. This PR restores the old behavior, stopping the trace at the ENTER_EXECUTOR, allowing it to link up to the executor.
The perf regression can be clearly seen here (going up means things got slower):
stopiteration_error#143183