Re: [BUG] SLOB breaks Crypto

From: Matt Mackall
Date: Mon May 17 2010 - 18:38:01 EST


On Mon, 2010-05-17 at 23:50 +0200, Adrian-Ken Rueegsegger wrote:
> Geert Uytterhoeven wrote:
> > On Fri, Mar 19, 2010 at 02:33, Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> wrote:
> >> On Thu, Mar 18, 2010 at 10:24:41PM +0100, michael-dev@xxxxxxxxxxxxx wrote:
> >>> Pekka Enberg schrieb:
> >>>> Even with CONFIG_DEBUG_SLAB enabled or with CONFIG_SLUB and
> >>>> CONFIG_SLUB_DEBUG_ON?
> >>> no, these options have not been / are not enabled.
> >> Can you please try it with those options enabled? That will tell
> >> us if there is some latent bug in the crypto layer that only shows
> >> up right away under SLOB.
> >
> > After seeing a posting from Nemoto-san on the linux-mips list (should
> > show up soon on
> > http://www.linux-mips.org/archives/linux-mips/2010-05/threads.html),
> > I'm wondering if these defaults are the culprit;
> >
> > mm/slab.c:#define ARCH_KMALLOC_MINALIGN __alignof__(unsigned long long)
> > mm/slob.c:#define ARCH_KMALLOC_MINALIGN __alignof__(unsigned long)
> > mm/slub.c:#define ARCH_KMALLOC_MINALIGN __alignof__(unsigned long long)

Seems the target here is x86, which has no DMA or other alignment
constraints.

> Just a quick note: I changed this line in mm/slob.c to (unsigned long
> long) and was able to load tcrypt without the kernel oopsing or
> panic'ing. When running all test via
>
> modprobe tcrypt

Hmmm, sounds like something in crypto has a bogus alignment/padding
expectation. Surprised it wasn't caught by SLAB redzoning though.
Perhaps we can 'bisect' the test suite to narrow it down to a particular
test. Alternately, we can tweak SLAB to offset buffers by two bytes and
see what breaks.

Ages ago, I had a simple redzoning patch for SLOB, but I never submitted
it: I wrote it to catch bugs in SLOB, not bugs in SLOB users.

--
Mathematics is the supreme nostalgia of our time.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/