Page MenuHomeFreeBSD

vmm: Let guests enable SMEP/SMAP if the host supports it
ClosedPublic

Authored by markj on May 26 2021, 12:01 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Nov 1, 2:39 PM
Unknown Object (File)
Sun, Oct 20, 8:05 AM
Unknown Object (File)
Fri, Oct 18, 1:01 AM
Unknown Object (File)
Oct 6 2024, 7:14 AM
Unknown Object (File)
Oct 6 2024, 3:01 AM
Unknown Object (File)
Oct 3 2024, 1:02 PM
Unknown Object (File)
Oct 3 2024, 4:53 AM
Unknown Object (File)
Oct 2 2024, 6:23 PM
Subscribers

Details

Summary

Enabling the bits in cpuid appears to be sufficient. We already allow
the guest to set CR4_SMAP and _SMEP.

Test Plan

I booted a FreeBSD VM on an Intel system that implements SMAP, and verified
that the CPU feature is recognized and that it actually works (by adding
an access to user memory into a system call).

I do not have an AMD system I can use to test this; any assistance here would be
appreciated.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.May 26 2021, 12:03 AM
markj added a reviewer: kib.

From dmesg on a FreeBSD-14 guest on a Ryzen 4700U.

Host:

Structured Extended Features=0x219c91a9<FSGSBASE,BMI1,AVX2,SMEP,BMI2,PQM,PQE,RDSEED,ADX,SMAP,CLFLUSHOPT,CLWB,SHA>

Guest before the change:

Structured Extended Features=0x20040129<FSGSBASE,BMI1,AVX2,BMI2,RDSEED,SHA>

Guest with the change:

Structured Extended Features=0x201401a9<FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,SMAP,SHA>

I believe SMAP on AMD is very recent feature, AFAIR it is not present on Zen2.

In D30462#684409, @kib wrote:

I believe SMAP on AMD is very recent feature, AFAIR it is not present on Zen2.

See the above dmesg fragment showing SMAP present on the Zen2-based 4700U