|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [XEN] Re-sync PAE l3 shadows when PV gues
# HG changeset patch
# User Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
# Date 1171464247 0
# Node ID cbbd748c4b58f66367b750a2fbba4da5b71fd94c
# Parent d08c2af538045c16366ab5e5e99e1c4bd01f8223
[XEN] Re-sync PAE l3 shadows when PV guests change them
-in particular, for PAE Solaris guests
Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
---
xen/arch/x86/mm.c | 13 +++++++++++++
1 files changed, 13 insertions(+)
diff -r d08c2af53804 -r cbbd748c4b58 xen/arch/x86/mm.c
--- a/xen/arch/x86/mm.c Wed Feb 14 12:14:49 2007 +0000
+++ b/xen/arch/x86/mm.c Wed Feb 14 14:44:07 2007 +0000
@@ -977,6 +977,19 @@ static void pae_flush_pgd(
l3_pgentry_t *l3tab_ptr;
struct pae_l3_cache *cache;
+ if ( unlikely(shadow_mode_enabled(d)) )
+ {
+ cpumask_t m = CPU_MASK_NONE;
+ /* Re-shadow this l3 table on any vcpus that are using it */
+ for_each_vcpu ( d, v )
+ if ( pagetable_get_pfn(v->arch.guest_table) == mfn )
+ {
+ paging_update_cr3(v);
+ cpus_or(m, m, v->vcpu_dirty_cpumask);
+ }
+ flush_tlb_mask(m);
+ }
+
/* If below 4GB then the pgdir is not shadowed in low memory. */
if ( !l3tab_needs_shadow(mfn) )
return;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [XEN] Re-sync PAE l3 shadows when PV guests change them,
Xen patchbot-unstable <=
|
|
|
|
|