-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Linux x86 SIMD: Add XSAVEC support to kfpu_begin() #14558
base: master
Are you sure you want to change the base?
Conversation
Since there is a register restore bug in XSAVES and XRSTORS add and use XSAVEC if available. Signed-off-by: Attila Fülöp <attila@fueloep.org>
Needs more testing and maybe some refinement. |
Signed-off-by: Attila Fülöp <attila@fueloep.org>
We need to decide if we prefer XSAVES or XSAVEC if both are available. Please see the discussion in #14557 (comment) for more details. Linux prefers XSAVES, this PR currently XSAVEC. I'd lean towards XSAVES for the sake of the modified optimization. Comments welcome! |
Based on your nice analysis of the issue in #14557 my inclination would be to prefer XSAVES as well. Not only because of the extra optimization but also because that code path has a lot of real world miles on it and is known to work well (errata aside). |
That's a good point. I'll update the PR, do the usual mprime test and remove the draft tag. |
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.
Looks good, pending the results of the mprime testing.
I think I may have found some issues, need to do more thorough checks. |
@AttilaFueloep any update on this? |
#14989 may be germane. |
Related? #16452 |
Not unrelated, but as far as I can tell, the erratum this is for is either incomplete or not the problem there, since xsaves is forcibly disabled and this is still coming up. |
Motivation and Context
Since there is a register restore bug in XSAVES and XRSTORS add and use XSAVEC if available.
How Has This Been Tested?
Builds,, more tests needed.
Types of changes
Checklist:
Signed-off-by
.