From: Petr Vandrovec <vandrove@vc.cvut.cz>
To: Christoph Lameter <clameter@engr.sgi.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: BUG at mm/slab.c:662 - current 2.6.13-git (commit 87fc...) crashes on x86-64
Date: Sun, 11 Sep 2005 15:22:44 +0200 [thread overview]
Message-ID: <43242FA4.9010303@vc.cvut.cz> (raw)
In-Reply-To: <Pine.LNX.4.62.0509101948230.20145@schroedinger.engr.sgi.com>
Christoph Lameter wrote:
> On Sat, 10 Sep 2005, Petr Vandrovec wrote:
>
>
>>Christoph Lameter wrote:
>>
>>>Actually the kernel configuration you mentioned (SMP with K8 NUMA support
>>>booted on single processor) was the primary development platform for the
>>>patch.
>>>CONFIG_DEBUG_SLAB=y
>>
>>Strange... I had to apply patch below - after doing that everything seems to
>>be happy and running. Though it is not right fix, it seems to work fine
>>here...
>
>
> Hmmm. That is strange indeed and would mean that one of the initial caches
> has not correctly been initialized or we are using a smaller cache size
> than the management caches. With your patch the system fell
> back to a larger size slab (which seems to be present). Weird.
>
> What is your setting for L1_CACHE_BYTES?
64. Well, at least CONFIG_X86_L1_CACHE_BYTES has this value. Last few lines in
/proc/slabinfo in reverse order are:
kmem_cache
size-64
size-128
size-32
size-32(DMA)
size-64(DMA)
size-128(DMA)
so 64 (INDEX_AC) & 128 (INDEX_L3) slabs were created first. But
__find_general_cachep BUGs on *first* entry, which is 32 byte one on systems
with 4KB pages.
It seems to me that problem is CONFIG_DEBUG_SLAB together with
CONFIG_DEBUG_SPINLOCK and/or CONFIG_PREEMPT - in your configuration spinlock_t
has 4 bytes, and whole arraycache_init 32 bytes - so it fits into size-32 slab,
and you do not hit BUG that size-32 slab does not exist.
On SMP systems with CONFIG_DEBUG_SPINLOCK or CONFIG_PREEMPT spinlock_t is 8
bytes, and so arraycache_init has 36 bytes, and it no longer fits into
size-32... And if you'll enable both SPINLOCK debugging and PREEMPT, you get 12
bytes spinlock_t and 40 byte arraycache_init...
So I believe that if you'll rebuild your kernel with PREEMPT or DEBUG_SPINLOCK
(or both), you'll get crash I'm seeing. Probably size-32 slab needs to be
special cased same way INDEX_AC and INDEX_L3 arrays are.
Petr Vandrovec
prev parent reply other threads:[~2005-09-11 13:22 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-10 13:26 BUG at mm/slab.c:662 - current 2.6.13-git (commit 87fc...) crashes on x86-64 Petr Vandrovec
2005-09-10 17:30 ` Christoph Lameter
2005-09-10 19:05 ` Petr Vandrovec
2005-09-11 3:01 ` Christoph Lameter
2005-09-11 13:22 ` Petr Vandrovec [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43242FA4.9010303@vc.cvut.cz \
--to=vandrove@vc.cvut.cz \
--cc=clameter@engr.sgi.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox