From: Dave Hansen <haveblue@us.ibm.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Lennert Van Alboom <lennert.vanalboom@ugent.be>,
Andrew Morton <akpm@osdl.org>, Jens Axboe <axboe@suse.de>,
alexn@dsv.su.se, kas@fi.muni.cz,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Memory leak in 2.6.11-rc1?
Date: Wed, 02 Feb 2005 11:07:01 -0800 [thread overview]
Message-ID: <1107371221.5540.81.camel@localhost> (raw)
In-Reply-To: <Pine.LNX.4.58.0502021008350.2362@ppc970.osdl.org>
On Wed, 2005-02-02 at 10:27 -0800, Linus Torvalds wrote:
> How many of these pages do you see? It's normal for a single pipe to be
> associated with up to 16 pages (although that would only happen if there
> is no reader or a slow reader, which is obviously not very common).
Strangely enough, it seems to be one single, persistent page.
> Now, if your memory freeing code depends on the fact that all HIGHMEM
> pages are always "freeable" (page cache + VM mappings only), then yes, the
> new pipe code introduces highmem pages that weren't highmem before. But
> such long-lived and unfreeable pages have been there before too: kernel
> modules (or any other vmalloc() user, for that matter) also do the same
> thing.
That might be it. For now, I just change the GFP masks for vmalloc() so
that I don't have to deal with it, yet. But, I certainly can see that
how this is a new user of highmem.
I did go around killing processes like mad to see if any of them still
had a hold of the pipe, but the shotgun approach didn't seem to help.
> Now, there _is_ another possibility here: we might have had a pipe leak
> before, and the new pipe code would potentially make it a lot more
> noticeable, with up to sixteen times as many pages lost if somebody freed
> a pipe inode without calling "free_pipe_info()". I don't see where that
> would happen - all the normal "release" functions seem fine.
>
> Hmm.. Adding a
>
> WARN_ON(inode->i_pipe);
>
> to "iput_final()" might be a good idea - showing if somebody is releasing
> an inode while it still associated with a pipe-info data structure.
>
> Also, while I don't see how a write could leak, but maybe you could you
> add a
>
> WARN_ON(buf->ops);
>
> to the pipe_writev() case just before we insert a new buffer (ie to just
> after the comment that says "Insert it into the buffer array"). Just to
> see if the circular buffer handling might overwrite an old entry (although
> I _really_ don't see that - it's not like the code is complex, and it
> would also be accompanied by data-loss in the pipe, so we'd have seen
> that, methinks).
I'll put the warnings in, and see if anything comes up.
-- Dave
next prev parent reply other threads:[~2005-02-02 19:16 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-21 16:19 Memory leak in 2.6.11-rc1? Jan Kasprzak
2005-01-22 2:23 ` Alexander Nyberg
2005-01-23 9:11 ` Jens Axboe
2005-01-23 9:19 ` Andrew Morton
2005-01-23 9:56 ` Jens Axboe
2005-01-23 10:32 ` Andrew Morton
2005-01-23 20:03 ` Russell King
2005-01-24 11:48 ` Russell King
2005-01-25 19:32 ` Russell King
2005-01-27 8:28 ` Russell King
2005-01-27 8:47 ` Andrew Morton
2005-01-27 10:19 ` Alessandro Suardi
2005-01-27 12:17 ` Martin Josefsson
2005-01-27 12:56 ` Robert Olsson
2005-01-27 13:03 ` Robert Olsson
2005-01-27 16:49 ` Russell King
2005-01-27 18:37 ` Phil Oester
2005-01-27 19:25 ` Russell King
2005-01-27 20:40 ` Phil Oester
2005-01-28 9:32 ` Russell King
2005-01-27 20:33 ` David S. Miller
2005-01-28 0:17 ` Russell King
2005-01-28 0:34 ` David S. Miller
2005-01-28 8:58 ` Russell King
2005-01-30 13:23 ` Russell King
2005-01-30 15:34 ` Russell King
2005-01-30 16:57 ` Phil Oester
2005-01-30 17:23 ` Patrick McHardy
2005-01-30 17:26 ` Patrick McHardy
2005-01-30 17:58 ` Patrick McHardy
2005-01-30 18:45 ` Russell King
2005-01-31 2:48 ` David S. Miller
2005-01-31 4:11 ` Herbert Xu
2005-01-31 4:45 ` YOSHIFUJI Hideaki / 吉藤英明
2005-01-31 5:00 ` Patrick McHardy
2005-01-31 5:11 ` David S. Miller
2005-01-31 5:40 ` Herbert Xu
2005-01-31 5:16 ` YOSHIFUJI Hideaki / 吉藤英明
2005-01-31 5:42 ` Yasuyuki KOZAKAI
2005-01-30 18:01 ` Russell King
2005-01-30 18:19 ` Phil Oester
2005-01-28 1:41 ` Phil Oester
2005-01-24 0:56 ` Alexander Nyberg
2005-01-24 20:47 ` Jens Axboe
2005-01-24 20:56 ` Andrew Morton
2005-01-24 21:05 ` Jens Axboe
2005-01-24 22:35 ` Linus Torvalds
2005-01-25 15:53 ` OT " Paulo Marques
2005-01-26 8:01 ` Jens Axboe
2005-01-26 8:11 ` Andrew Morton
2005-01-26 8:40 ` Jens Axboe
2005-01-26 8:44 ` Andrew Morton
2005-01-26 8:47 ` Jens Axboe
2005-01-26 8:52 ` Jens Axboe
2005-01-26 9:00 ` William Lee Irwin III
2005-01-26 8:58 ` Andrew Morton
2005-01-26 9:03 ` Jens Axboe
2005-01-26 15:52 ` Parag Warudkar
2005-02-02 9:29 ` Lennert Van Alboom
2005-02-02 16:00 ` Linus Torvalds
2005-02-02 16:19 ` Lennert Van Alboom
2005-02-02 17:49 ` Dave Hansen
2005-02-02 18:27 ` Linus Torvalds
2005-02-02 19:07 ` Dave Hansen [this message]
2005-02-02 21:08 ` Linus Torvalds
2005-01-24 22:05 ` Andrew Morton
2005-02-07 11:00 ` Jan Kasprzak
2005-02-07 11:11 ` William Lee Irwin III
2005-02-07 15:38 ` Linus Torvalds
2005-02-07 15:52 ` Jan Kasprzak
2005-02-07 16:38 ` axboe
2005-02-07 17:35 ` Jan Kasprzak
2005-02-07 21:10 ` Jan Kasprzak
2005-02-08 2:47 ` Memory leak in 2.6.11-rc1? (also here) Noel Maddy
2005-02-16 4:00 ` -rc3 leaking NOT BIO [Was: Memory leak in 2.6.11-rc1?] Parag Warudkar
2005-02-16 5:12 ` Andrew Morton
2005-02-16 6:07 ` Parag Warudkar
2005-02-16 23:52 ` Andrew Morton
2005-02-17 13:00 ` Parag Warudkar
2005-02-17 18:18 ` Linus Torvalds
2005-02-18 1:38 ` Badari Pulavarty
2005-02-21 4:57 ` Parag Warudkar
2005-02-16 23:31 ` Parag Warudkar
2005-02-16 23:51 ` Andrew Morton
2005-02-17 1:19 ` Parag Warudkar
2005-02-17 3:48 ` Horst von Brand
2005-02-17 13:35 ` Parag Warudkar
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=1107371221.5540.81.camel@localhost \
--to=haveblue@us.ibm.com \
--cc=akpm@osdl.org \
--cc=alexn@dsv.su.se \
--cc=axboe@suse.de \
--cc=kas@fi.muni.cz \
--cc=lennert.vanalboom@ugent.be \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox