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().

