[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Further shrink the big-lock window.
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Date 1175007810 -3600 # Node ID f1014cbe906a80d01a9321604a3bb32db7f5aec5 # Parent 070cf119a7ec6b62161022502cf8ec7563ebfd76 Further shrink the big-lock window. A few more adjustments to when the 'big' lock is taken/dropped. Also, fix a case where the foreign domain setting may not get properly cleared at the end of a hypercall (in case of an early error). Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- xen/arch/x86/mm.c | 19 +++++++++++-------- 1 files changed, 11 insertions(+), 8 deletions(-) diff -r 070cf119a7ec -r f1014cbe906a xen/arch/x86/mm.c --- a/xen/arch/x86/mm.c Tue Mar 27 15:53:45 2007 +0100 +++ b/xen/arch/x86/mm.c Tue Mar 27 16:03:30 2007 +0100 @@ -2431,12 +2431,12 @@ int do_mmu_update( guest_handle_add_offset(ureqs, 1); } + process_deferred_ops(); + + UNLOCK_BIGLOCK(d); + domain_mmap_cache_destroy(&mapcache); domain_mmap_cache_destroy(&sh_mapcache); - - process_deferred_ops(); - - UNLOCK_BIGLOCK(d); out: /* Add incremental work we have done to the @done output parameter. */ @@ -2740,6 +2740,10 @@ int do_update_va_mapping(unsigned long v guest_unmap_l1e(v, pl1e); pl1e = NULL; + process_deferred_ops(); + + UNLOCK_BIGLOCK(d); + switch ( flags & UVMF_FLUSHTYPE_MASK ) { case UVMF_TLB_FLUSH: @@ -2785,10 +2789,6 @@ int do_update_va_mapping(unsigned long v break; } - process_deferred_ops(); - - UNLOCK_BIGLOCK(d); - return rc; } @@ -2805,6 +2805,9 @@ int do_update_va_mapping_otherdomain(uns return -ESRCH; rc = do_update_va_mapping(va, val64, flags); + + BUG_ON(this_cpu(percpu_mm_info).deferred_ops); + process_deferred_ops(); /* only to clear foreigndom */ return rc; } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |