[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/p2m: drop second pass looking for shared pages.



At 15:13 +0000 on 18 Dec (1387375994), Tim Deegan wrote:
> We have run relinquish_shared_pages() already by the time this
> teardown happens, and page_make_sharable() exits early if the owning
> domain is dying.
> 
> Signed-off-by: Tim Deegan <tim@xxxxxxx>
> Cc: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>

This is also OK to wait until we've branched, just posting now for
review.

Tim.

> ---
>  xen/arch/x86/mm/p2m.c | 21 +--------------------
>  1 file changed, 1 insertion(+), 20 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
> index d7dd480..c0ddef0 100644
> --- a/xen/arch/x86/mm/p2m.c
> +++ b/xen/arch/x86/mm/p2m.c
> @@ -440,9 +440,6 @@ void p2m_teardown(struct p2m_domain *p2m)
>  {
>      struct page_info *pg;
>      struct domain *d;
> -    unsigned long gfn;
> -    p2m_type_t t;
> -    mfn_t mfn;
>  
>      if (p2m == NULL)
>          return;
> @@ -450,23 +447,7 @@ void p2m_teardown(struct p2m_domain *p2m)
>      d = p2m->domain;
>  
>      p2m_lock(p2m);
> -
> -    /* Try to unshare any remaining shared p2m entries. Safeguard
> -     * Since relinquish_shared_pages should have done the work. */ 
> -    for ( gfn=0; gfn < p2m->max_mapped_pfn; gfn++ )
> -    {
> -        p2m_access_t a;
> -        if ( atomic_read(&d->shr_pages) == 0 )
> -            break;
> -        mfn = p2m->get_entry(p2m, gfn, &t, &a, 0, NULL);
> -        if ( mfn_valid(mfn) && (t == p2m_ram_shared) )
> -        {
> -            ASSERT(!p2m_is_nestedp2m(p2m));
> -            /* Does not fail with ENOMEM given the DESTROY flag */
> -            BUG_ON(mem_sharing_unshare_page(d, gfn, 
> MEM_SHARING_DESTROY_GFN));
> -        }
> -    }
> -
> +    ASSERT(atomic_read(&d->shr_pages) == 0);
>      p2m->phys_table = pagetable_null();
>  
>      while ( (pg = page_list_remove_head(&p2m->pages)) )
> -- 
> 1.8.5.1
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.