From: kfraser@localhost.localdomain Date: Tue, 15 Aug 2006 15:31:14 +0000 (+0100) Subject: [XEN] Add tracing to slow path in setting new guest %cr3 value. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15710^2~96 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=89e0f558c842bb8a2be5a816f5f3d17c9c86aeef;p=xen.git [XEN] Add tracing to slow path in setting new guest %cr3 value. Also, allow x86/64 user cr3 value to be reset to zero. Signed-off-by: Gerd Hoffmann --- diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 9664a2cda0..b5b778d83f 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -1744,6 +1744,7 @@ int new_guest_cr3(unsigned long mfn) if ( unlikely(!okay) ) { /* Switch to idle pagetable: this VCPU has no active p.t. now. */ + MEM_LOG("New baseptr %lx: slow path via idle pagetables", mfn); old_base_mfn = pagetable_get_pfn(v->arch.guest_table); v->arch.guest_table = pagetable_null(); update_pagetables(v); @@ -2025,8 +2026,10 @@ int do_mmuext_op( #ifdef __x86_64__ case MMUEXT_NEW_USER_BASEPTR: - okay = get_page_and_type_from_pagenr( - mfn, PGT_root_page_table, d); + okay = 1; + if (likely(mfn != 0)) + okay = get_page_and_type_from_pagenr( + mfn, PGT_root_page_table, d); if ( unlikely(!okay) ) { MEM_LOG("Error while installing new mfn %lx", mfn);