Finding out if "Unrestricted Guest" supported at runtime

Finding out if "Unrestricted Guest" supported at runtime

Hi there,

is there an option to find out at runtime (e.g. with means of CPUID or something else) if the "Unrestricted Guest" feature is supported on the CPU? In the developer manual I can only find which flags control the UG feature (i.e. "25.8. Unrestricted Guests" ff), but I don't see anywhere how to determine if the feature is actually supported. Historically, at which processor family was "Unrestricted Guest" introduced? Is there a easy way to tell which processors contian the feature from the timeline?

Best regards,

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Best Reply

There are a series of MSRs that tell you if a given CPU supports the '1' setting of unrestricted guest and a number of other virtualization features. The specific MSR is IA32_VMX_PROCBASED_CTLS2 and I believe unrestricted guest is bit 7 in the secondary proc controls VMCS field.

Perfect, thank you very much!

Leave a Comment

Please sign in to add a comment. Not a member? Join today