Avi Kivity wrote: > On 04/12/2010 11:06 AM, Xiao Guangrong wrote: >> - chain all unsync shadow pages then we can fetch them quickly >> - flush local/remote tlb after all shadow page synced >> >> Signed-off-by: Xiao Guangrong<xiaoguangr...@cn.fujitsu.com> >> --- >> arch/x86/include/asm/kvm_host.h | 1 + >> arch/x86/kvm/mmu.c | 82 >> ++++++++++++++++++--------------------- >> 2 files changed, 39 insertions(+), 44 deletions(-) >> >> diff --git a/arch/x86/include/asm/kvm_host.h >> b/arch/x86/include/asm/kvm_host.h >> index d463bc6..ae543fb 100644 >> --- a/arch/x86/include/asm/kvm_host.h >> +++ b/arch/x86/include/asm/kvm_host.h >> @@ -207,6 +207,7 @@ struct kvm_mmu_page { >> #define MMU_PAGE_UNSYNC 0x2 >> unsigned int flags; >> unsigned int unsync_children; >> + struct list_head unsync_link; >> union { >> u64 *parent_pte; /* !multimapped */ >> struct hlist_head parent_ptes; /* multimapped, kvm_pte_chain */ >> diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c >> index 18eceb2..fcb6299 100644 >> --- a/arch/x86/kvm/mmu.c >> +++ b/arch/x86/kvm/mmu.c >> @@ -177,6 +177,8 @@ typedef int (*mmu_parent_walk_fn) (struct >> kvm_mmu_page *sp, u64 *spte); >> static struct kmem_cache *pte_chain_cache; >> static struct kmem_cache *rmap_desc_cache; >> static struct kmem_cache *mmu_page_header_cache; >> +static struct list_head unsync_mmu_page_list = >> + LIST_HEAD_INIT(unsync_mmu_page_list); >> >> > > Does this really need to be global? Should be per guest. >
Ah... this patch need more cooking, i'll improve it... thanks for you point it out. Xiao -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html