linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Maxime Coquelin <maxime.coquelin-nonst@stericsson.com>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: "'linux-kernel@vger.kernel.org'" <linux-kernel@vger.kernel.org>,
	"'linux-arm-kernel@lists.infradead.org'"
	<linux-arm-kernel@lists.infradead.org>,
	"'linux-media@vger.kernel.org'" <linux-media@vger.kernel.org>,
	"'linux-mm@kvack.org'" <linux-mm@kvack.org>,
	"linaro-mm-sig@lists.linaro.org" <linaro-mm-sig@lists.linaro.org>,
	'Daniel Walker' <dwalker@codeaurora.org>,
	'Russell King' <linux@arm.linux.org.uk>,
	'Arnd Bergmann' <arnd@arndb.de>,
	'Jonathan Corbet' <corbet@lwn.net>, 'Mel Gorman' <mel@csn.ul.ie>,
	'Chunsang Jeong' <chunsang.jeong@linaro.org>,
	'Michal Nazarewicz' <mina86@mina86.com>,
	'Dave Hansen' <dave@linux.vnet.ibm.com>,
	'Jesse Barker' <jesse.barker@linaro.org>,
	'Kyungmin Park' <kyungmin.park@samsung.com>,
	'Ankita Garg' <ankita@in.ibm.com>,
	'Andrew Morton' <akpm@linux-foundation.org>,
	'KAMEZAWA Hiroyuki' <kamezawa.hiroyu@jp.fujitsu.com>,
	"benjamin.gaignard@linaro.org" <benjamin.gaignard@linaro.org>,
	Ludovic BARRE <ludovic.barre@stericsson.com>,
	"vincent.guittot@linaro.org" <vincent.guittot@linaro.org>
Subject: Re: [PATCH] fixup: mm: alloc_contig_range: increase min_free_kbytes during allocation
Date: Wed, 12 Oct 2011 15:01:47 +0200	[thread overview]
Message-ID: <4E958FBB.6000200@stericsson.com> (raw)
In-Reply-To: <1318417735-9199-1-git-send-email-m.szyprowski@samsung.com>

Hello Marek,

On 10/12/2011 01:08 PM, Marek Szyprowski wrote:
> Signed-off-by: Marek Szyprowski<m.szyprowski@samsung.com>
> ---
>   mm/page_alloc.c |   15 ++++++++++++---
>   1 files changed, 12 insertions(+), 3 deletions(-)
>
> Hello Maxime,
>
> Please check if this patch fixes your lockup issue. It is a bit cruel,
> but it looks that in case of real low-memory situation page allocation
> is very complex task which usually ends in waiting for the io/fs and
> free pages that really don't arrive at all.
Thanks for the reactivity.
We just tested it, we no more faced the lockup. Instead, the OOM Killer 
is triggered and contiguous allocation succeed.
I'm not familiar enough with page_alloc.c to detect any side effects 
this patch could bring.

> Best regards
> --
> Marek Szyprowski
> Samsung Poland R&D Center
>
>
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 055aa4c..45473e9 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -5872,6 +5872,7 @@ int alloc_contig_range(unsigned long start, unsigned long end,
>   		       gfp_t flags, unsigned migratetype)
>   {
>   	unsigned long outer_start, outer_end;
> +	unsigned int count = end - start;
>   	int ret;
>
>   	/*
> @@ -5900,7 +5901,10 @@ int alloc_contig_range(unsigned long start, unsigned long end,
>   	ret = __start_isolate_page_range(pfn_to_maxpage(start),
>   					 pfn_to_maxpage_up(end), migratetype);
>   	if (ret)
> -		goto done;
> +		return ret;
> +
> +	min_free_kbytes += count * PAGE_SIZE / 1024;
> +	setup_per_zone_wmarks();
>
>   	ret = __alloc_contig_migrate_range(start, end);
>   	if (ret)
> @@ -5922,8 +5926,10 @@ int alloc_contig_range(unsigned long start, unsigned long end,
>
>   	ret = 0;
>   	while (!PageBuddy(pfn_to_page(start&  (~0UL<<  ret))))
> -		if (WARN_ON(++ret>= MAX_ORDER))
> -			return -EINVAL;
> +		if (WARN_ON(++ret>= MAX_ORDER)) {
> +			ret = -EINVAL;
> +			goto done;
> +		}
>
>   	outer_start = start&  (~0UL<<  ret);
>   	outer_end   = alloc_contig_freed_pages(outer_start, end, flags);
> @@ -5936,6 +5942,9 @@ int alloc_contig_range(unsigned long start, unsigned long end,
>
>   	ret = 0;
>   done:
> +	min_free_kbytes -= count * PAGE_SIZE / 1024;
> +	setup_per_zone_wmarks();
> +
>   	__undo_isolate_page_range(pfn_to_maxpage(start), pfn_to_maxpage_up(end),
>   				  migratetype);
>   	return ret;

Best regards,
Maxime

--
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-10-12 13:05 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-06 13:54 [PATCHv16 0/9] Contiguous Memory Allocator Marek Szyprowski
2011-10-06 13:54 ` [PATCH 1/9] mm: move some functions from memory_hotplug.c to page_isolation.c Marek Szyprowski
2011-10-14 23:23   ` Andrew Morton
2011-10-18 12:05   ` Mel Gorman
2011-10-06 13:54 ` [PATCH 2/9] mm: alloc_contig_freed_pages() added Marek Szyprowski
2011-10-14 23:29   ` Andrew Morton
2011-10-16  8:01     ` Michal Nazarewicz
2011-10-16  8:31       ` Andrew Morton
2011-10-16  9:39         ` Michal Nazarewicz
2011-10-17 12:21     ` Marek Szyprowski
2011-10-17 18:39       ` Andrew Morton
2011-10-18 12:21   ` Mel Gorman
2011-10-18 17:26     ` Michal Nazarewicz
2011-10-18 17:48       ` Dave Hansen
2011-10-18 18:00         ` Michal Nazarewicz
2011-10-21 10:06       ` Mel Gorman
2011-10-24  1:00         ` Michal Nazarewicz
2011-10-24  4:05     ` Michal Nazarewicz
2011-10-24  4:05     ` Michal Nazarewicz
2011-10-24  4:05     ` Michal Nazarewicz
2011-11-01 15:04       ` Mel Gorman
2011-11-01 18:06         ` Michal Nazarewicz
2011-11-01 18:47           ` Mel Gorman
2011-10-24  4:05     ` Michal Nazarewicz
2011-10-06 13:54 ` [PATCH 3/9] mm: alloc_contig_range() added Marek Szyprowski
2011-10-14 23:35   ` Andrew Morton
2011-10-18 12:38   ` Mel Gorman
2011-10-06 13:54 ` [PATCH 4/9] mm: MIGRATE_CMA migration type added Marek Szyprowski
2011-10-14 23:38   ` Andrew Morton
2011-10-18 13:08   ` Mel Gorman
2011-10-24 19:32     ` Michal Nazarewicz
2011-10-27  9:10       ` Michal Nazarewicz
2011-10-06 13:54 ` [PATCH 5/9] mm: MIGRATE_CMA isolation functions added Marek Szyprowski
2011-10-06 13:54 ` [PATCH 6/9] drivers: add Contiguous Memory Allocator Marek Szyprowski
2011-10-14 23:57   ` Andrew Morton
2011-10-16 10:08     ` Russell King - ARM Linux
2011-10-18 13:43   ` Mel Gorman
2011-10-24 19:39     ` Michal Nazarewicz
2011-11-04 10:41     ` Marek Szyprowski
2011-10-06 13:54 ` [PATCH 7/7] ARM: integrate CMA with DMA-mapping subsystem Marek Szyprowski
2011-10-06 14:18   ` Marek Szyprowski
2011-10-15  0:03   ` Andrew Morton
2011-10-06 13:54 ` [PATCH 7/9] X86: " Marek Szyprowski
2011-10-06 13:54 ` [PATCH 8/9] ARM: " Marek Szyprowski
2011-10-14  4:33   ` [Linaro-mm-sig] " Subash Patel
2011-10-14  9:14     ` Marek Szyprowski
2011-10-06 13:54 ` [PATCH 9/9] ARM: Samsung: use CMA for 2 memory banks for s5p-mfc device Marek Szyprowski
2011-10-07 16:27 ` [PATCHv16 0/9] Contiguous Memory Allocator Arnd Bergmann
2011-10-10  6:58   ` [Linaro-mm-sig] " Ohad Ben-Cohen
2011-10-10 12:02     ` Clark, Rob
2011-10-10 22:56   ` Andrew Morton
2011-10-11  6:57     ` Marek Szyprowski
2011-10-11 13:52     ` Arnd Bergmann
2011-10-14 23:19       ` Andrew Morton
2011-10-15 14:24         ` Arnd Bergmann
2011-10-10 12:07 ` [Linaro-mm-sig] " Maxime Coquelin
2011-10-11  7:17   ` Marek Szyprowski
2011-10-11  7:30     ` Maxime Coquelin
2011-10-11 10:50       ` Marek Szyprowski
2011-10-11 11:25         ` Maxime Coquelin
2011-10-11 13:05           ` Marek Szyprowski
2011-10-12 11:08       ` [PATCH] fixup: mm: alloc_contig_range: increase min_free_kbytes during allocation Marek Szyprowski
2011-10-12 13:01         ` Maxime Coquelin [this message]

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=4E958FBB.6000200@stericsson.com \
    --to=maxime.coquelin-nonst@stericsson.com \
    --cc=akpm@linux-foundation.org \
    --cc=ankita@in.ibm.com \
    --cc=arnd@arndb.de \
    --cc=benjamin.gaignard@linaro.org \
    --cc=chunsang.jeong@linaro.org \
    --cc=corbet@lwn.net \
    --cc=dave@linux.vnet.ibm.com \
    --cc=dwalker@codeaurora.org \
    --cc=jesse.barker@linaro.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@arm.linux.org.uk \
    --cc=ludovic.barre@stericsson.com \
    --cc=m.szyprowski@samsung.com \
    --cc=mel@csn.ul.ie \
    --cc=mina86@mina86.com \
    --cc=vincent.guittot@linaro.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 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).