From: Rik van Riel <riel@redhat.com>
To: Chris Friesen <cfriesen@nortel.com>
Cc: Minchan Kim <minchan.kim@gmail.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-mm@kvack.org, Balbir Singh <balbir@linux.vnet.ibm.com>
Subject: Re: tracking memory usage/leak in "inactive" field in /proc/meminfo?
Date: Thu, 11 Feb 2010 14:04:39 -0500 [thread overview]
Message-ID: <4B7454C7.9020600@redhat.com> (raw)
In-Reply-To: <4B74524D.8080804@nortel.com>
On 02/11/2010 01:54 PM, Chris Friesen wrote:
> On 02/10/2010 06:45 PM, Minchan Kim wrote:
>> On Thu, Feb 11, 2010 at 2:05 AM, Chris Friesen<cfriesen@nortel.com> wrote:
>
>>> In those spreadsheets I notice that
>>> memfree+active+inactive+slab+pagetables is basically a constant.
>>> However, if I don't use active+inactive then I can't make the numbers
>>> add up. And the difference between active+inactive and
>>> buffers+cached+anonpages+dirty+mapped+pagetables+vmallocused grows
>>> almost monotonically.
>>
>> Such comparison is not right. That's because code pages of program account
>> with cached and mapped but they account just one in lru list(active +
>> inactive).
>> Also, if you use mmap on any file, above is applied.
>
> That just makes the comparison even worse...it means that there is more
> memory in active/inactive that isn't accounted for in any other category
> in /proc/meminfo.
Which does not happen in the standard 2.6.27 kernel.
Are you leaking memory in your driver?
>
>> I can't find any clue with your attachment.
>> You said you used kernel with some modification and non-vanilla drivers.
>> So I suspect that. Maybe kernel memory leak?
>
> Possibly. Or it could be a use case issue, I know there have been
> memory leaks fixed since 2.6.27. :)
>
>> Now kernel don't account kernel memory allocations except SLAB.
>
> I don't think that's entirely accurate. I think cached, buffers,
> pagetables, vmallocUsed are all kernel allocations. Granted, they're
> generally on behalf of userspace.
>
> I've discovered that the generic page allocator (alloc_page, etc.) is
> not tracked at all in /proc/meminfo. I seem to see the memory increase
> in the page cache (that is, active/inactive), so that would seem to rule
> out most direct allocations.
>
>> I think this patch can help you find the kernel memory leak.
>> (It isn't merged with mainline by somewhy but it is useful to you :)
>>
>> http://marc.info/?l=linux-mm&m=123782029809850&w=2
>
> I have a modified version of that which I picked up as part of the
> kmemleak backport. However, it doesn't help unless I can narrow down
> *which* pages I should care about.
>
> I tried using kmemleak directly, but it didn't find anything. I've also
> tried checking for inactive pages which haven't been written to in 10
> minutes, and haven't had much luck there either. But active/inactive
> keeps growing, and I don't know why.
>
> Chris
--
All rights reversed.
WARNING: multiple messages have this Message-ID (diff)
From: Rik van Riel <riel@redhat.com>
To: Chris Friesen <cfriesen@nortel.com>
Cc: Minchan Kim <minchan.kim@gmail.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-mm@kvack.org, Balbir Singh <balbir@linux.vnet.ibm.com>
Subject: Re: tracking memory usage/leak in "inactive" field in /proc/meminfo?
Date: Thu, 11 Feb 2010 14:04:39 -0500 [thread overview]
Message-ID: <4B7454C7.9020600@redhat.com> (raw)
In-Reply-To: <4B74524D.8080804@nortel.com>
On 02/11/2010 01:54 PM, Chris Friesen wrote:
> On 02/10/2010 06:45 PM, Minchan Kim wrote:
>> On Thu, Feb 11, 2010 at 2:05 AM, Chris Friesen<cfriesen@nortel.com> wrote:
>
>>> In those spreadsheets I notice that
>>> memfree+active+inactive+slab+pagetables is basically a constant.
>>> However, if I don't use active+inactive then I can't make the numbers
>>> add up. And the difference between active+inactive and
>>> buffers+cached+anonpages+dirty+mapped+pagetables+vmallocused grows
>>> almost monotonically.
>>
>> Such comparison is not right. That's because code pages of program account
>> with cached and mapped but they account just one in lru list(active +
>> inactive).
>> Also, if you use mmap on any file, above is applied.
>
> That just makes the comparison even worse...it means that there is more
> memory in active/inactive that isn't accounted for in any other category
> in /proc/meminfo.
Which does not happen in the standard 2.6.27 kernel.
Are you leaking memory in your driver?
>
>> I can't find any clue with your attachment.
>> You said you used kernel with some modification and non-vanilla drivers.
>> So I suspect that. Maybe kernel memory leak?
>
> Possibly. Or it could be a use case issue, I know there have been
> memory leaks fixed since 2.6.27. :)
>
>> Now kernel don't account kernel memory allocations except SLAB.
>
> I don't think that's entirely accurate. I think cached, buffers,
> pagetables, vmallocUsed are all kernel allocations. Granted, they're
> generally on behalf of userspace.
>
> I've discovered that the generic page allocator (alloc_page, etc.) is
> not tracked at all in /proc/meminfo. I seem to see the memory increase
> in the page cache (that is, active/inactive), so that would seem to rule
> out most direct allocations.
>
>> I think this patch can help you find the kernel memory leak.
>> (It isn't merged with mainline by somewhy but it is useful to you :)
>>
>> http://marc.info/?l=linux-mm&m=123782029809850&w=2
>
> I have a modified version of that which I picked up as part of the
> kmemleak backport. However, it doesn't help unless I can narrow down
> *which* pages I should care about.
>
> I tried using kmemleak directly, but it didn't find anything. I've also
> tried checking for inactive pages which haven't been written to in 10
> minutes, and haven't had much luck there either. But active/inactive
> keeps growing, and I don't know why.
>
> Chris
--
All rights reversed.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2010-02-11 19:05 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-09 16:51 tracking memory usage/leak in "inactive" field in /proc/meminfo? Chris Friesen
2010-02-09 16:51 ` Chris Friesen
2010-02-10 0:32 ` KOSAKI Motohiro
2010-02-10 0:32 ` KOSAKI Motohiro
2010-02-10 3:50 ` Balbir Singh
2010-02-10 3:50 ` Balbir Singh
2010-02-10 4:09 ` KOSAKI Motohiro
2010-02-10 4:09 ` KOSAKI Motohiro
2010-02-10 17:05 ` Chris Friesen
2010-02-11 0:45 ` Minchan Kim
2010-02-11 0:45 ` Minchan Kim
2010-02-11 18:54 ` Chris Friesen
2010-02-11 18:54 ` Chris Friesen
2010-02-11 19:04 ` Rik van Riel [this message]
2010-02-11 19:04 ` Rik van Riel
2010-02-12 2:38 ` Minchan Kim
2010-02-12 2:38 ` Minchan Kim
2010-02-12 7:35 ` Chris Friesen
2010-02-12 7:35 ` Chris Friesen
2010-02-12 8:04 ` KOSAKI Motohiro
2010-02-12 8:04 ` KOSAKI Motohiro
2010-02-15 15:50 ` Chris Friesen
2010-02-15 15:50 ` Chris Friesen
2010-02-15 17:00 ` Rik van Riel
2010-02-15 17:00 ` Rik van Riel
2010-02-16 16:52 ` Chris Friesen
2010-02-16 16:52 ` Chris Friesen
2010-02-16 17:12 ` Rik van Riel
2010-02-16 17:12 ` Rik van Riel
2010-02-16 21:26 ` Chris Friesen
2010-02-16 21:26 ` Chris Friesen
2010-02-16 22:22 ` Rik van Riel
2010-02-16 22:22 ` Rik van Riel
2010-02-18 15:39 ` tracking memory usage/leak in "inactive" field in /proc/meminfo? -- solved Chris Friesen
2010-02-18 15:39 ` Chris Friesen
2010-02-12 17:50 ` tracking memory usage/leak in "inactive" field in /proc/meminfo? Catalin Marinas
2010-02-12 17:50 ` Catalin Marinas
2010-02-13 6:29 ` Balbir Singh
2010-02-13 6:29 ` Balbir Singh
2010-02-15 16:02 ` Chris Friesen
2010-02-15 16:02 ` Chris Friesen
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=4B7454C7.9020600@redhat.com \
--to=riel@redhat.com \
--cc=balbir@linux.vnet.ibm.com \
--cc=cfriesen@nortel.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan.kim@gmail.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.