From: Yang Weijiang <weijiang.yang@xxxxxxxxx> Sub-Page Permission(SPP) is to protect finer granularity subpages (128Byte each) within a 4KB page. There're three specific ioctls for the feature in KVM: KVM_INIT_SPP - initialize SPP runtime environment KVM_SUBPAGES_SET_ACCESS - set SPP protection for guest page KVM_SUBPAGES_GET_ACCESS - get SPP permission bits for guest page This selftest uses these ioctls to verify whether SPP is working on SPP powered platforms. test results: -------------------------------------------------------------------------- SPP protected zone: size = 4096, gva = 0x700000, gpa = 0x10001000, hva = 0x0x7f6ff3b92000 SPP initialized successfully. set spp protection info: gfn = 0x10001, access = 0x0, npages = 1 get spp protection info: gfn = 0x10001, access = 0x0, npages = 1 got matched subpage permission vector. expect VM exits caused by SPP below. 1 - exit reason: SPP 2 - exit reason: SPP 3 - exit reason: SPP 4 - exit reason: SPP 5 - exit reason: SPP 6 - exit reason: SPP 7 - exit reason: SPP 8 - exit reason: SPP 9 - exit reason: SPP 10 - exit reason: SPP 11 - exit reason: SPP 12 - exit reason: SPP 13 - exit reason: SPP 14 - exit reason: SPP 15 - exit reason: SPP 16 - exit reason: SPP 17 - exit reason: SPP 18 - exit reason: SPP 19 - exit reason: SPP 20 - exit reason: SPP 21 - exit reason: SPP 22 - exit reason: SPP 23 - exit reason: SPP 24 - exit reason: SPP 25 - exit reason: SPP 26 - exit reason: SPP 27 - exit reason: SPP 28 - exit reason: SPP 29 - exit reason: SPP 30 - exit reason: SPP 31 - exit reason: SPP 32 - exit reason: SPP total EPT violation count: 32 unset SPP protection at gfn: 0x10001 expect NO VM exits caused by SPP below. completed SPP test successfully! ------------------------------------------------------------------------ Yang Weijiang (1): kvm: selftests: add selftest for SPP feature tools/testing/selftests/kvm/Makefile | 1 + tools/testing/selftests/kvm/lib/kvm_util.c | 1 + tools/testing/selftests/kvm/x86_64/spp_test.c | 206 ++++++++++++++++++ 3 files changed, 208 insertions(+) create mode 100644 tools/testing/selftests/kvm/x86_64/spp_test.c -- 2.17.2