forked from Minki/linux
KVM: MMU: move unsync/sync tracpoints to proper place
Move unsync/sync tracepoints to the proper place, it's good for us to obtain unsync page live time Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
parent
85f2067c31
commit
5e1b3ddbf2
@ -1189,6 +1189,7 @@ static struct kvm_mmu_page *kvm_mmu_lookup_page(struct kvm *kvm, gfn_t gfn)
|
||||
static void kvm_unlink_unsync_page(struct kvm *kvm, struct kvm_mmu_page *sp)
|
||||
{
|
||||
WARN_ON(!sp->unsync);
|
||||
trace_kvm_mmu_sync_page(sp);
|
||||
sp->unsync = 0;
|
||||
--kvm->stat.mmu_unsync;
|
||||
}
|
||||
@ -1202,7 +1203,6 @@ static int kvm_sync_page(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
|
||||
return 1;
|
||||
}
|
||||
|
||||
trace_kvm_mmu_sync_page(sp);
|
||||
if (rmap_write_protect(vcpu->kvm, sp->gfn))
|
||||
kvm_flush_remote_tlbs(vcpu->kvm);
|
||||
kvm_unlink_unsync_page(vcpu->kvm, sp);
|
||||
@ -1730,7 +1730,6 @@ static int kvm_unsync_page(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
|
||||
struct kvm_mmu_page *s;
|
||||
struct hlist_node *node, *n;
|
||||
|
||||
trace_kvm_mmu_unsync_page(sp);
|
||||
index = kvm_page_table_hashfn(sp->gfn);
|
||||
bucket = &vcpu->kvm->arch.mmu_page_hash[index];
|
||||
/* don't unsync if pagetable is shadowed with multiple roles */
|
||||
@ -1740,6 +1739,7 @@ static int kvm_unsync_page(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
|
||||
if (s->role.word != sp->role.word)
|
||||
return 1;
|
||||
}
|
||||
trace_kvm_mmu_unsync_page(sp);
|
||||
++vcpu->kvm->stat.mmu_unsync;
|
||||
sp->unsync = 1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user