All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Frias <sf84@laposte.net>
To: "Austin S. Hemmelgarn" <ahferroin7@gmail.com>,
	Michal Hocko <mhocko@kernel.org>
Cc: Mason <slash.tmp@free.fr>,
	linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mm: add config option to select the initial overcommit mode
Date: Fri, 13 May 2016 16:23:46 +0200	[thread overview]
Message-ID: <5735E372.1090609@laposte.net> (raw)
In-Reply-To: <f28d8bc3-a144-9a18-51de-5ac8ae38fd15@gmail.com>

Hi Austin,

On 05/13/2016 04:14 PM, Austin S. Hemmelgarn wrote:
> On 2016-05-13 09:34, Sebastian Frias wrote:
>> Hi Austin,
>>
>> On 05/13/2016 03:11 PM, Austin S. Hemmelgarn wrote:
>>> On 2016-05-13 08:39, Sebastian Frias wrote:
>>>>
>>>> My point is that it seems to be possible to deal with such conditions in a more controlled way, ie: a way that is less random and less abrupt.
>>> There's an option for the OOM-killer to just kill the allocating task instead of using the scoring heuristic.  This is about as deterministic as things can get though.
>>
>> By the way, why does it has to "kill" anything in that case?
>> I mean, shouldn't it just tell the allocating task that there's not enough memory by letting malloc return NULL?
> In theory, that's a great idea.  In practice though, it only works if:
> 1. The allocating task correctly handles malloc() (or whatever other function it uses) returning NULL, which a number of programs don't.
> 2. The task actually has fallback options for memory limits.  Many programs that do handle getting a NULL pointer from malloc() handle it by exiting anyway, so there's not as much value in this case.
> 3. There isn't a memory leak somewhere on the system.  Killing the allocating task doesn't help much if this is the case of course.

Well, the thing is that the current behaviour, i.e.: overcommiting, does not improves the quality of those programs.
I mean, what incentive do they have to properly handle situations 1, 2?

Also, if there's a memory leak, the termination of any task, whether it is the allocating task or something random, does not help either, the system will eventually go down, right?

> 
> You have to keep in mind though, that on a properly provisioned system, the only situations where the OOM killer should be invoked are when there's a memory leak, or when someone is intentionally trying to DoS the system through memory exhaustion. 

Exactly, the DoS attack is another reason why the OOM-killer does not seem a good idea, at least compared to just letting malloc return NULL and let the program fail.

>If you're hitting the OOM killer for any other reason than those or a kernel bug, then you just need more memory or more swap space.
> 

Indeed.

Best regards,

Sebastian

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

WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Frias <sf84@laposte.net>
To: "Austin S. Hemmelgarn" <ahferroin7@gmail.com>,
	Michal Hocko <mhocko@kernel.org>
Cc: Mason <slash.tmp@free.fr>,
	linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mm: add config option to select the initial overcommit mode
Date: Fri, 13 May 2016 16:23:46 +0200	[thread overview]
Message-ID: <5735E372.1090609@laposte.net> (raw)
In-Reply-To: <f28d8bc3-a144-9a18-51de-5ac8ae38fd15@gmail.com>

Hi Austin,

On 05/13/2016 04:14 PM, Austin S. Hemmelgarn wrote:
> On 2016-05-13 09:34, Sebastian Frias wrote:
>> Hi Austin,
>>
>> On 05/13/2016 03:11 PM, Austin S. Hemmelgarn wrote:
>>> On 2016-05-13 08:39, Sebastian Frias wrote:
>>>>
>>>> My point is that it seems to be possible to deal with such conditions in a more controlled way, ie: a way that is less random and less abrupt.
>>> There's an option for the OOM-killer to just kill the allocating task instead of using the scoring heuristic.  This is about as deterministic as things can get though.
>>
>> By the way, why does it has to "kill" anything in that case?
>> I mean, shouldn't it just tell the allocating task that there's not enough memory by letting malloc return NULL?
> In theory, that's a great idea.  In practice though, it only works if:
> 1. The allocating task correctly handles malloc() (or whatever other function it uses) returning NULL, which a number of programs don't.
> 2. The task actually has fallback options for memory limits.  Many programs that do handle getting a NULL pointer from malloc() handle it by exiting anyway, so there's not as much value in this case.
> 3. There isn't a memory leak somewhere on the system.  Killing the allocating task doesn't help much if this is the case of course.

Well, the thing is that the current behaviour, i.e.: overcommiting, does not improves the quality of those programs.
I mean, what incentive do they have to properly handle situations 1, 2?

Also, if there's a memory leak, the termination of any task, whether it is the allocating task or something random, does not help either, the system will eventually go down, right?

> 
> You have to keep in mind though, that on a properly provisioned system, the only situations where the OOM killer should be invoked are when there's a memory leak, or when someone is intentionally trying to DoS the system through memory exhaustion. 

Exactly, the DoS attack is another reason why the OOM-killer does not seem a good idea, at least compared to just letting malloc return NULL and let the program fail.

>If you're hitting the OOM killer for any other reason than those or a kernel bug, then you just need more memory or more swap space.
> 

Indeed.

Best regards,

Sebastian

  reply	other threads:[~2016-05-13 14:23 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-10 11:56 [PATCH] mm: add config option to select the initial overcommit mode Sebastian Frias
2016-05-10 11:56 ` Sebastian Frias
2016-05-10 12:00 ` Fwd: " Sebastian Frias
2016-05-10 12:39   ` Andy Whitcroft
2016-05-10 13:02     ` Sebastian Frias
2016-05-13  8:04 ` Michal Hocko
2016-05-13  8:04   ` Michal Hocko
2016-05-13  8:44   ` Mason
2016-05-13  8:44     ` Mason
2016-05-13  9:52     ` Sebastian Frias
2016-05-13  9:52       ` Sebastian Frias
2016-05-13 12:00       ` Michal Hocko
2016-05-13 12:00         ` Michal Hocko
2016-05-13 12:39         ` Sebastian Frias
2016-05-13 12:39           ` Sebastian Frias
2016-05-13 13:11           ` Austin S. Hemmelgarn
2016-05-13 13:11             ` Austin S. Hemmelgarn
2016-05-13 13:32             ` Sebastian Frias
2016-05-13 13:32               ` Sebastian Frias
2016-05-13 13:51               ` Austin S. Hemmelgarn
2016-05-13 13:51                 ` Austin S. Hemmelgarn
2016-05-13 14:35                 ` Sebastian Frias
2016-05-13 14:35                   ` Sebastian Frias
2016-05-13 14:54                   ` Michal Hocko
2016-05-13 14:54                     ` Michal Hocko
2016-05-13 15:15                   ` Austin S. Hemmelgarn
2016-05-13 15:15                     ` Austin S. Hemmelgarn
2016-05-13 13:34             ` Sebastian Frias
2016-05-13 13:34               ` Sebastian Frias
2016-05-13 14:14               ` Austin S. Hemmelgarn
2016-05-13 14:14                 ` Austin S. Hemmelgarn
2016-05-13 14:23                 ` Sebastian Frias [this message]
2016-05-13 14:23                   ` Sebastian Frias
2016-05-13 15:02                   ` Austin S. Hemmelgarn
2016-05-13 15:02                     ` Austin S. Hemmelgarn
2016-05-13 15:01               ` One Thousand Gnomes
2016-05-13 15:01                 ` One Thousand Gnomes
2016-05-13 15:15                 ` Sebastian Frias
2016-05-13 15:15                   ` Sebastian Frias
2016-05-13 15:25                   ` Michal Hocko
2016-05-13 15:25                     ` Michal Hocko
2016-05-13 14:51           ` Michal Hocko
2016-05-13 14:51             ` Michal Hocko
2016-05-13 14:59             ` Mason
2016-05-13 14:59               ` Mason
2016-05-13 15:11               ` One Thousand Gnomes
2016-05-13 15:11                 ` One Thousand Gnomes
2016-05-13 15:26                 ` Michal Hocko
2016-05-13 15:26                   ` Michal Hocko
2016-05-13 15:32                 ` Sebastian Frias
2016-05-13 15:32                   ` Sebastian Frias
2016-05-13 15:10             ` Sebastian Frias
2016-05-13 15:10               ` Sebastian Frias
2016-05-13 15:41               ` One Thousand Gnomes
2016-05-13 15:41                 ` One Thousand Gnomes
2016-05-23 13:11                 ` Sebastian Frias
2016-05-23 13:11                   ` Sebastian Frias
2016-05-13  9:52     ` Michal Hocko
2016-05-13  9:52       ` Michal Hocko
2016-05-13 10:18       ` Mason
2016-05-13 10:18         ` Mason
2016-05-13 10:42         ` Sebastian Frias
2016-05-13 10:42           ` Sebastian Frias
2016-05-13 11:44         ` Michal Hocko
2016-05-13 11:44           ` Michal Hocko
2016-05-13 12:15           ` Mason
2016-05-13 12:15             ` Mason
2016-05-13 14:01             ` Michal Hocko
2016-05-13 14:01               ` Michal Hocko
2016-05-13 14:15               ` Sebastian Frias
2016-05-13 14:15                 ` Sebastian Frias
2016-05-13 15:04               ` One Thousand Gnomes
2016-05-13 15:04                 ` One Thousand Gnomes
2016-05-13 15:37                 ` Sebastian Frias
2016-05-13 15:37                   ` Sebastian Frias
2016-05-13 15:43                   ` One Thousand Gnomes
2016-05-13 15:43                     ` One Thousand Gnomes
2016-05-17  8:24                     ` Sebastian Frias
2016-05-17  8:24                       ` Sebastian Frias
2016-05-17  8:57                       ` Michal Hocko
2016-05-17  8:57                         ` Michal Hocko
2016-05-17 16:16                         ` Sebastian Frias
2016-05-17 16:16                           ` Sebastian Frias
2016-05-17 17:29                           ` Austin S. Hemmelgarn
2016-05-17 17:29                             ` Austin S. Hemmelgarn
2016-05-18 15:19                             ` Sebastian Frias
2016-05-18 15:19                               ` Sebastian Frias
2016-05-18 16:28                               ` Austin S. Hemmelgarn
2016-05-18 16:28                                 ` Austin S. Hemmelgarn
2016-05-17 20:16                           ` Michal Hocko
2016-05-17 20:16                             ` Michal Hocko
2016-05-18 15:18                             ` Sebastian Frias
2016-05-18 15:18                               ` Sebastian Frias
2016-05-19  7:14                               ` Michal Hocko
2016-05-19  7:14                                 ` Michal Hocko
2016-05-13 17:01                   ` Austin S. Hemmelgarn
2016-05-13 17:01                     ` Austin S. Hemmelgarn
2016-05-13 13:27         ` Austin S. Hemmelgarn
2016-05-13 13:27           ` Austin S. Hemmelgarn
2016-05-17  9:03 ` Mason
2016-05-17  9:03   ` Mason

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=5735E372.1090609@laposte.net \
    --to=sf84@laposte.net \
    --cc=ahferroin7@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=slash.tmp@free.fr \
    --cc=torvalds@linux-foundation.org \
    /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.