[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [HVM] Don't assume that VMENTER causes a TLB flush, when validating
# HG changeset patch # User tdeegan@xxxxxxxxxxxxxxxxxxxxx # Node ID 2097de87c920a4c81dfd994c53960cd9af162538 # Parent 68a1b61ecd2898be483a2d4b43e36b2d7d82b454 [HVM] Don't assume that VMENTER causes a TLB flush, when validating shadow pagetable updates. Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx> --- xen/arch/x86/mm/shadow/common.c | 12 ++---------- 1 files changed, 2 insertions(+), 10 deletions(-) diff -r 68a1b61ecd28 -r 2097de87c920 xen/arch/x86/mm/shadow/common.c --- a/xen/arch/x86/mm/shadow/common.c Mon Aug 28 13:08:41 2006 +0100 +++ b/xen/arch/x86/mm/shadow/common.c Mon Aug 28 17:50:21 2006 +0100 @@ -397,22 +397,14 @@ shadow_validate_guest_pt_write(struct vc ASSERT(shadow_lock_is_acquired(v->domain)); rc = __shadow_validate_guest_entry(v, gmfn, entry, size); if ( rc & SHADOW_SET_FLUSH ) - { - // Flush everyone except the local processor, which will flush when it - // re-enters the HVM guest. - // - cpumask_t mask = d->domain_dirty_cpumask; - cpu_clear(v->processor, mask); - flush_tlb_mask(mask); - } + /* Need to flush TLBs to pick up shadow PT changes */ + flush_tlb_mask(d->domain_dirty_cpumask); if ( rc & SHADOW_SET_ERROR ) { /* This page is probably not a pagetable any more: tear it out of the * shadows, along with any tables that reference it */ shadow_remove_all_shadows_and_parents(v, gmfn); } - /* We ignore the other bits: since we are about to change CR3 on - * VMENTER we don't need to do any extra TLB flushes. */ } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |