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)
|
static void kvm_unlink_unsync_page(struct kvm *kvm, struct kvm_mmu_page *sp)
|
||||||
{
|
{
|
||||||
WARN_ON(!sp->unsync);
|
WARN_ON(!sp->unsync);
|
||||||
|
trace_kvm_mmu_sync_page(sp);
|
||||||
sp->unsync = 0;
|
sp->unsync = 0;
|
||||||
--kvm->stat.mmu_unsync;
|
--kvm->stat.mmu_unsync;
|
||||||
}
|
}
|
||||||
|
@ -1202,7 +1203,6 @@ static int kvm_sync_page(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
trace_kvm_mmu_sync_page(sp);
|
|
||||||
if (rmap_write_protect(vcpu->kvm, sp->gfn))
|
if (rmap_write_protect(vcpu->kvm, sp->gfn))
|
||||||
kvm_flush_remote_tlbs(vcpu->kvm);
|
kvm_flush_remote_tlbs(vcpu->kvm);
|
||||||
kvm_unlink_unsync_page(vcpu->kvm, sp);
|
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 kvm_mmu_page *s;
|
||||||
struct hlist_node *node, *n;
|
struct hlist_node *node, *n;
|
||||||
|
|
||||||
trace_kvm_mmu_unsync_page(sp);
|
|
||||||
index = kvm_page_table_hashfn(sp->gfn);
|
index = kvm_page_table_hashfn(sp->gfn);
|
||||||
bucket = &vcpu->kvm->arch.mmu_page_hash[index];
|
bucket = &vcpu->kvm->arch.mmu_page_hash[index];
|
||||||
/* don't unsync if pagetable is shadowed with multiple roles */
|
/* 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)
|
if (s->role.word != sp->role.word)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
trace_kvm_mmu_unsync_page(sp);
|
||||||
++vcpu->kvm->stat.mmu_unsync;
|
++vcpu->kvm->stat.mmu_unsync;
|
||||||
sp->unsync = 1;
|
sp->unsync = 1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue