On 24/02/2016 14:17, Paolo Bonzini wrote:
> This series started from looking at mmu_unsync_walk for the ubsan thread.
> Patches 1 and 2 are the result of the discussions in that thread.
>
> Patches 3 to 9 do more cleanups in __kvm_sync_page and its callers.
> Among other changes, it removes kvm_sync_page_transient and avoids
> duplicate code between __kvm_sync_page and kvm_sync_pages.
>
> I stopped where I had questions about the existing kvm_mmu_get_page
> code (see patch 8 for the question). However perhaps more cleanups
> are possible, also thanks to Takuya's work on that function and
> link_shadow_page.
>
> Patches 10 to 12 are just micro-optimizations.
>
> Guangrong, it would be great if you took a look since you know this part
> of KVM very well.
>
> I have tested this series minus patch 9, and it survived installation
> of various Linux and Windows guests with EPT disabled. Of course before
> committing the patches I will retest with patch 9 included.
>
> Paolo
>
> Paolo Bonzini (11):
> KVM: MMU: Fix ubsan warnings
> KVM: MMU: introduce kvm_mmu_flush_or_zap
> KVM: MMU: move TLB flush out of __kvm_sync_page
> KVM: MMU: use kvm_sync_page in kvm_sync_pages
> KVM: MMU: cleanup __kvm_sync_page and its callers
> KVM: MMU: invert return value of FNAME(sync_page) and *kvm_sync_page*
> KVM: MMU: move zap/flush to kvm_mmu_get_page
> KVM: MMU: coalesce zapping page after mmu_sync_children
> KVM: mark memory barrier with smp_mb__after_atomic
> KVM: MMU: simplify last_pte_bitmap
> KVM: MMU: micro-optimize gpte_access
>
> Xiao Guangrong (1):
> KVM: MMU: check kvm_mmu_pages and mmu_page_path indices
>
> arch/x86/include/asm/kvm_host.h | 6 +-
> arch/x86/kvm/mmu.c | 216
> ++--
> arch/x86/kvm/paging_tmpl.h | 11 +-
> virt/kvm/kvm_main.c | 2 +-
> 4 files changed, 126 insertions(+), 109 deletions(-)
>
I've pushed patches 1 and 2 to kvm/next now; I'll repost the others next
Monday since there were very small conflicts with the page tracking series.
Paolo