diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2005-04-01 13:17:52 +0000 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2005-04-01 13:17:52 +0000 |
commit | e8f64f24c7197b545878f78329e974548b66606f (patch) | |
tree | 7c5b9f74ac510132ada0a589269d7ab368065662 /freebsd-5.3-xen-sparse | |
parent | 76d7931a0bf9d8f985c256b92bd1074e4eb5f8d5 (diff) | |
download | xen-e8f64f24c7197b545878f78329e974548b66606f.tar.gz xen-e8f64f24c7197b545878f78329e974548b66606f.tar.bz2 xen-e8f64f24c7197b545878f78329e974548b66606f.zip |
bitkeeper revision 1.1236.1.184 (424d4a00y8MNt89B4nCZ8LKcrTcZUw)
Fix multi-VCPU TLB shootdown interface -- specify pointer to VCPU
bitmap, so it is read at time of flush and not before (which might be
too early, before all updates are flushed, leading to races). Also
add selective multi-VCPU shootdown capability to update_va_mapping()
and use this to make ptep_set_access_flags() a single hypercall.
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'freebsd-5.3-xen-sparse')
-rw-r--r-- | freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c | 2 | ||||
-rw-r--r-- | freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c index 4fa020f531..1dcd9448d3 100644 --- a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c +++ b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/xen_machdep.c @@ -540,7 +540,7 @@ mcl_queue_pt_update(vm_offset_t va, vm_paddr_t ma) MCL_QUEUE[MCL_IDX].op = __HYPERVISOR_update_va_mapping; MCL_QUEUE[MCL_IDX].args[0] = (unsigned long)va; MCL_QUEUE[MCL_IDX].args[1] = (unsigned long)ma; - MCL_QUEUE[MCL_IDX].args[2] = UVMF_INVLPG_LOCAL; + MCL_QUEUE[MCL_IDX].args[2] = UVMF_INVLPG|UVMF_LOCAL; mcl_increment_idx(); } diff --git a/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c b/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c index 40d9e4636e..1de71545fb 100644 --- a/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c +++ b/freebsd-5.3-xen-sparse/i386-xen/xen/netfront/xn_netfront.c @@ -440,7 +440,7 @@ xn_alloc_rx_buffers(struct xn_softc *sc) PT_UPDATES_FLUSH(); /* After all PTEs have been zapped we blow away stale TLB entries. */ - xn_rx_mcl[i-1].args[2] = UVMF_TLB_FLUSH_LOCAL; + xn_rx_mcl[i-1].args[2] = UVMF_TLB_FLUSH|UVMF_LOCAL; /* Give away a batch of pages. */ xn_rx_mcl[i].op = __HYPERVISOR_dom_mem_op; |