-
-
Notifications
You must be signed in to change notification settings - Fork 31.8k
bpo-44889: Specialize LOAD_METHOD with PEP 659 adaptive interpreter #27722
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
bpo-44889: Specialize LOAD_METHOD with PEP 659 adaptive interpreter #27722
Conversation
Needs some cleanup before it's ready for review. Pyperformance right now, vs main branch 9816777:
|
I knew it was too good to be true when we got away with 0 segfaults on this change :(. Seems like the refleak buildbots caught some errors by making some tests "hot". The failing tests ( FWIW, specialization successes/failures didn't change at all on my subset of tests. This only affects an extremely small number of cases. Since this added 1 branch and 1 read, I'll be re-benchmarking one final time. |
🤖 New build scheduled with the buildbot fleet by @Fidget-Spinner for commit a12406b 🤖 If you want to schedule another build, you need to add the ":hammer: test-with-buildbots" label again. |
I don't think the last change is correct. To diagnose the problem, you could change |
Indeed, I thought so too -- so I'm thoroughly confused. After changing to an assert, I get a plain AssertionError in C in the same tests, even after it passes the type and dict version checks. So the identity check was a last failsafe. FWIW, the previous attempt at I suspect something weird is going on with On a side note: I have zero clue when |
This took me a full day to debug: I think I found a bug in either the libregretest refleak hunter/unittest or the type version cache: Please see https://bugs.python.org/issue44914. |
🤖 New build scheduled with the buildbot fleet by @Fidget-Spinner for commit 020a326 🤖 If you want to schedule another build, you need to add the ":hammer: test-with-buildbots" label again. |
🤖 New build scheduled with the buildbot fleet by @Fidget-Spinner for commit d27e388 🤖 If you want to schedule another build, you need to add the ":hammer: test-with-buildbots" label again. |
The s390x Fedora buildbot is stuck running THE AMD64 RHEL7 is stuck at The AMD64 Fedora buildbot is stuck at I can't cancel the builds (only core devs can). But I doubt these are related to PR. These bots passed previously (other than the refleak builds) just one commit ago. All refleak buildbots (bar AMD64 Fedora) and other buildbots (excluding those above) have passed. |
Looks good 👍 I think that there are extensions we can make here. |
Thanks for all the reviews Mark. This had some unexpected detours and took longer than I expected :). You're right about the extensions. Looking at it now, Anyways, I think >92.5% specialization successes is quite good. I purposely left ~1.5% on the table by not supporting |
Just a FYI, some *nix PGO buildbots have test failures followed by success with the following message:
I was almost ready to revert this PR, but it seems that this has been happening before this PR was committed, so we're safe (for now). |
Up to 24% faster in
logging_silent
, 2% faster on average in pyperformance.https://bugs.python.org/issue44889