[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86, hap: Track max_mapped_pfn better when using 2MB p2m mappings.
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1224673100 -3600 # Node ID 96d8b7f40dc71aeb5f630fcedefd47e724aa3ec8 # Parent 066c84c7018accc44fbec78d3618d12147d7ab54 x86, hap: Track max_mapped_pfn better when using 2MB p2m mappings. The test for when to increase it was not quite right; also on EPT the value it was set to didn't count the top 511 frames. Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxx> --- xen/arch/x86/mm/hap/p2m-ept.c | 8 +++++--- xen/arch/x86/mm/p2m.c | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff -r 066c84c7018a -r 96d8b7f40dc7 xen/arch/x86/mm/hap/p2m-ept.c --- a/xen/arch/x86/mm/hap/p2m-ept.c Wed Oct 22 11:56:44 2008 +0100 +++ b/xen/arch/x86/mm/hap/p2m-ept.c Wed Oct 22 11:58:20 2008 +0100 @@ -157,9 +157,6 @@ ept_set_entry(struct domain *d, unsigned { if ( mfn_valid(mfn_x(mfn)) || (p2mt == p2m_mmio_direct) ) { - /* Track the highest gfn for which we have ever had a valid mapping */ - if ( gfn > d->arch.p2m->max_mapped_pfn ) - d->arch.p2m->max_mapped_pfn = gfn; ept_entry->emt = epte_get_entry_emt(d, gfn, mfn_x(mfn)); ept_entry->sp_avail = walk_level ? 1 : 0; @@ -233,6 +230,11 @@ ept_set_entry(struct domain *d, unsigned unmap_domain_page(split_table); } + + /* Track the highest gfn for which we have ever had a valid mapping */ + if ( mfn_valid(mfn_x(mfn)) + && (gfn + (1UL << order) - 1 > d->arch.p2m->max_mapped_pfn) ) + d->arch.p2m->max_mapped_pfn = gfn + (1UL << order) - 1; /* Success */ rv = 1; diff -r 066c84c7018a -r 96d8b7f40dc7 xen/arch/x86/mm/p2m.c --- a/xen/arch/x86/mm/p2m.c Wed Oct 22 11:56:44 2008 +0100 +++ b/xen/arch/x86/mm/p2m.c Wed Oct 22 11:58:20 2008 +0100 @@ -322,7 +322,8 @@ p2m_set_entry(struct domain *d, unsigned } /* Track the highest gfn for which we have ever had a valid mapping */ - if ( mfn_valid(mfn) && (gfn > d->arch.p2m->max_mapped_pfn) ) + if ( mfn_valid(mfn) + && (gfn + (1UL << page_order) - 1 > d->arch.p2m->max_mapped_pfn) ) d->arch.p2m->max_mapped_pfn = gfn + (1UL << page_order) - 1; if ( iommu_enabled && (is_hvm_domain(d) || need_iommu(d)) ) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |