From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752850Ab3LCJRm (ORCPT ); Tue, 3 Dec 2013 04:17:42 -0500 Received: from smtp2.it.da.ut.ee ([193.40.5.67]:54078 "EHLO smtp2.it.da.ut.ee" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752007Ab3LCJRj (ORCPT ); Tue, 3 Dec 2013 04:17:39 -0500 Date: Tue, 3 Dec 2013 11:17:35 +0200 (EET) From: Meelis Roos To: David Rientjes cc: Pekka Enberg , Christoph Lameter , Matt Mackall , Linux Kernel list , linux-mm@kvack.org Subject: Re: Slab BUG with DEBUG_* options In-Reply-To: Message-ID: References: User-Agent: Alpine 1.00 (SOC 882 2007-12-20) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > > I am debugging a reboot problem on Sun Ultra 5 (sparc64) with 512M RAM > > and turned on DEBUG_PAGEALLOC DEBUG_SLAB and DEBUG_SLAB_LEAK (and most > > other debug options) and got the following BUG and hang on startup. This > > happened originally with 3.11-rc2-00058 where my bisection of > > another problem lead, but I retested 3.12 to have the same BUG in the > > same place. > > > > kernel BUG at mm/slab.c:2391! [... > > The line shows that __kmem_cache_create gets a NULL from kmalloc_slab(). > > > > I instrumented the code and found the following: > > > > __kmem_cache_create: starting, size=248, flags=8192 > > __kmem_cache_create: now flags=76800 > > __kmem_cache_create: aligned size to 248 because of redzoning > > __kmem_cache_create: pagealloc debug, setting size to 8192 > > __kmem_cache_create: aligned size to 8192 > > __kmem_cache_create: num=1, slab_size=64 > > __kmem_cache_create: starting, size=96, flags=8192 > > __kmem_cache_create: now flags=76800 > > __kmem_cache_create: aligned size to 96 because of redzoning > > __kmem_cache_create: pagealloc debug, setting size to 8192 > > __kmem_cache_create: aligned size to 8192 > > __kmem_cache_create: num=1, slab_size=64 > > __kmem_cache_create: starting, size=192, flags=8192 > > __kmem_cache_create: now flags=76800 > > __kmem_cache_create: aligned size to 192 because of redzoning > > __kmem_cache_create: pagealloc debug, setting size to 8192 > > __kmem_cache_create: aligned size to 8192 > > __kmem_cache_create: num=1, slab_size=64 > > __kmem_cache_create: starting, size=32, flags=8192 > > __kmem_cache_create: now flags=76800 > > __kmem_cache_create: aligned size to 32 because of redzoning > > __kmem_cache_create: aligned size to 32 > > __kmem_cache_create: num=226, slab_size=960 > > __kmem_cache_create: starting, size=64, flags=8192 > > __kmem_cache_create: now flags=76800 > > __kmem_cache_create: aligned size to 64 because of redzoning > > __kmem_cache_create: pagealloc debug, setting size to 8192 > > __kmem_cache_create: turning on CFLGS_OFF_SLAB, size=8192 > > __kmem_cache_create: aligned size to 8192 > > __kmem_cache_create: num=1, slab_size=64 > > __kmem_cache_create: CFLGS_OFF_SLAB, size=8192, slab_size=52 > > __kmem_cache_create: CFLGS_OFF_SLAB, allocating slab 52 > > > > With slab size 64, it turns on CFLGS_OFF_SLAB and off slab allocation > > with this size fails. I do not know slab internals so I can not tell if > > this just happens because of the debug paths, or is it a real problem > > without the debug options too. > > > > Sounds like a problem with create_kmalloc_caches(), what are the values > for KMALLOC_SHIFT_LOW and KMALLOC_SHIFT_HIGH? KMALLOC_SHIFT_LOW=5, KMALLOC_SHIFT_HIGH=23 > It's interesting you report this as starting with 3.11-rc2 because this > changed in 3.9, what kernels were tested before 3.11-rc2 if any? No other kernels were tested with slab debug - but all relsese kernels and most rc-s starting with rc2 or rc3 eacg time were tested without slab debug. -- Meelis Roos (mroos@linux.ee)