Kouya Shimura
2009-Dec-24 06:40 UTC
[Xen-devel] [PATCH] x86/mm: early put_page when XENMEM_add_to_physmap(XENMAPSPACE_gmfn)
When using a stub domain, xen massively complains as follows: (XEN) sh error: sh_remove_all_mappings(): can''t find all mappings of mfn be3c5: c=8000000000000004 t=00000000 (XEN) sh error: sh_remove_all_mappings(): can''t find all mappings of mfn be3c4: c=8000000000000004 t=00000000 ... This comes from the XENMEM_add_to_physmap hypercall from hvmloader. The guest_physmap_remove_page function calls sh_remove_all_mappings() which checks reference count of the page. Then, calling guest_physmap_remove_page after temporarily get_page is obviously wrong. And early put_page is harmless here since domain_lock is acquired. Also, the restore program seems not to complain extra mappings long before. Instead, the stub domain does. Thus the comment in sh_remove_all_mappings() is rewritten. Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Tim Deegan
2010-Jan-04 13:29 UTC
Re: [Xen-devel] [PATCH] x86/mm: early put_page when XENMEM_add_to_physmap(XENMAPSPACE_gmfn)
> diff -r 07f98beddc18 xen/arch/x86/mm/shadow/common.c > --- a/xen/arch/x86/mm/shadow/common.c Wed Dec 23 08:22:13 2009 +0000 > +++ b/xen/arch/x86/mm/shadow/common.c Thu Dec 24 14:07:04 2009 +0900 > @@ -2606,7 +2606,7 @@ int sh_remove_all_mappings(struct vcpu * > { > /* Don''t complain if we''re in HVM and there are some extra mappings: > * The qemu helper process has an untyped mapping of this dom''s RAM > - * and the HVM restore program takes another. */ > + * and the stub domain takes another. */ > if ( !(shadow_mode_external(v->domain) > && (page->count_info & PGC_count_mask) <= 3 > && (page->u.inuse.type_info & PGT_count_mask) == 0) )This change is wrong - the stub domain _is_ the qemu helper process. (The rest of the patch looks OK). Tim. -- Tim Deegan <Tim.Deegan@citrix.com> Principal Software Engineer, Citrix Systems (R&D) Ltd. [Company #02300071, SL9 0DZ, UK.] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel