[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC] xen: prevent PVH Dom0 from having pages with more than one ref
With the current implementation of the Dom0 domain builder a PVH Dom0 ends up with pages that have 2 references, which means they are not freed when Dom0 balloons memory down. This leads to those pages not being freed in guest_remove_page, so they are leaked and the memory accounting between Xen and Dom0 differs, because Dom0 OS actually thinks they are freed, but d->tot_pages is not decreased. Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> Cc: Keir Fraser <keir@xxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx> --- xen/arch/x86/domain_build.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index ba42fc9..7073dac 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -1137,10 +1137,12 @@ int __init construct_dom0( L1_PROT : COMPAT_L1_PROT)); l1tab++; - page = mfn_to_page(mfn); - if ( (page->u.inuse.type_info == 0) && - !get_page_and_type(page, d, PGT_writable_page) ) - BUG(); + if ( !is_pvh_domain(d) ) { + page = mfn_to_page(mfn); + if ( (page->u.inuse.type_info == 0) && + !get_page_and_type(page, d, PGT_writable_page) ) + BUG(); + } } if ( is_pv_32on64_domain(d) ) -- 1.7.7.5 (Apple Git-26) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |