All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Chris Friesen" <cfriesen@nortel.com>
To: Rik van Riel <riel@redhat.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: Tue, 16 Feb 2010 15:26:13 -0600	[thread overview]
Message-ID: <4B7B0D75.50808@nortel.com> (raw)
In-Reply-To: <4B7AD207.20604@redhat.com>

On 02/16/2010 11:12 AM, Rik van Riel wrote:
> On 02/16/2010 11:52 AM, Chris Friesen wrote:
>> On 02/15/2010 11:00 AM, Rik van Riel wrote:
> 
>>> Removal from the LRU is done from the page freeing code, on
>>> the final free of the page.
> 
>> There are a bunch of inline functions involved, but I think the chain
>> from page_remove_rmap() back up to unmap_vmas() looks like this:
>>
>> page_remove_rmap
>> zap_pte_range
>> zap_pmd_range
>> zap_pud_range
>> unmap_page_range
>> unmap_vmas
>>
>> So in this scenario, where do the pages actually get removed from the
>> LRU list (assuming that they're not in use by anyone else)?
> 
> __page_cache_release


For the backtrace scenario I posted it seems like it might actually be
release_pages().  There seems to be a plausible call chain:

__ClearPageLRU
release_pages
free_pages_and_swap_cache
tlb_flush_mmu
tlb_remove_page
zap_pte_range

Does that seem right?  In this case, tlb_remove_page() is called right
after page_remove_rmap() which ultimately results in clearing the
PageAnon bit.

Chris

WARNING: multiple messages have this Message-ID (diff)
From: "Chris Friesen" <cfriesen@nortel.com>
To: Rik van Riel <riel@redhat.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: Tue, 16 Feb 2010 15:26:13 -0600	[thread overview]
Message-ID: <4B7B0D75.50808@nortel.com> (raw)
In-Reply-To: <4B7AD207.20604@redhat.com>

On 02/16/2010 11:12 AM, Rik van Riel wrote:
> On 02/16/2010 11:52 AM, Chris Friesen wrote:
>> On 02/15/2010 11:00 AM, Rik van Riel wrote:
> 
>>> Removal from the LRU is done from the page freeing code, on
>>> the final free of the page.
> 
>> There are a bunch of inline functions involved, but I think the chain
>> from page_remove_rmap() back up to unmap_vmas() looks like this:
>>
>> page_remove_rmap
>> zap_pte_range
>> zap_pmd_range
>> zap_pud_range
>> unmap_page_range
>> unmap_vmas
>>
>> So in this scenario, where do the pages actually get removed from the
>> LRU list (assuming that they're not in use by anyone else)?
> 
> __page_cache_release


For the backtrace scenario I posted it seems like it might actually be
release_pages().  There seems to be a plausible call chain:

__ClearPageLRU
release_pages
free_pages_and_swap_cache
tlb_flush_mmu
tlb_remove_page
zap_pte_range

Does that seem right?  In this case, tlb_remove_page() is called right
after page_remove_rmap() which ultimately results in clearing the
PageAnon bit.

Chris

--
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>

  reply	other threads:[~2010-02-16 21:32 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
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 [this message]
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=4B7B0D75.50808@nortel.com \
    --to=cfriesen@nortel.com \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=minchan.kim@gmail.com \
    --cc=riel@redhat.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.