From mboxrd@z Thu Jan 1 00:00:00 1970 From: catalin.marinas@arm.com (Catalin Marinas) Date: Tue, 3 Nov 2015 12:05:05 +0000 Subject: [PATCH] arm64: Increase the max granular size In-Reply-To: References: <1442944788-17254-1-git-send-email-rric@kernel.org> <20151028190948.GJ8899@e104818-lin.cambridge.arm.com> Message-ID: <20151103120504.GF7637@e104818-lin.cambridge.arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, Nov 03, 2015 at 12:07:06PM +0100, Geert Uytterhoeven wrote: > On Wed, Oct 28, 2015 at 8:09 PM, Catalin Marinas > wrote: > > On Tue, Sep 22, 2015 at 07:59:48PM +0200, Robert Richter wrote: > >> From: Tirumalesh Chalamarla > >> > >> Increase the standard cacheline size to avoid having locks in the same > >> cacheline. > >> > >> Cavium's ThunderX core implements cache lines of 128 byte size. With > >> current granulare size of 64 bytes (L1_CACHE_SHIFT=6) two locks could > >> share the same cache line leading a performance degradation. > >> Increasing the size fixes that. > >> > >> Increasing the size has no negative impact to cache invalidation on > >> systems with a smaller cache line. There is an impact on memory usage, > >> but that's not too important for arm64 use cases. > >> > >> Signed-off-by: Tirumalesh Chalamarla > >> Signed-off-by: Robert Richter > > > > Applied. Thanks. > > This patch causes a BUG() on r8a7795/salvator-x, for which support is not > yet upstream. > > My config (attached) uses SLAB. If I switch to SLUB, it works. > The arm64 defconfig works, even if I switch from SLUB to SLAB. [...] > ------------[ cut here ]------------ > kernel BUG at mm/slab.c:2283! > Internal error: Oops - BUG: 0 [#1] SMP [...] > Call trace: > [] __kmem_cache_create+0x21c/0x280 > [] create_boot_cache+0x4c/0x80 > [] create_kmalloc_cache+0x54/0x88 > [] create_kmalloc_caches+0x50/0xf4 > [] kmem_cache_init+0x104/0x118 > [] start_kernel+0x218/0x33c I haven't managed to reproduce this on a Juno kernel. Could you please add some debug printing to see what's being passed to kmalloc_slab()? The freelist_size getting out of bounds? -- Catalin