Re: 4.12-rc ppc64 4k-page needs costly allocations
From: Mathieu Malaterre <hidden>
Date: 2017-05-31 19:02:48
Also in:
linux-mm
On Wed, May 31, 2017 at 8:44 PM, Hugh Dickins [off-list ref] wrote:
[ Merging two mails into one response ] On Wed, 31 May 2017, Christoph Lameter wrote:quoted
On Tue, 30 May 2017, Hugh Dickins wrote:quoted
SLUB: Unable to allocate memory on node -1, gfp=0x14000c0(GFP_KERNEL) cache: pgtable-2^12, object size: 32768, buffer size: 65536, default order: 4, min order: 4 pgtable-2^12 debugging increased min order, use slub_debug=O to disable.quoted
I did try booting with slub_debug=O as the message suggested, but that made no difference: it still hoped for but failed on order:4 allocations.I am curious as to what is going on there. Do you have the output from these failed allocations?I thought the relevant output was in my mail. I did skip the Mem-Info dump, since that just seemed noise in this case: we know memory can get fragmented. What more output are you looking for?quoted
quoted
I wanted to try removing CONFIG_SLUB_DEBUG, but didn't succeed in that: it seemed to be a hard requirement for something, but I didn't find what.CONFIG_SLUB_DEBUG does not enable debugging. It only includes the code to be able to enable it at runtime.Yes, I thought so.quoted
quoted
I did try CONFIG_SLAB=y instead of SLUB: that lowers these allocations to the expected order:3, which then results in OOM-killing rather than direct allocation failure, because of the PAGE_ALLOC_COSTLY_ORDER 3 cutoff. But makes no real difference to the outcome: swapping loads still abort early.SLAB uses order 3 and SLUB order 4??? That needs to be tracked down. Ahh. Ok debugging increased the object size to an order 4. This should be order 3 without debugging.But it was still order 4 when booted with slub_debug=O, which surprised me. And that surprises you too? If so, then we ought to dig into it further.quoted
Why are the slab allocators used to create slab caches for large object sizes?There may be more optimal ways to allocate, but I expect that when the ppc guys are writing the code to handle both 4k and 64k page sizes, kmem caches offer the best span of possibility without complication.quoted
quoted
Relying on order:3 or order:4 allocations is just too optimistic: ppc64 with 4k pages would do better not to expect to support a 128TB userspace.I thought you had these huge 64k page sizes?ppc64 does support 64k page sizes, and they've been the default for years; but since 4k pages are still supported, I choose to use those (I doubt I could ever get the same load going with 64k pages).
4k is pretty much required on ppc64 when it comes to nouveau: https://bugs.freedesktop.org/show_bug.cgi?id=94757 2cts