• Avi Kivity's avatar
    KVM: MMU: Update accessed and dirty bits after guest pagetable walk · 8cbc7069
    Avi Kivity authored
    While unspecified, the behaviour of Intel processors is to first
    perform the page table walk, then, if the walk was successful, to
    atomically update the accessed and dirty bits of walked paging elements.
    
    While we are not required to follow this exactly, doing so will allow us
    to perform the access permissions check after the walk is complete, rather
    than after each walk step.
    
    (the tricky case is SMEP: a zero in any pte's U bit makes the referenced
    page a supervisor page, so we can't fault on a one bit during the walk
    itself).
    Reviewed-by: default avatarXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    8cbc7069
paging_tmpl.h 21.3 KB