On 05/27/2010 11:06 AM, Gui Jianfeng wrote:
In case of using tdp, checking write protected page isn't needed and quadrant also no need to be calculated. Signed-off-by: Gui Jianfeng<guijianfeng@xxxxxxxxxxxxxx> --- arch/x86/kvm/mmu.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 0bb9f17..ce4bbd3 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c @@ -495,10 +495,13 @@ static int mapping_level(struct kvm_vcpu *vcpu, gfn_t large_gfn) max_level = kvm_x86_ops->get_lpage_level()< host_level ? kvm_x86_ops->get_lpage_level() : host_level; + if (tdp_enabled) + goto done; + for (level = PT_DIRECTORY_LEVEL; level<= max_level; ++level) if (has_wrprotected_page(vcpu->kvm, large_gfn, level)) break; - +done: return level - 1; }
We also use ->write_count to prevent mapping the end of a non-large-page-aligned memslot with a large spte.
Undocumented in mmu.txt, I'll post a patch. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html