Re: [PATCH v3 05/19] KVM: MMU: optimize to handle dirty bit

Marcelo Tosatti
2011-07-05T21:08:53Z

On Thu, Jun 30, 2011 at 04:21:30PM +0800, Xiao Guangrong wrote:
> If dirty bit is not set, we can make the pte access read-only to avoid handing
> dirty bit everywhere
>
> Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>

> -static unsigned FNAME(gpte_access)(struct kvm_vcpu *vcpu, pt_element_t gpte)
> +static unsigned FNAME(gpte_access)(struct kvm_vcpu *vcpu, pt_element_t gpte,
> + bool last)
> {
> unsigned access;
>
> access = (gpte & (PT_WRITABLE_MASK | PT_USER_MASK)) | ACC_EXEC_MASK;
> + if (last && !is_dirty_gpte(gpte))
> + access &= ~ACC_WRITE_MASK;
> +

What if the walker marks the dirty bit on the gpte?