On Tue, 29 Mar 2016, Ajay Patel wrote:
> We have custom board with Marvell Armada dual core ARMV7.
> The driver uses buffers from kmalloc-8192 slab heavily.
> When slub_debug is enabled, the kmalloc-8192 active slabs are
> increasing. The slub stats shows cmpxchg_double_fail and objects_partial
> are increasing too. Eventually system panics on oom.
Hmmm... I thought we fall back to pass through to the page allocator for
order 1 requests? Why is it going through the regular allocator paths?
> Following patch fixes the issue.
Wonder how that could be? Does the __cmpxchg_double work correctly on ARM?
> Has anybody encountered this issue?
> Is this right fix?
Looks like something is screwing around with the page flags because an
order 1 page is a compound page? Can you ensure that order 1 allocs are
using page allocator fallback. See kmalloc_large().