Re: [PATCH 00/12] KVM: MMU: cleanup around kvm_sync_page, and a few micro-optimizations

2016-03-04 Thread Paolo Bonzini


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


Re: [PATCH 00/12] KVM: MMU: cleanup around kvm_sync_page, and a few micro-optimizations

2016-02-25 Thread Xiao Guangrong



On 02/24/2016 09:17 PM, 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 reviewed it and it works fine except the one leaking tlb flush out
of mmu-lock.

I will continue to simplify the path of walking unsync sp to keep
mmu_page_path smaller and make comments for kvm_mmu_get_page on top of
this patchset.

BTW, is any conflict to apply my page-tracking patchset on top of this
patchset (i noticed you've merged this patchset on kvm/queue)? Please
tell me to rebase it if it is needed.




Re: [PATCH 00/12] KVM: MMU: cleanup around kvm_sync_page, and a few micro-optimizations

2016-02-25 Thread Paolo Bonzini


On 25/02/2016 09:28, Xiao Guangrong wrote:
> 
> BTW, is any conflict to apply my page-tracking patchset on top of this
> patchset (i noticed you've merged this patchset on kvm/queue)? Please
> tell me to rebase it if it is needed.

No, there shouldn't be any conflict.

Paolo