All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlastimil Babka <vbabka@suse.cz>
To: Michal Hocko <mhocko@kernel.org>, Hugh Dickins <hughd@google.com>,
	Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Mel Gorman <mgorman@suse.de>,
	David Rientjes <rientjes@google.com>,
	Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	Hillf Danton <hillf.zj@alibaba-inc.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
	Joonsoo Kim <js1304@gmail.com>
Subject: Re: [PATCH] mm, oom: protect !costly allocations some more
Date: Tue, 8 Mar 2016 10:24:56 +0100	[thread overview]
Message-ID: <56DE9A68.2010301@suse.cz> (raw)
In-Reply-To: <20160307160838.GB5028@dhcp22.suse.cz>

On 03/07/2016 05:08 PM, Michal Hocko wrote:
> On Mon 29-02-16 22:02:13, Michal Hocko wrote:
>> Andrew,
>> could you queue this one as well, please? This is more a band aid than a
>> real solution which I will be working on as soon as I am able to
>> reproduce the issue but the patch should help to some degree at least.
> 
> Joonsoo wasn't very happy about this approach so let me try a different
> way. What do you think about the following? Hugh, Sergey does it help
> for your load? I have tested it with the Hugh's load and there was no
> major difference from the previous testing so at least nothing has blown
> up as I am not able to reproduce the issue here.
> 
> Other changes in the compaction are still needed but I would like to not
> depend on them right now.
> ---
> From 0974f127e8eb7fe53e65f3a8b398db57effe9755 Mon Sep 17 00:00:00 2001
> From: Michal Hocko <mhocko@suse.com>
> Date: Mon, 7 Mar 2016 15:30:37 +0100
> Subject: [PATCH] mm, oom: protect !costly allocations some more
> 
> should_reclaim_retry will give up retries for higher order allocations
> if none of the eligible zones has any requested or higher order pages
> available even if we pass the watermak check for order-0. This is done
> because there is no guarantee that the reclaimable and currently free
> pages will form the required order.
> 
> This can, however, lead to situations were the high-order request (e.g.
> order-2 required for the stack allocation during fork) will trigger
> OOM too early - e.g. after the first reclaim/compaction round. Such a
> system would have to be highly fragmented and there is no guarantee
> further reclaim/compaction attempts would help but at least make sure
> that the compaction was active before we go OOM and keep retrying even
> if should_reclaim_retry tells us to oom if the last compaction round
> was either inactive (deferred, skipped or bailed out early due to
> contention) or it told us to continue.
> 
> Additionally define COMPACT_NONE which reflects cases where the
> compaction is completely disabled.
> 
> Signed-off-by: Michal Hocko <mhocko@suse.com>
> ---
>  include/linux/compaction.h |  2 ++
>  mm/page_alloc.c            | 41 ++++++++++++++++++++++++-----------------
>  2 files changed, 26 insertions(+), 17 deletions(-)
> 
> diff --git a/include/linux/compaction.h b/include/linux/compaction.h
> index 4cd4ddf64cc7..a4cec4a03f7d 100644
> --- a/include/linux/compaction.h
> +++ b/include/linux/compaction.h
> @@ -1,6 +1,8 @@
>  #ifndef _LINUX_COMPACTION_H
>  #define _LINUX_COMPACTION_H
>  
> +/* compaction disabled */
> +#define COMPACT_NONE		-1
>  /* Return values for compact_zone() and try_to_compact_pages() */
>  /* compaction didn't start as it was deferred due to past failures */
>  #define COMPACT_DEFERRED	0
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 269a04f20927..f89e3cbfdf90 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2819,28 +2819,22 @@ static struct page *
>  __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
>  		int alloc_flags, const struct alloc_context *ac,
>  		enum migrate_mode mode, int *contended_compaction,
> -		bool *deferred_compaction)
> +		unsigned long *compact_result)
>  {
> -	unsigned long compact_result;
>  	struct page *page;
>  
> -	if (!order)
> +	if (!order) {
> +		*compact_result = COMPACT_NONE;
>  		return NULL;
> +	}
>  
>  	current->flags |= PF_MEMALLOC;
> -	compact_result = try_to_compact_pages(gfp_mask, order, alloc_flags, ac,
> +	*compact_result = try_to_compact_pages(gfp_mask, order, alloc_flags, ac,
>  						mode, contended_compaction);
>  	current->flags &= ~PF_MEMALLOC;
>  
> -	switch (compact_result) {
> -	case COMPACT_DEFERRED:
> -		*deferred_compaction = true;
> -		/* fall-through */
> -	case COMPACT_SKIPPED:
> +	if (*compact_result <= COMPACT_SKIPPED)

COMPACT_NONE is -1 and compact_result is unsigned long, so this won't
work as expected.

>  		return NULL;
> -	default:
> -		break;
> -	}
>  
>  	/*
>  	 * At least in one zone compaction wasn't deferred or skipped, so let's
> @@ -2875,8 +2869,9 @@ static inline struct page *
>  __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
>  		int alloc_flags, const struct alloc_context *ac,
>  		enum migrate_mode mode, int *contended_compaction,
> -		bool *deferred_compaction)
> +		unsigned long *compact_result)
>  {
> +	*compact_result = COMPACT_NONE;
>  	return NULL;
>  }
>  #endif /* CONFIG_COMPACTION */
> @@ -3118,7 +3113,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  	int alloc_flags;
>  	unsigned long did_some_progress;
>  	enum migrate_mode migration_mode = MIGRATE_ASYNC;
> -	bool deferred_compaction = false;
> +	unsigned long compact_result;
>  	int contended_compaction = COMPACT_CONTENDED_NONE;
>  	int no_progress_loops = 0;
>  
> @@ -3227,7 +3222,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  	page = __alloc_pages_direct_compact(gfp_mask, order, alloc_flags, ac,
>  					migration_mode,
>  					&contended_compaction,
> -					&deferred_compaction);
> +					&compact_result);
>  	if (page)
>  		goto got_pg;
>  
> @@ -3240,7 +3235,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  		 * to heavily disrupt the system, so we fail the allocation
>  		 * instead of entering direct reclaim.
>  		 */
> -		if (deferred_compaction)
> +		if (compact_result == COMPACT_DEFERRED)
>  			goto nopage;
>  
>  		/*
> @@ -3294,6 +3289,18 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  				 did_some_progress > 0, no_progress_loops))
>  		goto retry;
>  
> +	/*
> +	 * !costly allocations are really important and we have to make sure
> +	 * the compaction wasn't deferred or didn't bail out early due to locks
> +	 * contention before we go OOM.
> +	 */
> +	if (order && order <= PAGE_ALLOC_COSTLY_ORDER) {
> +		if (compact_result <= COMPACT_CONTINUE)

Same here.
I was going to say that this didn't have effect on Sergey's test, but
turns out it did :)

> +			goto retry;
> +		if (contended_compaction > COMPACT_CONTENDED_NONE)
> +			goto retry;
> +	}
> +
>  	/* Reclaim has failed us, start killing things */
>  	page = __alloc_pages_may_oom(gfp_mask, order, ac, &did_some_progress);
>  	if (page)
> @@ -3314,7 +3321,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  	page = __alloc_pages_direct_compact(gfp_mask, order, alloc_flags,
>  					    ac, migration_mode,
>  					    &contended_compaction,
> -					    &deferred_compaction);
> +					    &compact_result);
>  	if (page)
>  		goto got_pg;
>  nopage:
> 

--
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: Vlastimil Babka <vbabka@suse.cz>
To: Michal Hocko <mhocko@kernel.org>, Hugh Dickins <hughd@google.com>,
	Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Mel Gorman <mgorman@suse.de>,
	David Rientjes <rientjes@google.com>,
	Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	Hillf Danton <hillf.zj@alibaba-inc.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
	Joonsoo Kim <js1304@gmail.com>
Subject: Re: [PATCH] mm, oom: protect !costly allocations some more
Date: Tue, 8 Mar 2016 10:24:56 +0100	[thread overview]
Message-ID: <56DE9A68.2010301@suse.cz> (raw)
In-Reply-To: <20160307160838.GB5028@dhcp22.suse.cz>

On 03/07/2016 05:08 PM, Michal Hocko wrote:
> On Mon 29-02-16 22:02:13, Michal Hocko wrote:
>> Andrew,
>> could you queue this one as well, please? This is more a band aid than a
>> real solution which I will be working on as soon as I am able to
>> reproduce the issue but the patch should help to some degree at least.
> 
> Joonsoo wasn't very happy about this approach so let me try a different
> way. What do you think about the following? Hugh, Sergey does it help
> for your load? I have tested it with the Hugh's load and there was no
> major difference from the previous testing so at least nothing has blown
> up as I am not able to reproduce the issue here.
> 
> Other changes in the compaction are still needed but I would like to not
> depend on them right now.
> ---
> From 0974f127e8eb7fe53e65f3a8b398db57effe9755 Mon Sep 17 00:00:00 2001
> From: Michal Hocko <mhocko@suse.com>
> Date: Mon, 7 Mar 2016 15:30:37 +0100
> Subject: [PATCH] mm, oom: protect !costly allocations some more
> 
> should_reclaim_retry will give up retries for higher order allocations
> if none of the eligible zones has any requested or higher order pages
> available even if we pass the watermak check for order-0. This is done
> because there is no guarantee that the reclaimable and currently free
> pages will form the required order.
> 
> This can, however, lead to situations were the high-order request (e.g.
> order-2 required for the stack allocation during fork) will trigger
> OOM too early - e.g. after the first reclaim/compaction round. Such a
> system would have to be highly fragmented and there is no guarantee
> further reclaim/compaction attempts would help but at least make sure
> that the compaction was active before we go OOM and keep retrying even
> if should_reclaim_retry tells us to oom if the last compaction round
> was either inactive (deferred, skipped or bailed out early due to
> contention) or it told us to continue.
> 
> Additionally define COMPACT_NONE which reflects cases where the
> compaction is completely disabled.
> 
> Signed-off-by: Michal Hocko <mhocko@suse.com>
> ---
>  include/linux/compaction.h |  2 ++
>  mm/page_alloc.c            | 41 ++++++++++++++++++++++++-----------------
>  2 files changed, 26 insertions(+), 17 deletions(-)
> 
> diff --git a/include/linux/compaction.h b/include/linux/compaction.h
> index 4cd4ddf64cc7..a4cec4a03f7d 100644
> --- a/include/linux/compaction.h
> +++ b/include/linux/compaction.h
> @@ -1,6 +1,8 @@
>  #ifndef _LINUX_COMPACTION_H
>  #define _LINUX_COMPACTION_H
>  
> +/* compaction disabled */
> +#define COMPACT_NONE		-1
>  /* Return values for compact_zone() and try_to_compact_pages() */
>  /* compaction didn't start as it was deferred due to past failures */
>  #define COMPACT_DEFERRED	0
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 269a04f20927..f89e3cbfdf90 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2819,28 +2819,22 @@ static struct page *
>  __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
>  		int alloc_flags, const struct alloc_context *ac,
>  		enum migrate_mode mode, int *contended_compaction,
> -		bool *deferred_compaction)
> +		unsigned long *compact_result)
>  {
> -	unsigned long compact_result;
>  	struct page *page;
>  
> -	if (!order)
> +	if (!order) {
> +		*compact_result = COMPACT_NONE;
>  		return NULL;
> +	}
>  
>  	current->flags |= PF_MEMALLOC;
> -	compact_result = try_to_compact_pages(gfp_mask, order, alloc_flags, ac,
> +	*compact_result = try_to_compact_pages(gfp_mask, order, alloc_flags, ac,
>  						mode, contended_compaction);
>  	current->flags &= ~PF_MEMALLOC;
>  
> -	switch (compact_result) {
> -	case COMPACT_DEFERRED:
> -		*deferred_compaction = true;
> -		/* fall-through */
> -	case COMPACT_SKIPPED:
> +	if (*compact_result <= COMPACT_SKIPPED)

COMPACT_NONE is -1 and compact_result is unsigned long, so this won't
work as expected.

>  		return NULL;
> -	default:
> -		break;
> -	}
>  
>  	/*
>  	 * At least in one zone compaction wasn't deferred or skipped, so let's
> @@ -2875,8 +2869,9 @@ static inline struct page *
>  __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
>  		int alloc_flags, const struct alloc_context *ac,
>  		enum migrate_mode mode, int *contended_compaction,
> -		bool *deferred_compaction)
> +		unsigned long *compact_result)
>  {
> +	*compact_result = COMPACT_NONE;
>  	return NULL;
>  }
>  #endif /* CONFIG_COMPACTION */
> @@ -3118,7 +3113,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  	int alloc_flags;
>  	unsigned long did_some_progress;
>  	enum migrate_mode migration_mode = MIGRATE_ASYNC;
> -	bool deferred_compaction = false;
> +	unsigned long compact_result;
>  	int contended_compaction = COMPACT_CONTENDED_NONE;
>  	int no_progress_loops = 0;
>  
> @@ -3227,7 +3222,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  	page = __alloc_pages_direct_compact(gfp_mask, order, alloc_flags, ac,
>  					migration_mode,
>  					&contended_compaction,
> -					&deferred_compaction);
> +					&compact_result);
>  	if (page)
>  		goto got_pg;
>  
> @@ -3240,7 +3235,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  		 * to heavily disrupt the system, so we fail the allocation
>  		 * instead of entering direct reclaim.
>  		 */
> -		if (deferred_compaction)
> +		if (compact_result == COMPACT_DEFERRED)
>  			goto nopage;
>  
>  		/*
> @@ -3294,6 +3289,18 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  				 did_some_progress > 0, no_progress_loops))
>  		goto retry;
>  
> +	/*
> +	 * !costly allocations are really important and we have to make sure
> +	 * the compaction wasn't deferred or didn't bail out early due to locks
> +	 * contention before we go OOM.
> +	 */
> +	if (order && order <= PAGE_ALLOC_COSTLY_ORDER) {
> +		if (compact_result <= COMPACT_CONTINUE)

Same here.
I was going to say that this didn't have effect on Sergey's test, but
turns out it did :)

> +			goto retry;
> +		if (contended_compaction > COMPACT_CONTENDED_NONE)
> +			goto retry;
> +	}
> +
>  	/* Reclaim has failed us, start killing things */
>  	page = __alloc_pages_may_oom(gfp_mask, order, ac, &did_some_progress);
>  	if (page)
> @@ -3314,7 +3321,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
>  	page = __alloc_pages_direct_compact(gfp_mask, order, alloc_flags,
>  					    ac, migration_mode,
>  					    &contended_compaction,
> -					    &deferred_compaction);
> +					    &compact_result);
>  	if (page)
>  		goto got_pg;
>  nopage:
> 

  parent reply	other threads:[~2016-03-08  9:25 UTC|newest]

Thread overview: 299+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-15 18:19 [PATCH 0/3] OOM detection rework v4 Michal Hocko
2015-12-15 18:19 ` Michal Hocko
2015-12-15 18:19 ` [PATCH 1/3] mm, oom: rework oom detection Michal Hocko
2015-12-15 18:19   ` Michal Hocko
2016-01-14 22:58   ` David Rientjes
2016-01-14 22:58     ` David Rientjes
2016-01-16  1:07     ` Tetsuo Handa
2016-01-16  1:07       ` Tetsuo Handa
2016-01-19 22:48       ` David Rientjes
2016-01-19 22:48         ` David Rientjes
2016-01-20 11:13         ` Tetsuo Handa
2016-01-20 11:13           ` Tetsuo Handa
2016-01-20 13:13           ` Michal Hocko
2016-01-20 13:13             ` Michal Hocko
2016-04-04  8:23   ` Vladimir Davydov
2016-04-04  8:23     ` Vladimir Davydov
2016-04-04  9:42     ` Michal Hocko
2016-04-04  9:42       ` Michal Hocko
2015-12-15 18:19 ` [PATCH 2/3] mm: throttle on IO only when there are too many dirty and writeback pages Michal Hocko
2015-12-15 18:19   ` Michal Hocko
2016-03-17 11:35   ` Tetsuo Handa
2016-03-17 11:35     ` Tetsuo Handa
2016-03-17 12:01     ` Michal Hocko
2016-03-17 12:01       ` Michal Hocko
2015-12-15 18:19 ` [PATCH 3/3] mm: use watermak checks for __GFP_REPEAT high order allocations Michal Hocko
2015-12-15 18:19   ` Michal Hocko
2015-12-16 23:35 ` [PATCH 0/3] OOM detection rework v4 Andrew Morton
2015-12-16 23:35   ` Andrew Morton
2015-12-18 12:12   ` Michal Hocko
2015-12-18 12:12     ` Michal Hocko
2015-12-16 23:58 ` Andrew Morton
2015-12-16 23:58   ` Andrew Morton
2015-12-18 13:15   ` Michal Hocko
2015-12-18 13:15     ` Michal Hocko
2015-12-18 16:35     ` Johannes Weiner
2015-12-18 16:35       ` Johannes Weiner
2015-12-24 12:41 ` Tetsuo Handa
2015-12-24 12:41   ` Tetsuo Handa
2015-12-28 12:08   ` Tetsuo Handa
2015-12-28 12:08     ` Tetsuo Handa
2015-12-28 14:13     ` Tetsuo Handa
2015-12-28 14:13       ` Tetsuo Handa
2016-01-06 12:44       ` Vlastimil Babka
2016-01-06 12:44         ` Vlastimil Babka
2016-01-08 12:37       ` Michal Hocko
2016-01-08 12:37         ` Michal Hocko
2015-12-29 16:32     ` Michal Hocko
2015-12-29 16:32       ` Michal Hocko
2015-12-30 15:05       ` Tetsuo Handa
2015-12-30 15:05         ` Tetsuo Handa
2016-01-02 15:47         ` Tetsuo Handa
2016-01-02 15:47           ` Tetsuo Handa
2016-01-20 12:24           ` Michal Hocko
2016-01-20 12:24             ` Michal Hocko
2016-01-27 23:18             ` David Rientjes
2016-01-27 23:18               ` David Rientjes
2016-01-28 21:19               ` Michal Hocko
2016-01-28 21:19                 ` Michal Hocko
2015-12-29 16:27   ` Michal Hocko
2015-12-29 16:27     ` Michal Hocko
2016-01-28 20:40 ` [PATCH 4/3] mm, oom: drop the last allocation attempt before out_of_memory Michal Hocko
2016-01-28 20:40   ` Michal Hocko
2016-01-28 21:36   ` Johannes Weiner
2016-01-28 21:36     ` Johannes Weiner
2016-01-28 23:19     ` David Rientjes
2016-01-28 23:19       ` David Rientjes
2016-01-28 23:51       ` Johannes Weiner
2016-01-28 23:51         ` Johannes Weiner
2016-01-29 10:39         ` Tetsuo Handa
2016-01-29 10:39           ` Tetsuo Handa
2016-01-29 15:32         ` Michal Hocko
2016-01-29 15:32           ` Michal Hocko
2016-01-30 12:18           ` Tetsuo Handa
2016-01-30 12:18             ` Tetsuo Handa
2016-01-29 15:23       ` Michal Hocko
2016-01-29 15:23         ` Michal Hocko
2016-01-29 15:24     ` Michal Hocko
2016-01-29 15:24       ` Michal Hocko
2016-01-28 21:19 ` [PATCH 5/3] mm, vmscan: make zone_reclaimable_pages more precise Michal Hocko
2016-01-28 21:19   ` Michal Hocko
2016-01-28 23:20   ` David Rientjes
2016-01-28 23:20     ` David Rientjes
2016-01-29  3:41   ` Hillf Danton
2016-01-29  3:41     ` Hillf Danton
2016-01-29 10:35   ` Tetsuo Handa
2016-01-29 10:35     ` Tetsuo Handa
2016-01-29 15:17     ` Michal Hocko
2016-01-29 15:17       ` Michal Hocko
2016-01-29 21:30       ` Tetsuo Handa
2016-01-29 21:30         ` Tetsuo Handa
2016-02-03 13:27 ` [PATCH 0/3] OOM detection rework v4 Michal Hocko
2016-02-03 13:27   ` Michal Hocko
2016-02-03 22:58   ` David Rientjes
2016-02-03 22:58     ` David Rientjes
2016-02-04 12:57     ` Michal Hocko
2016-02-04 12:57       ` Michal Hocko
2016-02-04 13:10       ` Tetsuo Handa
2016-02-04 13:10         ` Tetsuo Handa
2016-02-04 13:39         ` Michal Hocko
2016-02-04 13:39           ` Michal Hocko
2016-02-04 14:24           ` Michal Hocko
2016-02-04 14:24             ` Michal Hocko
2016-02-07  4:09           ` Tetsuo Handa
2016-02-07  4:09             ` Tetsuo Handa
2016-02-15 20:06             ` Michal Hocko
2016-02-15 20:06               ` Michal Hocko
2016-02-16 13:10               ` Tetsuo Handa
2016-02-16 13:10                 ` Tetsuo Handa
2016-02-16 15:19                 ` Michal Hocko
2016-02-16 15:19                   ` Michal Hocko
2016-02-25  3:47   ` Hugh Dickins
2016-02-25  3:47     ` Hugh Dickins
2016-02-25  6:48     ` Sergey Senozhatsky
2016-02-25  6:48       ` Sergey Senozhatsky
2016-02-25  9:17       ` Hillf Danton
2016-02-25  9:17         ` Hillf Danton
2016-02-25  9:27         ` Michal Hocko
2016-02-25  9:27           ` Michal Hocko
2016-02-25  9:48           ` Hillf Danton
2016-02-25  9:48             ` Hillf Danton
2016-02-25 11:02             ` Sergey Senozhatsky
2016-02-25 11:02               ` Sergey Senozhatsky
2016-02-25  9:23     ` Michal Hocko
2016-02-25  9:23       ` Michal Hocko
2016-02-26  6:32       ` Hugh Dickins
2016-02-26  6:32         ` Hugh Dickins
2016-02-26  7:54         ` Hillf Danton
2016-02-26  7:54           ` Hillf Danton
2016-02-26  9:24           ` Michal Hocko
2016-02-26  9:24             ` Michal Hocko
2016-02-26 10:27             ` Hillf Danton
2016-02-26 10:27               ` Hillf Danton
2016-02-26 13:49               ` Michal Hocko
2016-02-26 13:49                 ` Michal Hocko
2016-02-26  9:33         ` Michal Hocko
2016-02-26  9:33           ` Michal Hocko
2016-02-29 21:02       ` Michal Hocko
2016-02-29 21:02         ` Michal Hocko
2016-03-02  2:19         ` Joonsoo Kim
2016-03-02  2:19           ` Joonsoo Kim
2016-03-02  9:50           ` Michal Hocko
2016-03-02  9:50             ` Michal Hocko
2016-03-02 13:32             ` Joonsoo Kim
2016-03-02 13:32               ` Joonsoo Kim
2016-03-02 14:06               ` Michal Hocko
2016-03-02 14:06                 ` Michal Hocko
2016-03-02 14:34                 ` Joonsoo Kim
2016-03-02 14:34                   ` Joonsoo Kim
2016-03-03  9:26                   ` Michal Hocko
2016-03-03  9:26                     ` Michal Hocko
2016-03-03 10:29                     ` Tetsuo Handa
2016-03-03 10:29                       ` Tetsuo Handa
2016-03-03 14:10                     ` Joonsoo Kim
2016-03-03 14:10                       ` Joonsoo Kim
2016-03-03 15:25                       ` Michal Hocko
2016-03-03 15:25                         ` Michal Hocko
2016-03-04  5:23                         ` Joonsoo Kim
2016-03-04  5:23                           ` Joonsoo Kim
2016-03-04 15:15                           ` Michal Hocko
2016-03-04 15:15                             ` Michal Hocko
2016-03-04 17:39                             ` Michal Hocko
2016-03-04 17:39                               ` Michal Hocko
2016-03-07  5:23                             ` Joonsoo Kim
2016-03-07  5:23                               ` Joonsoo Kim
2016-03-03 15:50                       ` Vlastimil Babka
2016-03-03 15:50                         ` Vlastimil Babka
2016-03-03 16:26                         ` Michal Hocko
2016-03-03 16:26                           ` Michal Hocko
2016-03-04  7:10                         ` Joonsoo Kim
2016-03-04  7:10                           ` Joonsoo Kim
2016-03-02 15:01             ` Minchan Kim
2016-03-02 15:01               ` Minchan Kim
2016-03-07 16:08         ` [PATCH] mm, oom: protect !costly allocations some more (was: Re: [PATCH 0/3] OOM detection rework v4) Michal Hocko
2016-03-07 16:08           ` Michal Hocko
2016-03-08  3:51           ` Sergey Senozhatsky
2016-03-08  3:51             ` Sergey Senozhatsky
2016-03-08  9:08             ` Michal Hocko
2016-03-08  9:08               ` Michal Hocko
2016-03-08  9:24               ` Sergey Senozhatsky
2016-03-08  9:24                 ` Sergey Senozhatsky
2016-03-08  9:24           ` Vlastimil Babka [this message]
2016-03-08  9:24             ` [PATCH] mm, oom: protect !costly allocations some more Vlastimil Babka
2016-03-08  9:32             ` Sergey Senozhatsky
2016-03-08  9:32               ` Sergey Senozhatsky
2016-03-08  9:46             ` Michal Hocko
2016-03-08  9:46               ` Michal Hocko
2016-03-08  9:52               ` Vlastimil Babka
2016-03-08  9:52                 ` Vlastimil Babka
2016-03-08 10:10                 ` Michal Hocko
2016-03-08 10:10                   ` Michal Hocko
2016-03-08 11:12                   ` Vlastimil Babka
2016-03-08 11:12                     ` Vlastimil Babka
2016-03-08 12:22                     ` Michal Hocko
2016-03-08 12:22                       ` Michal Hocko
2016-03-08 12:29                       ` Vlastimil Babka
2016-03-08 12:29                         ` Vlastimil Babka
2016-03-08  9:58           ` [PATCH] mm, oom: protect !costly allocations some more (was: Re: [PATCH 0/3] OOM detection rework v4) Sergey Senozhatsky
2016-03-08  9:58             ` Sergey Senozhatsky
2016-03-08 13:57             ` Michal Hocko
2016-03-08 13:57               ` Michal Hocko
2016-03-08 10:36           ` Hugh Dickins
2016-03-08 13:42           ` [PATCH 0/2] oom rework: high order enahncements Michal Hocko
2016-03-08 13:42             ` Michal Hocko
2016-03-08 13:42             ` [PATCH 1/3] mm, compaction: change COMPACT_ constants into enum Michal Hocko
2016-03-08 13:42               ` Michal Hocko
2016-03-08 14:19               ` Vlastimil Babka
2016-03-08 14:19                 ` Vlastimil Babka
2016-03-09  3:55               ` Hillf Danton
2016-03-09  3:55                 ` Hillf Danton
2016-03-08 13:42             ` [PATCH 2/3] mm, compaction: cover all compaction mode in compact_zone Michal Hocko
2016-03-08 13:42               ` Michal Hocko
2016-03-08 14:22               ` Vlastimil Babka
2016-03-08 14:22                 ` Vlastimil Babka
2016-03-09  3:57               ` Hillf Danton
2016-03-09  3:57                 ` Hillf Danton
2016-03-08 13:42             ` [PATCH 3/3] mm, oom: protect !costly allocations some more Michal Hocko
2016-03-08 13:42               ` Michal Hocko
2016-03-08 14:34               ` Vlastimil Babka
2016-03-08 14:34                 ` Vlastimil Babka
2016-03-08 14:48                 ` Michal Hocko
2016-03-08 14:48                   ` Michal Hocko
2016-03-08 15:03                   ` Vlastimil Babka
2016-03-08 15:03                     ` Vlastimil Babka
2016-03-09 11:11               ` Michal Hocko
2016-03-09 11:11                 ` Michal Hocko
2016-03-09 14:07                 ` Vlastimil Babka
2016-03-09 14:07                   ` Vlastimil Babka
2016-03-11 12:17                 ` Hugh Dickins
2016-03-11 12:17                   ` Hugh Dickins
2016-03-11 13:06                   ` Michal Hocko
2016-03-11 13:06                     ` Michal Hocko
2016-03-11 19:08                     ` Hugh Dickins
2016-03-11 19:08                       ` Hugh Dickins
2016-03-14 16:21                       ` Michal Hocko
2016-03-14 16:21                         ` Michal Hocko
2016-03-08 15:19           ` [PATCH] mm, oom: protect !costly allocations some more (was: Re: [PATCH 0/3] OOM detection rework v4) Joonsoo Kim
2016-03-08 15:19             ` Joonsoo Kim
2016-03-08 16:05             ` Michal Hocko
2016-03-08 16:05               ` Michal Hocko
2016-03-08 17:03               ` Joonsoo Kim
2016-03-08 17:03                 ` Joonsoo Kim
2016-03-09 10:41                 ` Michal Hocko
2016-03-09 10:41                   ` Michal Hocko
2016-03-11 14:53                   ` Joonsoo Kim
2016-03-11 14:53                     ` Joonsoo Kim
2016-03-11 15:20                     ` Michal Hocko
2016-03-11 15:20                       ` Michal Hocko
2016-02-29 20:35     ` [PATCH 0/3] OOM detection rework v4 Michal Hocko
2016-03-01  7:29       ` Hugh Dickins
2016-03-01  7:29         ` Hugh Dickins
2016-03-01 13:38         ` Michal Hocko
2016-03-01 13:38           ` Michal Hocko
2016-03-01 14:40           ` Michal Hocko
2016-03-01 14:40             ` Michal Hocko
2016-03-01 18:14           ` Vlastimil Babka
2016-03-01 18:14             ` Vlastimil Babka
2016-03-02  2:55             ` Joonsoo Kim
2016-03-02  2:55               ` Joonsoo Kim
2016-03-02 12:37               ` Michal Hocko
2016-03-02 12:37                 ` Michal Hocko
2016-03-02 14:06                 ` Joonsoo Kim
2016-03-02 14:06                   ` Joonsoo Kim
2016-03-02 12:24             ` Michal Hocko
2016-03-02 13:00               ` Michal Hocko
2016-03-02 13:22               ` Vlastimil Babka
2016-03-02 13:22                 ` Vlastimil Babka
2016-03-02  2:28           ` Joonsoo Kim
2016-03-02  2:28             ` Joonsoo Kim
2016-03-02 12:39             ` Michal Hocko
2016-03-02 12:39               ` Michal Hocko
2016-03-03  9:54           ` Hugh Dickins
2016-03-03 12:32             ` Michal Hocko
2016-03-03 12:32               ` Michal Hocko
2016-03-03 20:57               ` Hugh Dickins
2016-03-03 20:57                 ` Hugh Dickins
2016-03-04  7:41                 ` Vlastimil Babka
2016-03-04  7:41                   ` Vlastimil Babka
2016-03-04  7:53             ` Joonsoo Kim
2016-03-04  7:53               ` Joonsoo Kim
2016-03-04 12:28             ` Michal Hocko
2016-03-04 12:28               ` Michal Hocko
2016-03-11 10:45 ` Tetsuo Handa
2016-03-11 10:45   ` Tetsuo Handa
2016-03-11 13:08   ` Michal Hocko
2016-03-11 13:08     ` Michal Hocko
2016-03-11 13:32     ` Tetsuo Handa
2016-03-11 13:32       ` Tetsuo Handa
2016-03-11 15:28       ` Michal Hocko
2016-03-11 15:28         ` Michal Hocko
2016-03-11 16:49         ` Tetsuo Handa
2016-03-11 16:49           ` Tetsuo Handa
2016-03-11 17:00           ` Michal Hocko
2016-03-11 17:00             ` Michal Hocko
2016-03-11 17:20             ` Tetsuo Handa
2016-03-11 17:20               ` Tetsuo Handa
2016-03-12  4:08               ` Tetsuo Handa
2016-03-12  4:08                 ` Tetsuo Handa
2016-03-13 14:41                 ` Tetsuo Handa
2016-03-13 14:41                   ` Tetsuo Handa

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=56DE9A68.2010301@suse.cz \
    --to=vbabka@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=hillf.zj@alibaba-inc.com \
    --cc=hughd@google.com \
    --cc=js1304@gmail.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=mhocko@kernel.org \
    --cc=penguin-kernel@i-love.sakura.ne.jp \
    --cc=rientjes@google.com \
    --cc=sergey.senozhatsky.work@gmail.com \
    --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.