[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC] xen: prevent PVH Dom0 from having pages with more than one ref
On 13/06/14 10:12, Roger Pau Monne wrote: > 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> > --- In which scenarios do pages get two refs, and why do you consider this to be valid? (Or in other words, my gut feel is that this patch is wrong, but there is insufficient information to decide one way or another.) ~Andrew > 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) ) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |