WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] {PATCH] Add p2m_lock in set_shared_p2m_entry

To: Jui-Hao Chiang <juihaochiang@xxxxxxxxx>
Subject: Re: [Xen-devel] {PATCH] Add p2m_lock in set_shared_p2m_entry
From: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Date: Tue, 4 Jan 2011 11:23:40 +0000
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 04 Jan 2011 03:24:22 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <AANLkTi=MXPP2d7kai-gjxCPbJoJcwpU0VVzTO+DjCrsT@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <AANLkTi=MXPP2d7kai-gjxCPbJoJcwpU0VVzTO+DjCrsT@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.20 (2009-06-14)
At 00:45 +0000 on 23 Dec (1293065108), Jui-Hao Chiang wrote:
> Without the lock, set_shared_p2m_entry() will BUG when xen is compiled with 
> debug=y

Thanks.  I'll have to make a slightly more complex fix, as
set_shared_p2m_entry() can be called (via p2m_teardown() and
mem_sharing_unshare_page()) with the p2m lock already held.  :(

That's a sign of a deeper illness which will probably lead to deadlocks
elsewhere.  I intend to give the MM locking (p2m, shadow, hap, log-dirty
and page-sharing locks) a good kicking some time soon, maybe after 4.1
is released.

Cheers,

Tim.

> Singed-off-by: Jui-Hao Chiang <juihaochiang <at> gmail.com<http://gmail.com>>
> 
> --- a/xen/arch/x86/mm/p2m.c    Tue Dec 21 18:10:46 2010 +0000
> +++ b/xen/arch/x86/mm/p2m.c    Thu Dec 23 16:40:41 2010 +0800
> @@ -2665,7 +2665,9 @@ set_shared_p2m_entry(struct p2m_domain *
>      set_gpfn_from_mfn(mfn_x(omfn), INVALID_M2P_ENTRY);
> 
>      P2M_DEBUG("set shared %lx %lx\n", gfn, mfn_x(mfn));
> +    p2m_lock(p2m);
>      rc = set_p2m_entry(p2m, gfn, mfn, 0, p2m_ram_shared);
> +    p2m_unlock(p2m);
>      if ( 0 == rc )
>          gdprintk(XENLOG_ERR,
>              "set_mmio_p2m_entry: set_p2m_entry failed! mfn=%08lx\n"

> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel


-- 
Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, Xen Platform Team
Citrix Systems UK Ltd.  (Company #02937203, SL9 0BG)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>