From: Jeremy Fitzhardinge Subject: Re: Interaction between Xen and XFS: stray RW mappings Date: Fri, 12 Oct 2007 10:08:49 -0700 Message-ID: <470FAA21.6040105@goop.org> References: <470FA7C3.90404@goop.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <470FA7C3.90404@goop.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: David Chinner Cc: Xen-devel , Linux Kernel Mailing List , =?UTF-8?B?ZXNrb3Y=?= , xfs@oss.sgi.com, xfs-masters@oss.sgi.com, =?UTF-8?B?TW9ydGVuIELDuGc=?=, Mark Williamson List-Id: xen-devel@lists.xenproject.org Jeremy Fitzhardinge wrote: > I guess we could create a special-case interface to do the same thing > with XFS mappings, but it would be nicer to have something more generic. > > Is my analysis correct? Or should XFS not be holding stray mappings? > Or is there already some kind of generic mechanism I can use to get it > to release its mappings? This test patch confirms my theory: diff -r 36a518c1fb4b fs/xfs/linux-2.6/xfs_buf.c --- a/fs/xfs/linux-2.6/xfs_buf.c Fri Oct 12 10:03:56 2007 -0700 +++ b/fs/xfs/linux-2.6/xfs_buf.c Fri Oct 12 10:07:03 2007 -0700 @@ -186,6 +186,11 @@ free_address( void *addr) { a_list_t *aentry; + +#ifdef CONFIG_XEN + vunmap(addr); + return; +#endif aentry = kmalloc(sizeof(a_list_t), GFP_NOWAIT); if (likely(aentry)) { With this in place, the problem goes away. J