From: David Chinner <dgc@sgi.com>
To: David Chinner <dgc@sgi.com>
Cc: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>,
Christoph Hellwig <hch@lst.de>,
xfs-masters@oss.sgi.com,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org
Subject: Re: [xfs-masters] Re: 2.6.22-rc1-mm1
Date: Mon, 21 May 2007 20:11:42 +1000 [thread overview]
Message-ID: <20070521101141.GX86004887@sgi.com> (raw)
In-Reply-To: <20070518021114.GV86004887@sgi.com>
On Fri, May 18, 2007 at 12:11:14PM +1000, David Chinner wrote:
> On Thu, May 17, 2007 at 10:05:11PM +0200, Michal Piotrowski wrote:
> > I applied your patch and I get another oops
> >
> > [ 261.491499] XFS mounting filesystem loop0
> > [ 261.501641] Ending clean XFS mount for filesystem: loop0
> > [ 261.507698] SELinux: initialized (dev loop0, type xfs), uses xattr
> > [ 261.567441] XFS mounting filesystem loop0
> > [ 261.573931] allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
> > [ 261.582935] xfs_buf_get_noaddr: failed to map pages
> > [ 261.592478] Ending clean XFS mount for filesystem: loop0
> > [ 261.618543] SELinux: initialized (dev loop0, type xfs), uses xattr
> > [ 261.691563] XFS mounting filesystem loop0
> > [ 261.698927] allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
> > ^^^^^^^^^^^^^^^^^^^^
> > interesting
>
> Yeah, looks like a vmalloc leak is occurring. I haven't noticed
> it before because:
>
> VmallocTotal: 137427898368 kB
> VmallocUsed: 3128272 kB
> VmallocChunk: 137424770048 kB
>
> It takes a long time to leak enough vmapped space to run out on ia64...
>
> That tends to imply we have a mapped buffer being leaked somewhere.
> Interestingly, I don't see a memory leak so we must be freeing the
> memory associated with the buffer, just not unmapping it first. Not
> sure how that can happen yet.....
.....
>
> Looks like we're leaking 272kB of vmalloc space on each mount/unmount
> cycle. I'm trying to track this down now....
I've found what is going on here - kmem_alloc() is decidedly more
forgiving than manually built page arrays and vmap/vunmap. Prior
to this change we wouldn't have even leaked memory....
Christoph - this is an interaction with xfs_buf_associate_memory();
I'm not sure what it is doing is at all safe now that it never gets
passed kmem_alloc()d memory - it works for the log recovery case
because we use it in pairs - once to shorten the buffer and then once
to put it back the way it was.
But that doesn't work for the log buffers (we never return them to their
original state) and the log wrap case looks to work mostly by accident
now (and could posibly lead to double freeing pages)....
It seems that what we really need with the new code is a xfs_buf_clone()
operation followed by trimming the range to what the secondary I/O needs
to span. This would work for the log buffer case as well. Your thoughts?
In the meantime, the following patch appears to fix the leak.
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
---
fs/xfs/xfs_log.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: 2.6.x-xfs-new/fs/xfs/xfs_log.c
===================================================================
--- 2.6.x-xfs-new.orig/fs/xfs/xfs_log.c 2007-05-21 19:51:18.000000000 +1000
+++ 2.6.x-xfs-new/fs/xfs/xfs_log.c 2007-05-21 19:57:30.960084657 +1000
@@ -1457,7 +1457,7 @@ xlog_sync(xlog_t *log,
} else {
iclog->ic_bwritecnt = 1;
}
- XFS_BUF_SET_PTR(bp, (xfs_caddr_t) &(iclog->ic_header), count);
+ XFS_BUF_SET_COUNT(bp, count);
XFS_BUF_SET_FSPRIVATE(bp, iclog); /* save for later */
XFS_BUF_ZEROFLAGS(bp);
XFS_BUF_BUSY(bp);
next prev parent reply other threads:[~2007-05-21 10:20 UTC|newest]
Thread overview: 151+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-16 3:19 2.6.22-rc1-mm1 Andrew Morton
2007-05-16 6:06 ` 2.6.22-rc1-mm1 KAMEZAWA Hiroyuki
2007-05-16 7:58 ` 2.6.22-rc1-mm1 Jeff Garzik
2007-05-16 8:04 ` 2.6.22-rc1-mm1 Andrew Morton
2007-05-16 15:33 ` 2.6.22-rc1-mm1 Jeff Garzik
2007-05-16 20:24 ` 2.6.22-rc1-mm1 Darrick J. Wong
2007-05-16 16:54 ` 2.6.22-rc1-mm1 Randy Dunlap
2007-05-16 7:57 ` 2.6.22-rc1-mm1 - s390 vs. md Cornelia Huck
2007-05-16 17:21 ` Williams, Dan J
2007-05-16 10:18 ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-05-16 15:16 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-16 17:40 ` 2.6.22-rc1-mm1 Mel Gorman
2007-05-16 17:55 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-16 18:18 ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-05-16 18:00 ` 2.6.22-rc1-mm1 Andrew Morton
2007-05-16 23:32 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-16 23:36 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-17 9:35 ` 2.6.22-rc1-mm1 Mel Gorman
2007-05-29 22:34 ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-06-01 9:50 ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-06-01 23:12 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-06-05 18:38 ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-06-05 22:57 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-06-07 9:49 ` 2.6.22-rc1-mm1 Andy Whitcroft
2007-06-11 13:58 ` 2.6.22-rc1-mm1 Andy Whitcroft
[not found] ` <63a08cc7547f14065becdf9a94d0d529@pinky>
2007-06-11 16:15 ` [PATCH] move the kernel to 16MB for NUMA-Q Andrew Morton
2007-06-11 17:20 ` Dave Jones
2007-06-11 17:36 ` H. Peter Anvin
2007-06-11 18:19 ` Jan Engelhardt
2007-06-11 18:46 ` Dave Jones
2007-06-11 19:17 ` Alan Cox
2007-06-11 20:07 ` Rene Herman
2007-06-11 20:21 ` Rene Herman
2007-06-11 19:01 ` H. Peter Anvin
2007-06-11 20:44 ` Jan Engelhardt
2007-06-11 20:51 ` H. Peter Anvin
2007-06-15 11:12 ` Jan Engelhardt
2007-06-11 17:49 ` Rene Herman
2007-06-11 17:58 ` H. Peter Anvin
2007-06-11 18:01 ` Rene Herman
2007-05-17 4:16 ` 2.6.22-rc1-mm1 Bharata B Rao
2007-05-18 8:54 ` 2.6.22-rc1-mm1 young dave
2007-05-18 10:07 ` 2.6.22-rc1-mm1 young dave
2007-05-18 16:54 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-18 16:59 ` 2.6.22-rc1-mm1 Mel Gorman
2007-05-21 0:53 ` 2.6.22-rc1-mm1 young dave
2007-05-21 4:49 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-21 5:00 ` 2.6.22-rc1-mm1 young dave
2007-05-21 5:03 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-21 5:39 ` 2.6.22-rc1-mm1 young dave
[not found] ` <465138CC.3060605@zytor.com>
2007-05-21 8:41 ` 2.6.22-rc1-mm1 young dave
2007-05-21 16:35 ` 2.6.22-rc1-mm1 H. Peter Anvin
2007-05-22 2:14 ` 2.6.22-rc1-mm1 young dave
[not found] ` <465319C1.2080206@zytor.com>
2007-05-23 1:15 ` 2.6.22-rc1-mm1 young dave
2007-05-16 12:10 ` (NFS) BUG: at page-writeback.c:829 [Was: 2.6.22-rc1-mm1] Jiri Slaby
2007-05-16 12:39 ` Nick Piggin
2007-05-16 12:44 ` Jiri Slaby
2007-05-16 12:47 ` Nick Piggin
2007-05-16 13:00 ` Trond Myklebust
2007-05-16 13:06 ` Nick Piggin
2007-05-16 12:52 ` Trond Myklebust
2007-05-16 14:30 ` 2.6.22-rc1-mm1 Michal Piotrowski
2007-05-16 14:37 ` 2.6.22-rc1-mm1 Nick Piggin
[not found] ` <6bffcb0e0705160935r1767a764hce72f24f9eee6c1e@mail.gmail.com>
2007-05-16 16:58 ` 2.6.22-rc1-mm1 Jiri Slaby
2007-05-16 15:34 ` 2.6.22-rc1-mm1 Gabriel C
2007-05-16 16:24 ` 2.6.22-rc1-mm1 Michal Piotrowski
2007-05-16 16:41 ` 2.6.22-rc1-mm1 Andrew Morton
2007-05-17 2:06 ` 2.6.22-rc1-mm1 David Chinner
2007-05-17 8:41 ` [xfs-masters] 2.6.22-rc1-mm1 Christoph Hellwig
2007-05-17 20:05 ` Michal Piotrowski
2007-05-18 2:11 ` David Chinner
2007-05-21 10:11 ` David Chinner [this message]
2007-05-21 10:23 ` Christoph Hellwig
2007-05-22 10:44 ` David Chinner
2007-05-22 11:42 ` Christoph Hellwig
2007-05-22 23:23 ` Nathan Scott
2007-05-22 14:45 ` Michal Piotrowski
2007-05-16 16:50 ` 2.6.22-rc1-mm1 Randy Dunlap
2007-05-16 17:00 ` 2.6.22-rc1-mm1 Richard Purdie
2007-05-16 17:06 ` 2.6.22-rc1-mm1 Andrew Morton
2007-05-16 19:55 ` 2.6.22-rc1-mm1 Richard Purdie
2007-05-16 20:00 ` 2.6.22-rc1-mm1 Richard Purdie
2007-05-18 17:34 ` 2.6.22-rc1-mm1 Edward Shishkin
2007-05-16 17:37 ` 2.6.22-rc1-mm1 [cannot change thermal trip points] Maciej Rutecki
2007-05-16 17:47 ` Chuck Ebbert
2007-05-16 17:47 ` Chuck Ebbert
2007-05-16 18:10 ` Goulven Guillard
2007-05-16 18:10 ` Goulven Guillard
2007-05-17 9:23 ` Pavel Machek
2007-05-17 13:36 ` Maciej Rutecki
2007-05-17 19:08 ` Len Brown
2007-05-17 20:09 ` Maciej Rutecki
2007-05-17 20:42 ` Maciej Rutecki
2007-05-17 21:53 ` Pavel Machek
2007-05-17 22:42 ` Len Brown
2007-05-21 12:11 ` Pavel Machek
2007-06-01 2:46 ` Len Brown
2007-06-04 11:16 ` Pavel Machek
2007-05-17 19:17 ` Len Brown
2007-05-17 21:52 ` Pavel Machek
2007-05-17 22:35 ` Len Brown
2007-06-04 9:02 ` Stefan Seyfried
2007-06-04 9:02 ` Stefan Seyfried
2007-06-04 11:06 ` Pavel Machek
2007-05-19 19:56 ` Thomas Renninger
2007-05-21 3:50 ` Len Brown
2007-05-21 11:31 ` Thomas Renninger
2007-05-21 12:10 ` Pavel Machek
2007-05-21 13:27 ` Matthew Garrett
2007-05-21 13:29 ` Pavel Machek
2007-05-21 13:36 ` Matthew Garrett
2007-05-21 13:40 ` Pavel Machek
2007-05-21 13:45 ` Matthew Garrett
2007-05-21 22:42 ` Pavel Machek
2007-05-22 0:31 ` Matthew Garrett
2007-05-22 9:06 ` Pavel Machek
2007-05-22 9:16 ` Matthew Garrett
2007-05-22 9:28 ` Goulven Guillard
2007-05-22 9:28 ` Goulven Guillard
2007-05-22 10:05 ` Maciej Rutecki
2007-06-04 9:13 ` Stefan Seyfried
2007-06-04 9:13 ` Stefan Seyfried
2007-05-24 14:16 ` 2.6.22-rc1-mm1 Implementing fan/thermal control in userspace - Was: " Thomas Renninger
2007-05-24 14:36 ` Matthew Garrett
2007-05-24 18:18 ` Thomas Renninger
2007-05-25 6:38 ` Pavel Machek
2007-05-27 21:51 ` Matthew Garrett
2007-05-28 10:58 ` Pavel Machek
2007-05-28 12:50 ` Matthew Garrett
2007-05-28 12:53 ` Pavel Machek
2007-05-16 18:55 ` 2.6.22-rc1-mm1: IDE compile error Adrian Bunk
2007-05-23 23:45 ` Bartlomiej Zolnierkiewicz
2007-05-24 10:55 ` Alan Cox
2007-05-24 18:53 ` H. Peter Anvin
2007-05-25 0:05 ` H. Peter Anvin
2007-05-25 0:14 ` Alan Cox
2007-05-25 0:18 ` H. Peter Anvin
2007-05-25 0:38 ` Alan Cox
2007-05-25 0:51 ` H. Peter Anvin
2007-05-25 14:19 ` Alan Cox
2007-05-17 12:38 ` 2.6.22-rc1-mm1 - Call trace in slub_def.h Reuben Farrelly
2007-05-17 12:52 ` Satyam Sharma
2007-05-20 10:12 ` 2.6.22-rc1-mm1 Mariusz Kozlowski
2007-05-20 10:12 ` 2.6.22-rc1-mm1 Mariusz Kozlowski
2007-05-20 10:21 ` 2.6.22-rc1-mm1 Sam Ravnborg
2007-05-20 10:21 ` 2.6.22-rc1-mm1 Sam Ravnborg
2007-05-20 15:33 ` 2.6.22-rc1-mm1 Kumar Gala
2007-05-20 15:33 ` 2.6.22-rc1-mm1 Kumar Gala
2007-05-22 7:25 ` 2.6.22-rc1-mm1: evm BUG when reading sysfs file Joseph Fannin
2007-05-22 21:23 ` Andrew Morton
2007-05-25 21:05 ` Mimi Zohar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070521101141.GX86004887@sgi.com \
--to=dgc@sgi.com \
--cc=akpm@linux-foundation.org \
--cc=hch@lst.de \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.k.k.piotrowski@gmail.com \
--cc=xfs-masters@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.