Skip to content
  • Peter Feiner's avatar
    kvm: x86: mmu: allow A/D bits to be disabled in an mmu · ac8d57e5
    Peter Feiner authored
    
    
    Adds the plumbing to disable A/D bits in the MMU based on a new role
    bit, ad_disabled. When A/D is disabled, the MMU operates as though A/D
    aren't available (i.e., using access tracking faults instead).
    
    To avoid SP -> kvm_mmu_page.role.ad_disabled lookups all over the
    place, A/D disablement is now stored in the SPTE. This state is stored
    in the SPTE by tweaking the use of SPTE_SPECIAL_MASK for access
    tracking. Rather than just setting SPTE_SPECIAL_MASK when an
    access-tracking SPTE is non-present, we now always set
    SPTE_SPECIAL_MASK for access-tracking SPTEs.
    
    Signed-off-by: default avatarPeter Feiner <pfeiner@google.com>
    [Use role.ad_disabled even for direct (non-shadow) EPT page tables.  Add
     documentation and a few MMU_WARN_ONs. - Paolo]
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    ac8d57e5