Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1342902

Re: [PATCH 08/12] KVM: MMU: move zap/flush to kvm_mmu_get_page

From Xiao Guangrong <guangrong.xiao@linux.intel.com>
Newsgroups linux.kernel
Subject Re: [PATCH 08/12] KVM: MMU: move zap/flush to kvm_mmu_get_page
Date 2016-02-25 08:40 +0100
Message-ID <r5YGL-qv-43@gated-at.bofh.it> (permalink)
References <r5Hwe-543-5@gated-at.bofh.it> <r5HFU-59T-21@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw



On 02/24/2016 09:17 PM, Paolo Bonzini wrote:
> kvm_mmu_get_page is the only caller of kvm_sync_page_transient
> and kvm_sync_pages.  Moving the handling of the invalid_list there
> removes the need for the underdocumented kvm_sync_page_transient
> function.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> 	Guangrong, at this point I am confused about why
> 	kvm_sync_page_transient didn't clear sp->unsync.  Do
> 	you remember?  Or perhaps kvm_mmu_get_page could just
> 	call kvm_sync_page now?
>

It is the optimization to reduce write-protect as changing unsync to
sync need to write-protect the page and sync all sptes pointing to the
same gfn.

However, after syncing the content between unsync-ed spte and guest pte,
we can reuse this spte perfectly.

> 	Also, can you explain the need_sync variable in
> 	kvm_mmu_get_page?

This is because we need to to protect the semanteme of 'unsync spte' as
only the spte on last level (level = 1) can be unsync so that if a spte
on the upper level is created we should eliminate all the unsync sptes
pointing to the same gfn.

As you have already merged this patchset to the kvm tree, i will post
a patch to comment these cases to make the code be more understandable.

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 00/12] KVM: MMU: cleanup around kvm_sync_page, and a few micro-optimizations Paolo Bonzini <pbonzini@redhat.com> - 2016-02-24 14:20 +0100
  [PATCH 10/12] KVM: mark memory barrier with smp_mb__after_atomic Paolo Bonzini <pbonzini@redhat.com> - 2016-02-24 14:20 +0100
  [PATCH 05/12] KVM: MMU: use kvm_sync_page in kvm_sync_pages Paolo Bonzini <pbonzini@redhat.com> - 2016-02-24 14:30 +0100
  [PATCH 08/12] KVM: MMU: move zap/flush to kvm_mmu_get_page Paolo Bonzini <pbonzini@redhat.com> - 2016-02-24 14:30 +0100
    Re: [PATCH 08/12] KVM: MMU: move zap/flush to kvm_mmu_get_page Xiao Guangrong <guangrong.xiao@linux.intel.com> - 2016-02-25 08:40 +0100
      Re: [PATCH 08/12] KVM: MMU: move zap/flush to kvm_mmu_get_page Paolo Bonzini <pbonzini@redhat.com> - 2016-02-25 09:50 +0100
  [PATCH 02/12] KVM: MMU: check kvm_mmu_pages and mmu_page_path indices Paolo Bonzini <pbonzini@redhat.com> - 2016-02-24 14:30 +0100
  [PATCH 03/12] KVM: MMU: introduce kvm_mmu_flush_or_zap Paolo Bonzini <pbonzini@redhat.com> - 2016-02-24 14:30 +0100
  [PATCH 04/12] KVM: MMU: move TLB flush out of __kvm_sync_page Paolo Bonzini <pbonzini@redhat.com> - 2016-02-24 14:30 +0100
  Re: [PATCH 00/12] KVM: MMU: cleanup around kvm_sync_page, and a few  micro-optimizations Xiao Guangrong <guangrong.xiao@linux.intel.com> - 2016-02-25 09:30 +0100
    Re: [PATCH 00/12] KVM: MMU: cleanup around kvm_sync_page, and a few  micro-optimizations Paolo Bonzini <pbonzini@redhat.com> - 2016-02-25 09:50 +0100

csiph-web