diff options
author | Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> | 2010-11-22 22:13:00 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-01-12 04:29:51 -0500 |
commit | a4ee1ca4a36e7857d90ae8c2b85f1bde9a042c10 (patch) | |
tree | 29707dd004ef14df318ac35321b95ac62570fc99 /include | |
parent | 407c61c6bd6a51b56d02f8bbad8aadf19db8c7b5 (diff) |
KVM: MMU: delay flush all tlbs on sync_page path
Quote from Avi:
| I don't think we need to flush immediately; set a "tlb dirty" bit somewhere
| that is cleareded when we flush the tlb. kvm_mmu_notifier_invalidate_page()
| can consult the bit and force a flush if set.
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/kvm_host.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index da0794f707f6..ac4e83a1a10d 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
@@ -254,6 +254,7 @@ struct kvm { | |||
254 | struct mmu_notifier mmu_notifier; | 254 | struct mmu_notifier mmu_notifier; |
255 | unsigned long mmu_notifier_seq; | 255 | unsigned long mmu_notifier_seq; |
256 | long mmu_notifier_count; | 256 | long mmu_notifier_count; |
257 | long tlbs_dirty; | ||
257 | #endif | 258 | #endif |
258 | }; | 259 | }; |
259 | 260 | ||
@@ -382,6 +383,7 @@ void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu); | |||
382 | void kvm_resched(struct kvm_vcpu *vcpu); | 383 | void kvm_resched(struct kvm_vcpu *vcpu); |
383 | void kvm_load_guest_fpu(struct kvm_vcpu *vcpu); | 384 | void kvm_load_guest_fpu(struct kvm_vcpu *vcpu); |
384 | void kvm_put_guest_fpu(struct kvm_vcpu *vcpu); | 385 | void kvm_put_guest_fpu(struct kvm_vcpu *vcpu); |
386 | |||
385 | void kvm_flush_remote_tlbs(struct kvm *kvm); | 387 | void kvm_flush_remote_tlbs(struct kvm *kvm); |
386 | void kvm_reload_remote_mmus(struct kvm *kvm); | 388 | void kvm_reload_remote_mmus(struct kvm *kvm); |
387 | 389 | ||