initial Turin CPU platform #9043
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
this is so much simpler than codifying all the of the bits describing all of the CPU surface area! what a breath of fresh air!
except for the EFER bit indicators, the feature selection here is the intersection of "PPR says it's there", "useful for guests", "supported in byhve/propolis", and "doesn't seem like we're painted into a corner if a future platform changes it." the bits here are a subset of what what I'd seen on a 9365 in a Cosmo, but I've not tried booting guests with this specific definition (yet).
I included the EFER bits here because it looks like bhyve/propolis would let those writes through. In which case if we don't want to advertise the features (and I'm not sure if anyone's actually using UAI) then we should fix bhyve/propolis to disallow them too. AutoIBRS at least has more obvious uses; Linux uses it, illumos uses it, presumably Windows would but the easiest way to check IMO is to boot it while offering the bit and see what EFER turns out to be.
This "just" needs the typical slate of guest OSes tested. I think we'll end up passing AutoIBRS through, hide UAI, and at least be set on the Nexus side.