All of lore.kernel.org
 help / color / mirror / Atom feed
From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
To: rientjes@google.com
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org, caiqian@redhat.com, hughd@google.com,
	kamezawa.hiroyu@jp.fujitsu.com, minchan.kim@gmail.com,
	oleg@redhat.com
Subject: Re: [PATCH 4/5] oom: don't kill random process
Date: Tue, 24 May 2011 11:03:32 +0900	[thread overview]
Message-ID: <4DDB11F4.2070903@jp.fujitsu.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1105231856210.18353@chino.kir.corp.google.com>

(2011/05/24 10:58), David Rientjes wrote:
> On Tue, 24 May 2011, KOSAKI Motohiro wrote:
>
>>>>> This is unnecessary and just makes the oom killer egregiously long.  We
>>>>> are already diagnosing problems here at Google where the oom killer
>>>>> holds
>>>>> tasklist_lock on the readside for far too long, causing other cpus
>>>>> waiting
>>>>> for a write_lock_irq(&tasklist_lock) to encounter issues when irqs are
>>>>> disabled and it is spinning.  A second tasklist scan is simply a
>>>>> non-starter.
>>>>>
>>>>>     [ This is also one of the reasons why we needed to introduce
>>>>>       mm->oom_disable_count to prevent a second, expensive tasklist scan.
>>>>> ]
>>>>
>>>> You misunderstand the code. Both select_bad_process() and
>>>> oom_kill_process()
>>>> are under tasklist_lock(). IOW, no change lock holding time.
>>>>
>>>
>>> A second iteration through the tasklist in select_bad_process() will
>>> extend the time that tasklist_lock is held, which is what your patch does.
>>
>> It never happen usual case. Plz think when happen all process score = 1.
>>
>
> I don't care if it happens in the usual case or extremely rare case.  It
> significantly increases the amount of time that tasklist_lock is held
> which causes writelock starvation on other cpus and causes issues,
> especially if the cpu being starved is updating the timer because it has
> irqs disabled, i.e. write_lock_irq(&tasklist_lock) usually in the clone or
> exit path.  We can do better than that, and that's why I proposed my patch
> to CAI that increases the resolution of the scoring and makes the root
> process bonus proportional to the amount of used memory.

Do I need to say the same word? Please read the code at first.




WARNING: multiple messages have this Message-ID (diff)
From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
To: rientjes@google.com
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org, caiqian@redhat.com, hughd@google.com,
	kamezawa.hiroyu@jp.fujitsu.com, minchan.kim@gmail.com,
	oleg@redhat.com
Subject: Re: [PATCH 4/5] oom: don't kill random process
Date: Tue, 24 May 2011 11:03:32 +0900	[thread overview]
Message-ID: <4DDB11F4.2070903@jp.fujitsu.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1105231856210.18353@chino.kir.corp.google.com>

(2011/05/24 10:58), David Rientjes wrote:
> On Tue, 24 May 2011, KOSAKI Motohiro wrote:
>
>>>>> This is unnecessary and just makes the oom killer egregiously long.  We
>>>>> are already diagnosing problems here at Google where the oom killer
>>>>> holds
>>>>> tasklist_lock on the readside for far too long, causing other cpus
>>>>> waiting
>>>>> for a write_lock_irq(&tasklist_lock) to encounter issues when irqs are
>>>>> disabled and it is spinning.  A second tasklist scan is simply a
>>>>> non-starter.
>>>>>
>>>>>     [ This is also one of the reasons why we needed to introduce
>>>>>       mm->oom_disable_count to prevent a second, expensive tasklist scan.
>>>>> ]
>>>>
>>>> You misunderstand the code. Both select_bad_process() and
>>>> oom_kill_process()
>>>> are under tasklist_lock(). IOW, no change lock holding time.
>>>>
>>>
>>> A second iteration through the tasklist in select_bad_process() will
>>> extend the time that tasklist_lock is held, which is what your patch does.
>>
>> It never happen usual case. Plz think when happen all process score = 1.
>>
>
> I don't care if it happens in the usual case or extremely rare case.  It
> significantly increases the amount of time that tasklist_lock is held
> which causes writelock starvation on other cpus and causes issues,
> especially if the cpu being starved is updating the timer because it has
> irqs disabled, i.e. write_lock_irq(&tasklist_lock) usually in the clone or
> exit path.  We can do better than that, and that's why I proposed my patch
> to CAI that increases the resolution of the scoring and makes the root
> process bonus proportional to the amount of used memory.

Do I need to say the same word? Please read the code at first.



--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-05-24  2:03 UTC|newest]

Thread overview: 118+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-20  8:00 [PATCH v2 0/5] Fix oom killer doesn't work at all if system have > gigabytes memory (aka CAI founded issue) KOSAKI Motohiro
2011-05-20  8:00 ` KOSAKI Motohiro
2011-05-20  8:01 ` [PATCH 1/5] oom: improve dump_tasks() show items KOSAKI Motohiro
2011-05-20  8:01   ` KOSAKI Motohiro
2011-05-23 22:16   ` David Rientjes
2011-05-23 22:16     ` David Rientjes
2011-05-20  8:02 ` [PATCH 2/5] oom: kill younger process first KOSAKI Motohiro
2011-05-20  8:02   ` KOSAKI Motohiro
2011-05-23  2:37   ` Minchan Kim
2011-05-23  2:37     ` Minchan Kim
2011-05-23 22:20   ` David Rientjes
2011-05-23 22:20     ` David Rientjes
2011-05-20  8:03 ` [PATCH 3/5] oom: oom-killer don't use proportion of system-ram internally KOSAKI Motohiro
2011-05-20  8:03   ` KOSAKI Motohiro
2011-05-23  3:59   ` Minchan Kim
2011-05-23  3:59     ` Minchan Kim
2011-05-24  1:14     ` KOSAKI Motohiro
2011-05-24  1:14       ` KOSAKI Motohiro
2011-05-24  1:32       ` Minchan Kim
2011-05-24  1:32         ` Minchan Kim
2011-05-23  4:02   ` Minchan Kim
2011-05-23  4:02     ` Minchan Kim
2011-05-24  1:44     ` KOSAKI Motohiro
2011-05-24  1:44       ` KOSAKI Motohiro
2011-05-24  3:11       ` KOSAKI Motohiro
2011-05-24  3:11         ` KOSAKI Motohiro
2011-05-23 22:28   ` David Rientjes
2011-05-23 22:28     ` David Rientjes
2011-05-23 22:48     ` David Rientjes
2011-05-23 22:48       ` David Rientjes
2011-05-24  1:21       ` KOSAKI Motohiro
2011-05-24  1:21         ` KOSAKI Motohiro
2011-05-24  8:32       ` CAI Qian
2011-05-24  8:32         ` CAI Qian
2011-05-26  7:08       ` CAI Qian
2011-05-26  7:08         ` CAI Qian
2011-05-27 19:12         ` David Rientjes
2011-05-27 19:12           ` David Rientjes
2011-05-24  2:07     ` KOSAKI Motohiro
2011-05-24  2:07       ` KOSAKI Motohiro
2011-05-26  9:34   ` CAI Qian
2011-05-26  9:34     ` CAI Qian
2011-05-26  9:56     ` KOSAKI Motohiro
2011-05-26  9:56       ` KOSAKI Motohiro
2011-05-20  8:04 ` [PATCH 4/5] oom: don't kill random process KOSAKI Motohiro
2011-05-20  8:04   ` KOSAKI Motohiro
2011-05-23  4:31   ` Minchan Kim
2011-05-23  4:31     ` Minchan Kim
2011-05-24  1:53     ` KOSAKI Motohiro
2011-05-24  1:53       ` KOSAKI Motohiro
2011-05-24  8:46       ` Minchan Kim
2011-05-24  8:46         ` Minchan Kim
2011-05-24  8:49         ` KOSAKI Motohiro
2011-05-24  8:49           ` KOSAKI Motohiro
2011-05-24  9:04           ` Minchan Kim
2011-05-24  9:04             ` Minchan Kim
2011-05-24  9:09             ` KOSAKI Motohiro
2011-05-24  9:09               ` KOSAKI Motohiro
2011-05-24  9:20               ` Minchan Kim
2011-05-24  9:20                 ` Minchan Kim
2011-05-24  9:38                 ` KOSAKI Motohiro
2011-05-24  9:38                   ` KOSAKI Motohiro
2011-05-23 22:32   ` David Rientjes
2011-05-23 22:32     ` David Rientjes
2011-05-24  1:35     ` KOSAKI Motohiro
2011-05-24  1:35       ` KOSAKI Motohiro
2011-05-24  1:39       ` David Rientjes
2011-05-24  1:39         ` David Rientjes
2011-05-24  1:55         ` KOSAKI Motohiro
2011-05-24  1:55           ` KOSAKI Motohiro
2011-05-24  1:58           ` David Rientjes
2011-05-24  1:58             ` David Rientjes
2011-05-24  2:03             ` KOSAKI Motohiro [this message]
2011-05-24  2:03               ` KOSAKI Motohiro
2011-05-25 23:50               ` David Rientjes
2011-05-25 23:50                 ` David Rientjes
2011-05-30  1:17                 ` KOSAKI Motohiro
2011-05-30  1:17                   ` KOSAKI Motohiro
2011-05-31  4:48                   ` David Rientjes
2011-05-31  4:48                     ` David Rientjes
2011-05-31  4:54                     ` KOSAKI Motohiro
2011-05-31  4:54                       ` KOSAKI Motohiro
2011-05-20  8:05 ` [PATCH 5/5] oom: merge oom_kill_process() with oom_kill_task() KOSAKI Motohiro
2011-05-20  8:05   ` KOSAKI Motohiro
2011-05-31  1:33 ` [PATCH v2 0/5] Fix oom killer doesn't work at all if system have > gigabytes memory (aka CAI founded issue) CAI Qian
2011-05-31  1:33   ` CAI Qian
2011-05-31  4:10   ` KOSAKI Motohiro
2011-05-31  4:10     ` KOSAKI Motohiro
2011-05-31  4:14     ` CAI Qian
2011-05-31  4:14       ` CAI Qian
2011-05-31  4:34       ` KOSAKI Motohiro
2011-05-31  4:34         ` KOSAKI Motohiro
2011-05-31  4:49       ` KOSAKI Motohiro
2011-05-31  4:49         ` KOSAKI Motohiro
2011-05-31  4:32     ` KOSAKI Motohiro
2011-05-31  4:32       ` KOSAKI Motohiro
2011-05-31  4:52     ` CAI Qian
2011-05-31  4:52       ` CAI Qian
2011-05-31  7:04       ` KOSAKI Motohiro
2011-05-31  7:04         ` KOSAKI Motohiro
2011-05-31  7:50         ` CAI Qian
2011-05-31  7:50           ` CAI Qian
2011-05-31  7:56           ` KOSAKI Motohiro
2011-05-31  7:56             ` KOSAKI Motohiro
2011-05-31  7:59             ` CAI Qian
2011-05-31  7:59               ` CAI Qian
2011-05-31  8:11               ` KOSAKI Motohiro
2011-05-31  8:11                 ` KOSAKI Motohiro
2011-05-31 10:01                 ` KOSAKI Motohiro
2011-05-31 10:01                   ` KOSAKI Motohiro
2011-06-01  1:17                   ` CAI Qian
2011-06-01  1:17                     ` CAI Qian
2011-06-01  3:32                   ` Minchan Kim
2011-06-01  3:32                     ` Minchan Kim
2011-06-06  3:07                     ` KOSAKI Motohiro
2011-06-06  3:07                       ` KOSAKI Motohiro
2011-06-06 14:44                       ` Minchan Kim
2011-06-06 14:44                         ` Minchan Kim

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=4DDB11F4.2070903@jp.fujitsu.com \
    --to=kosaki.motohiro@jp.fujitsu.com \
    --cc=akpm@linux-foundation.org \
    --cc=caiqian@redhat.com \
    --cc=hughd@google.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=minchan.kim@gmail.com \
    --cc=oleg@redhat.com \
    --cc=rientjes@google.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.