Skip to content

Conversation

iximeow
Copy link
Member

@iximeow iximeow commented Sep 18, 2025

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.

Comment on lines +609 to +730
// Cache topology leaves are otherwise left zeroed; if we can avoid getting
// into it, let's try!
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(I've not actually tried to boot guests with this yet)

@iximeow iximeow marked this pull request as draft September 18, 2025 02:21
Comment on lines +572 to +576
// Turin supports MOVDIR64B and MOVDIRI. These instructions should just work
// in guests, but it would be nice to test this before committing to passing
// them.
leaf.set_movdir64b(false);
leaf.set_movdiri(false);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well, also worth making sure these work reasonably in guests. I'll almost certainly flip this to true before moving this out of draft. I recognize I've flip-flopped on "what are untested bits set to" in this definition :)

@iximeow iximeow force-pushed the ixi/turin-cpu-platform branch from 4ef8aba to d5727cc Compare October 7, 2025 20:44
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

Successfully merging this pull request may close these issues.

1 participant