Re: 2.6.23-mm1

Torsten Kaiser
2007-10-14T19:40:45Z

On 10/14/07, Andrew Morton <akpm@linux-foundation.org> wrote:
> On Sun, 14 Oct 2007 21:12:08 +0200 "Torsten Kaiser" <just.for.lkml@googlemail.com> wrote:
> > The first column is the times I found this line in page_owner.
>
> err, take another look at the changelog in
> page-owner-tracking-leak-detector.patch. It directs you to
> Documentation/page_owner.c which aggregates the contents of
> /proc/page_owner.

Noting the -v on the grep command, now I understand that this program
does in fact what I need.
Not reading this correctly I assumed it collects information only
about the PFN lines.

> > I divided the counts for the duplicate lines (mempool_alloc+83 and
> > kcryptd_do_crypt+0) by two, so normalize them. There still are some
> > false positive counts in there, so it does not match the 354042
> > precisely.
> >
> > 354036 Page allocated via order 0, mask 0x11202
> > 1 (PFN/Block always differ) PFN 3072 Block 6 type 0 Flags
> > 354338 [0xffffffff80266373] mempool_alloc+83
> > 354338 [0xffffffff80266373] mempool_alloc+83
> > 354025 [0xffffffff802bb389] bio_alloc_bioset+185
> > 354058 [0xffffffff804d2b40] kcryptd_do_crypt+0
> > 354052 [0xffffffff804d2cc7] kcryptd_do_crypt+391
> > 354058 [0xffffffff804d2b40] kcryptd_do_crypt+0
> > 354052 [0xffffffff80245d3c] run_workqueue+204
> > 354062 [0xffffffff802467b0] worker_thread+0
> >
> > I'm using dm-crypt with CONFIG_CRYPTO_TWOFISH_X86_64
> >
> > > The other info shows a tremendous memory leak, not via slab. Looks like
> > > someone is running alloc_pages() directly and isnb't giving them back.
> >
> > Blaming it on dm-crypt looks right, as the leak seems to happens, if
> > there is (heavy) disk activity.
> > (updatedb just ate ~500 Mb)
> >
>
> Yup, it does appear that dm-crypt is leaking. Let's add some cc's.

Top3 from the page_owner-util:

353978 times:
Page allocated via order 0, mask 0x11202
[0xffffffff80266373] mempool_alloc+83
[0xffffffff80266373] mempool_alloc+83
[0xffffffff802bb389] bio_alloc_bioset+185
[0xffffffff804d2b40] kcryptd_do_crypt+0
[0xffffffff804d2cc7] kcryptd_do_crypt+391
[0xffffffff804d2b40] kcryptd_do_crypt+0
[0xffffffff80245d3c] run_workqueue+204
[0xffffffff802467b0] worker_thread+0

45065 times:
Page allocated via order 0, mask 0x1201d2
[0xffffffff805ae2c2] __down_read+18
[0xffffffff8026c246] __do_page_cache_readahead+230
[0xffffffff8026c576] ondemand_readahead+278
[0xffffffff80264185] do_generic_mapping_read+629
[0xffffffff802635f0] file_read_actor+0
[0xffffffff80265bbe] generic_file_aio_read+254
[0xffffffff8037a98b] xfs_read+347
[0xffffffff8036b793] xfs_access+67

33008 times:
Page allocated via order 0, mask 0x1201d2
[0xffffffff8026c246] __do_page_cache_readahead+230
[0xffffffff8026c576] ondemand_readahead+278
[0xffffffff8026404e] do_generic_mapping_read+318
[0xffffffff802635f0] file_read_actor+0
[0xffffffff80265bbe] generic_file_aio_read+254
[0xffffffff8037a98b] xfs_read+347
[0xffffffff8036b793] xfs_access+67
[0xffffffff80292569] do_sync_read+217

> Thanks for testing -mm and for reporting this.

:-)

Torsten