linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Minchan Kim <minchan.kim@gmail.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	David Howells <dhowells@redhat.com>,
	"riel@redhat.com" <riel@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Christoph Lameter <cl@linux-foundation.org>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"tytso@mit.edu" <tytso@mit.edu>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"elladan@eskimo.com" <elladan@eskimo.com>,
	"npiggin@suse.de" <npiggin@suse.de>,
	"Barnes, Jesse" <jesse.barnes@intel.com>
Subject: Re: Found the commit that causes the OOMs
Date: Mon, 29 Jun 2009 01:47:19 +0900	[thread overview]
Message-ID: <28c262360906280947o6f9358ddh20ab549e875282a9@mail.gmail.com> (raw)
In-Reply-To: <2f11576a0906280749v25ab725dn8f98fbc1d2e5a5fd@mail.gmail.com>

On Sun, Jun 28, 2009 at 11:49 PM, KOSAKI
Motohiro<kosaki.motohiro@jp.fujitsu.com> wrote:
>>> In David's OOM case, there are two symptoms:
>>> 1) 70000 unaccounted/leaked pages as found by Andrew
>>>   (plus rather big number of PG_buddy and pagetable pages)
>>> 2) almost zero active_file/inactive_file; small inactive_anon;
>>>   many slab and active_anon pages.
>>>
>>> In the situation of (2), the slab cache is _under_ scanned. So David
>>> got OOM when vmscan should have squeezed some free pages from the slab
>>> cache. Which is one important side effect of MinChan's patch?
>>
>> My patch's side effect is (2).
>>
>> My guessing is following as.
>>
>> 1. The number of page scanned in shrink_slab is increased in shrink_page_list.
>> And it is doubled for mapped page or swapcache.
>> 2. shrink_page_list is called by shrink_inactive_list
>> 3. shrink_inactive_list is called by shrink_list
>>
>> Look at the shrink_list.
>> If inactive lru list is low, it always call shrink_active_list not
>> shrink_inactive_list in case of anon.
>> It means it doesn't increased sc->nr_scanned.
>> Then shrink_slab can't shrink enough slab pages.
>> So, David OOM have a lot of slab pages and active anon pages.
>>
>> Does it make sense ?
>> If it make sense, we have to change shrink_slab's pressure method.
>> What do you think ?
>
> I'm confused.
>
> if system have no swap, get_scan_ratio() always return anon=0%.
> Then, the numver of inactive_anon is not effect to sc.nr_scanned.
>

My patch isn't a concern since the number of anon lru list(active +
anon) always same.  I mean shrink_slab's lru_pages is same whether my
patch there is.  OOM or Pass depends on sc->nr_scanned, I think.

Why I think it is my patch's side effect is follow as.

Compared to old behavior, my patch can change balancing of anon lru
list when "swap file" is full as Hannes already pointed me out.

It can affect reclaimable anon pages while David is going on swap test on LTP.
When swap file test is end, pages on swap file is inserted anon lru list, again.

My patch can change physical location of anon pages on ram compared to old.

>From now on, we have no swap file so that we can reclaim only file pages.
But we have missed one thing. lumpy reclaim!. (In fact, we should not
reclaim anon pages in no swap space. A few days ago, I sended patch
about this problem. http://patchwork.kernel.org/patch/32651/)

It can reclaim anon pages although we have no swap file.
But after all, shrink_page_list can't reclaim anon pages.  But it
increases sc->nr_scanned.

So I think whether Shrink_slab can reclaim enough or not depends on
sc->nr_scanned.

David's problem is very subtle.

1. If lumpy picks up the anon pages, it can pass LTP since
sc->nr_scanned is increased.
2. If lumpy don't pick up the anon pages, it can meet OOM since
sc->nr_scanned is almost zero or very small.

Unfortunately, my patch seems to change physical location of pages on
ram compared to old so that it selects 2.

It's my imaginary novel.

Okay. I believe Wu's patch will solve David's problem.
David. Could you test with Wu's patch ?

-- 
Kinds regards,
Minchan Kim

  parent reply	other threads:[~2009-06-28 16:47 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-17  2:23 [PATCH 0/3] make mapped executable pages the first class citizen Wu Fengguang
2009-05-17  2:23 ` [PATCH 1/3] vmscan: report vm_flags in page_referenced() Wu Fengguang
2009-05-17  2:23 ` [PATCH 2/3] vmscan: make mapped executable pages the first class citizen Wu Fengguang
2009-05-19  8:59   ` Wu Fengguang
2009-05-17  2:23 ` [PATCH 3/3] vmscan: merge duplicate code in shrink_active_list() Wu Fengguang
2009-05-18  9:16   ` Wu Fengguang
2009-05-19  2:43     ` Wu Fengguang
2009-05-19 10:18       ` Johannes Weiner
2009-05-19 10:32         ` Wu Fengguang
2009-06-18 14:46 ` [PATCH 0/3] make mapped executable pages the first class citizen David Howells
2009-06-19  5:24   ` Wu Fengguang
2009-06-19  5:58   ` Wu Fengguang
2009-06-19  8:06   ` David Howells
2009-06-18 14:51 ` David Howells
2009-06-18 16:18 ` David Howells
2009-06-18 16:57   ` Andrew Morton
2009-06-20  4:33     ` Wu Fengguang
2009-06-20  8:24     ` David Howells
2009-06-23 14:43     ` David Howells
2009-06-24  1:43       ` KOSAKI Motohiro
2009-06-24  2:32       ` Wu Fengguang
2009-06-24  2:43         ` KOSAKI Motohiro
2009-06-24  2:49           ` Wu Fengguang
2009-06-27 11:53           ` Johannes Weiner
2009-06-27 18:40           ` David Howells
2009-06-24 13:07       ` David Howells
2009-06-27  7:12       ` Found the commit that causes the OOMs David Howells
2009-06-27 12:07         ` Minchan Kim
2009-06-27 12:54         ` Johannes Weiner
2009-06-27 13:50           ` Minchan Kim
2009-06-27 15:36             ` Johannes Weiner
2009-06-28 16:53               ` Minchan Kim
2009-06-27 15:52           ` KOSAKI Motohiro
2009-06-28 11:32           ` Wu Fengguang
2009-06-28 13:30             ` Minchan Kim
2009-06-28 13:36               ` Minchan Kim
2009-06-28 14:22                 ` Wu Fengguang
2009-06-28 15:01                   ` KOSAKI Motohiro
2009-06-28 15:10                     ` Wu Fengguang
2009-06-28 16:50                       ` Minchan Kim
2009-06-29  0:17                       ` Minchan Kim
2009-06-29  7:34                         ` Wu Fengguang
2009-06-29 10:10                         ` David Howells
2009-06-29 12:55                           ` Wu Fengguang
2009-06-29 14:21                           ` David Howells
2009-06-29 15:00                             ` Minchan Kim
2009-06-29 15:14                               ` Wu Fengguang
2009-06-29 15:54                               ` David Howells
2009-06-29 15:56                                 ` David Woodhouse
2009-06-30 14:05                                   ` Wu Fengguang
2009-06-30 15:50                                     ` Minchan Kim
2009-07-01  2:30                                       ` Wu Fengguang
2009-07-01  1:18                                     ` KOSAKI Motohiro
2009-07-01  2:13                                       ` Rik van Riel
2009-07-01  2:16                                       ` Wu Fengguang
2009-07-01  2:26                                         ` Wu Fengguang
2009-07-01  2:51                                           ` KOSAKI Motohiro
2009-07-01  2:57                                             ` Rik van Riel
2009-07-01  4:06                                               ` Wu Fengguang
2009-07-01  4:18                                                 ` KOSAKI Motohiro
2009-07-01  4:25                                                   ` Wu Fengguang
2009-07-01  4:30                                                     ` KOSAKI Motohiro
2009-07-01 11:27                                                       ` Wu Fengguang
2009-07-05  9:55                                               ` Wu Fengguang
2009-07-05 10:38                                                 ` KOSAKI Motohiro
2009-07-05 10:51                                                   ` Wu Fengguang
2009-07-01  3:54                                             ` Wu Fengguang
2009-06-29 16:07                               ` Mel Gorman
2009-06-30  4:07                                 ` Minchan Kim
2009-06-30  9:22                                   ` Mel Gorman
2009-06-30  9:30                                     ` Minchan Kim
2009-06-30 14:00                                     ` Minchan Kim
2009-06-30 19:57                                 ` David Howells
2009-07-02  7:41                                   ` Minchan Kim
2009-07-02  7:44                                     ` Minchan Kim
2009-07-02 12:43                                     ` Wu Fengguang
2009-07-02 14:08                                       ` Minchan Kim
2009-06-29 15:27                             ` David Howells
2009-06-28 14:49               ` KOSAKI Motohiro
2009-06-28 15:04                 ` Wu Fengguang
2009-06-28 16:47                 ` Minchan Kim [this message]
2009-06-29  7:48                   ` KOSAKI Motohiro
2009-06-29  9:32                     ` Minchan Kim
2009-06-29 12:43                   ` David Howells
2009-06-29 12:59                     ` Wu Fengguang
2009-06-29 16:57                     ` Andrew Morton
2009-06-29 18:54                       ` KOSAKI Motohiro
2009-06-29 19:08                         ` KOSAKI Motohiro
2009-06-27 18:35         ` David Howells
2009-06-27 18:58         ` David Howells
2009-06-28  7:55         ` David Howells
2009-06-19  5:27   ` [PATCH 0/3] make mapped executable pages the first class citizen Wu Fengguang

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=28c262360906280947o6f9358ddh20ab549e875282a9@mail.gmail.com \
    --to=minchan.kim@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=cl@linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=elladan@eskimo.com \
    --cc=fengguang.wu@intel.com \
    --cc=hannes@cmpxchg.org \
    --cc=jesse.barnes@intel.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=npiggin@suse.de \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=tytso@mit.edu \
    /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;
as well as URLs for NNTP newsgroup(s).