xfs-masters
[Top] [All Lists]

[xfs-masters] Re: Interaction between Xen and XFS: stray RW mappings

To: David Chinner <dgc@xxxxxxx>
Subject: [xfs-masters] Re: Interaction between Xen and XFS: stray RW mappings
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Fri, 12 Oct 2007 10:08:49 -0700
Cc: xfs@xxxxxxxxxxx, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>, Mark Williamson <mark.williamson@xxxxxxxxxxxx>, Morten BÃgeskov <xen-users@xxxxxxxxxxxxxxxxxx>, xfs-masters@xxxxxxxxxxx
In-reply-to: <470FA7C3.90404@goop.org>
References: <470FA7C3.90404@goop.org>
Reply-to: xfs-masters@xxxxxxxxxxx
Sender: xfs-masters-bounce@xxxxxxxxxxx
User-agent: Thunderbird 2.0.0.5 (X11/20070727)
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


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