From: Marcin Wojtas <mw@semihalf.com>
To: Will Deacon <will.deacon@arm.com>
Cc: "Yehuda Yitschak" <yehuday@marvell.com>,
"Robin Murphy" <robin.murphy@arm.com>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"Lior Amsalem" <alior@marvell.com>,
"Thomas Petazzoni" <thomas.petazzoni@free-electrons.com>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Arnd Bergmann" <arnd@arndb.de>,
"Grzegorz Jaszczyk" <jaz@semihalf.com>,
"Nadav Haklai" <nadavh@marvell.com>,
"Tomasz Nowicki" <tn@semihalf.com>,
"Gregory Clément" <gregory.clement@free-electrons.com>,
mgorman@techsingularity.net
Subject: Re: [BUG] Page allocation failures with newest kernels
Date: Thu, 2 Jun 2016 07:48:38 +0200 [thread overview]
Message-ID: <CAPv3WKftqsEXbdU-geAcUKXBSskhA0V72N61a1a+5DfahLK_Dg@mail.gmail.com> (raw)
In-Reply-To: <20160531131520.GI24936@arm.com>
Hi Will,
I think I found a right trace. Following one-liner fixes the issue
beginning from v4.2-rc1 up to v4.4 included:
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -294,7 +294,7 @@ static inline bool
early_page_uninitialised(unsigned long pfn)
static inline bool early_page_nid_uninitialised(unsigned long pfn, int nid)
{
- return false;
+ return true;
}
The regression was introduced by commit 7e18adb4f80b ("mm: meminit:
initialise remaining struct pages in parallel with kswapd"), which in
fact disabled memblock reserve at all for all platfroms not using
CONFIG_DEFERRED_STRUCT_PAGE_INIT (x86 is the only user), hence
temporary shortage of memory possible to allocate during my test.
Since v4.4-rc1 following changes of approach have been introduced:
97a16fc - mm, page_alloc: only enforce watermarks for order-0 allocations
0aaa29a - mm, page_alloc: reserve pageblocks for high-order atomic
allocations on demand
974a786 - mm, page_alloc: remove MIGRATE_RESERVE
>From what I understood, now order-0 allocation keep no reserve at all.
I checked all gathered logs and indeed it was order-0 which failed and
apparently weren't able to reclaim successfully. Since the problem is
very easy to reproduce (at least in my test, as well as stressing
device in NAS setup) is there any chance to avoid destiny of page
alloc failures? Or any trick to play with fragmentation parameters,
etc.?
I would be grateful for any hint.
Best regards,
Marcin
2016-05-31 15:15 GMT+02:00 Will Deacon <will.deacon@arm.com>:
> On Tue, May 31, 2016 at 01:10:44PM +0000, Yehuda Yitschak wrote:
>> During some of the stress tests we also came across a different warning
>> from the arm64 page management code
>> It looks like a race is detected between HW and SW marking a bit in the PTE
>
> A72 (which I believe is the CPU in that SoC) is a v8.0 CPU and therefore
> doesn't have hardware DBM.
>
>> Not sure it's really related but I thought it might give a clue on the issue
>> http://pastebin.com/ASv19vZP
>
> There have been a few patches from Catalin to fix up the hardware DBM
> patches, so it might be worth trying to reproduce this failure with a
> more recent kernel. I doubt this is related to the allocation failures,
> however.
>
> Will
--
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>
next prev parent reply other threads:[~2016-06-02 5:48 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-31 3:02 Marcin Wojtas
2016-05-31 10:17 ` Robin Murphy
2016-05-31 10:29 ` Marcin Wojtas
2016-05-31 13:10 ` Yehuda Yitschak
2016-05-31 13:15 ` Will Deacon
2016-06-02 5:48 ` Marcin Wojtas [this message]
2016-06-02 13:52 ` Mel Gorman
2016-06-02 19:01 ` Marcin Wojtas
2016-06-03 9:53 ` Mel Gorman
2016-06-03 11:57 ` Marcin Wojtas
2016-06-03 12:36 ` Mel Gorman
2016-06-07 17:36 ` Marcin Wojtas
2016-06-08 10:09 ` Mel Gorman
2016-06-09 18:13 ` Marcin Wojtas
2016-06-10 16:08 ` Marcin Wojtas
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=CAPv3WKftqsEXbdU-geAcUKXBSskhA0V72N61a1a+5DfahLK_Dg@mail.gmail.com \
--to=mw@semihalf.com \
--cc=alior@marvell.com \
--cc=arnd@arndb.de \
--cc=catalin.marinas@arm.com \
--cc=gregory.clement@free-electrons.com \
--cc=jaz@semihalf.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=nadavh@marvell.com \
--cc=robin.murphy@arm.com \
--cc=thomas.petazzoni@free-electrons.com \
--cc=tn@semihalf.com \
--cc=will.deacon@arm.com \
--cc=yehuday@marvell.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox