All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Mundt <lethal@linux-sh.org>
To: David Miller <davem@davemloft.net>
Cc: penberg@cs.helsinki.fi, mpm@selenic.com,
	herbert@gondor.apana.org.au, ken@codelabs.ch,
	geert@linux-m68k.org, michael-dev@fami-braun.de,
	linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org,
	anemo@mba.ocn.ne.jp
Subject: Re: [BUG] SLOB breaks Crypto
Date: Wed, 19 May 2010 08:10:53 +0900	[thread overview]
Message-ID: <20100518231053.GD5933@linux-sh.org> (raw)
In-Reply-To: <20100518.154059.139137292.davem@davemloft.net>

On Tue, May 18, 2010 at 03:40:59PM -0700, David Miller wrote:
> From: Paul Mundt <lethal@linux-sh.org>
> Date: Wed, 19 May 2010 07:35:10 +0900
> 
> > On Tue, May 18, 2010 at 02:20:21PM -0700, David Miller wrote:
> >> So one of two things should happen:
> >> 
> >> 1) SLOB conforms to SLAB/SLUB in it's test
> >> 
> >> 2) SLAB/SLUB conforms to SLOB in it's test
> >> 
> >> And yes this is an either-or, you can't say they are both valid.
> > 
> > I don't see any reason to punish SLOB for the assumptions that SLAB/SLUB
> > arbitrarily took up, presumably on an architecture that should have
> > specified its own alignment requirements and simply couldn't be bothered.
> > Making SLAB redzoning work with arbitrary alignment is another matter
> > entirely, and something that should probably be revisited.
> > 
> > Anything that assumes more than BYTES_PER_WORD is simply broken and
> > should be reverted.
> 
> You can't make the default different in each allocator, PERIOD.
> 
I don't disagree that having different defaults is a bit unorthodox, but
that has not been a problem for any code that didn't attempt to make
its own assumptions about the alignment.

> If you can't know what the default is, how in the world can you know
> if you need to override it?  You can't.  It's a guess, and you can't
> say otherwise.
> 
If an architecture requires 64-bit alignment for addressing 64-bit values
on 32-bit, then that's a hard architecture requirement irrespective of
whatever the slab allocator defaults to. The whole idea behind
architecture minimum alignment requirements is that they are
minimum requirements.

> All of the CPP tests like the one used by linux/crypto.h are
> ludicrious.  It should absolutely be not necessary for any code to
> duplicate this kind of calculation.
> 
Agreed.

> Instead, this sequence should be in linux/slab.h, and be used
> universally by slab, slub, slob and anything that wants to know the
> allocators alignment guarentees.
> 
Having a slab_alignment() routine or something sounds fine, but we
already have headers split out for all of the different allocators, so
there's no specific reason why slob_def.h can't deviate here, too.

Again, it's the crypto code that is broken for making bogus alignment
assumptions in the first place.

> I don't even know of a 32-bit chip outside of x86 that doesn't
> potentially emit alignment requiring 64-bit memory operations for
> 64-bit objects.  So what SLOB is doing with a different default is
> even more strange.  And I bet you that even without the requirement,
> x86 runs faster with 64-bit alignment of 64-bit objects.

I assumed ppc32 too, but if they're really in a minority then we
could also consider just inverting the logic (both x86 and ppc set
HAVE_EFFICIENT_UNALIGNED_ACCESS for example).

WARNING: multiple messages have this Message-ID (diff)
From: Paul Mundt <lethal@linux-sh.org>
To: David Miller <davem@davemloft.net>
Cc: penberg@cs.helsinki.fi, mpm@selenic.com,
	herbert@gondor.hengli.com.au, ken@codelabs.ch,
	geert@linux-m68k.org, michael-dev@fami-braun.de,
	linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org,
	anemo@mba.ocn.ne.jp
Subject: Re: [BUG] SLOB breaks Crypto
Date: Wed, 19 May 2010 08:10:53 +0900	[thread overview]
Message-ID: <20100518231053.GD5933@linux-sh.org> (raw)
In-Reply-To: <20100518.154059.139137292.davem@davemloft.net>

On Tue, May 18, 2010 at 03:40:59PM -0700, David Miller wrote:
> From: Paul Mundt <lethal@linux-sh.org>
> Date: Wed, 19 May 2010 07:35:10 +0900
> 
> > On Tue, May 18, 2010 at 02:20:21PM -0700, David Miller wrote:
> >> So one of two things should happen:
> >> 
> >> 1) SLOB conforms to SLAB/SLUB in it's test
> >> 
> >> 2) SLAB/SLUB conforms to SLOB in it's test
> >> 
> >> And yes this is an either-or, you can't say they are both valid.
> > 
> > I don't see any reason to punish SLOB for the assumptions that SLAB/SLUB
> > arbitrarily took up, presumably on an architecture that should have
> > specified its own alignment requirements and simply couldn't be bothered.
> > Making SLAB redzoning work with arbitrary alignment is another matter
> > entirely, and something that should probably be revisited.
> > 
> > Anything that assumes more than BYTES_PER_WORD is simply broken and
> > should be reverted.
> 
> You can't make the default different in each allocator, PERIOD.
> 
I don't disagree that having different defaults is a bit unorthodox, but
that has not been a problem for any code that didn't attempt to make
its own assumptions about the alignment.

> If you can't know what the default is, how in the world can you know
> if you need to override it?  You can't.  It's a guess, and you can't
> say otherwise.
> 
If an architecture requires 64-bit alignment for addressing 64-bit values
on 32-bit, then that's a hard architecture requirement irrespective of
whatever the slab allocator defaults to. The whole idea behind
architecture minimum alignment requirements is that they are
minimum requirements.

> All of the CPP tests like the one used by linux/crypto.h are
> ludicrious.  It should absolutely be not necessary for any code to
> duplicate this kind of calculation.
> 
Agreed.

> Instead, this sequence should be in linux/slab.h, and be used
> universally by slab, slub, slob and anything that wants to know the
> allocators alignment guarentees.
> 
Having a slab_alignment() routine or something sounds fine, but we
already have headers split out for all of the different allocators, so
there's no specific reason why slob_def.h can't deviate here, too.

Again, it's the crypto code that is broken for making bogus alignment
assumptions in the first place.

> I don't even know of a 32-bit chip outside of x86 that doesn't
> potentially emit alignment requiring 64-bit memory operations for
> 64-bit objects.  So what SLOB is doing with a different default is
> even more strange.  And I bet you that even without the requirement,
> x86 runs faster with 64-bit alignment of 64-bit objects.

I assumed ppc32 too, but if they're really in a minority then we
could also consider just inverting the logic (both x86 and ppc set
HAVE_EFFICIENT_UNALIGNED_ACCESS for example).

  reply	other threads:[~2010-05-18 23:11 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-15 13:39 [BUG] SLOB breaks Crypto michael-dev
2010-03-18 16:30 ` Pekka Enberg
2010-03-18 21:24   ` michael-dev
2010-03-19  0:33     ` Herbert Xu
2010-05-14 14:50       ` Adrian-Ken Rueegsegger
2010-05-14 14:50         ` Adrian-Ken Rueegsegger
2010-05-17 16:17       ` Geert Uytterhoeven
2010-05-17 16:17         ` Geert Uytterhoeven
2010-05-17 21:50         ` Adrian-Ken Rueegsegger
2010-05-17 21:50           ` Adrian-Ken Rueegsegger
2010-05-17 22:37           ` Matt Mackall
2010-05-17 22:37             ` Matt Mackall
2010-05-18  8:17             ` Adrian-Ken Rueegsegger
2010-05-18  8:17               ` Adrian-Ken Rueegsegger
2010-05-18 10:27               ` Herbert Xu
2010-05-18 10:27                 ` Herbert Xu
2010-05-18 14:02                 ` Pekka Enberg
2010-05-18 14:02                   ` Pekka Enberg
2010-05-18 19:06                 ` Matt Mackall
2010-05-18 19:06                   ` Matt Mackall
2010-05-18 19:25                 ` David Miller
2010-05-18 19:25                   ` David Miller
2010-05-18 19:33                   ` Matt Mackall
2010-05-18 19:33                     ` Matt Mackall
2010-05-18 20:59                     ` David Miller
2010-05-18 20:59                       ` David Miller
2010-05-18 21:15                       ` Pekka Enberg
2010-05-18 21:15                         ` Pekka Enberg
2010-05-18 21:20                         ` David Miller
2010-05-18 21:20                           ` David Miller
2010-05-18 22:35                           ` Paul Mundt
2010-05-18 22:35                             ` Paul Mundt
2010-05-18 22:37                             ` Paul Mundt
2010-05-18 22:37                               ` Paul Mundt
2010-05-19 15:19                               ` Christoph Lameter
2010-05-19 19:56                                 ` David Miller
2010-05-18 22:40                             ` David Miller
2010-05-18 22:40                               ` David Miller
2010-05-18 23:10                               ` Paul Mundt [this message]
2010-05-18 23:10                                 ` Paul Mundt
2010-05-18 23:16                               ` Matt Mackall
2010-05-18 23:16                                 ` Matt Mackall
2010-05-19  5:53                               ` Pekka Enberg
2010-05-19  5:53                                 ` Pekka Enberg
2010-05-18 23:20                           ` David Woodhouse
2010-05-18 23:20                             ` David Woodhouse
2010-05-19  1:05                             ` Herbert Xu
2010-05-19  1:05                               ` Herbert Xu
2010-05-19  7:14                               ` David Woodhouse
2010-05-19  7:14                                 ` David Woodhouse
2010-05-19  7:45                                 ` Herbert Xu
2010-05-19  7:45                                   ` Herbert Xu
2010-05-19 11:32                                 ` Geert Uytterhoeven
2010-05-19 11:40                                   ` David Woodhouse
2010-05-19 11:50                                     ` Geert Uytterhoeven
2010-05-19 14:11                                       ` Matt Mackall
2010-05-19 19:33                                         ` David Miller
2010-05-20  3:38                                           ` FUJITA Tomonori
2010-05-20  3:46                                             ` David Miller
2010-05-19 12:02                                     ` FUJITA Tomonori
2010-05-19 12:19                                       ` David Woodhouse
2010-05-19 12:26                                         ` FUJITA Tomonori
2010-05-19 12:48                                           ` David Woodhouse
2010-05-19 10:58                               ` David Woodhouse
2010-05-19 10:58                                 ` David Woodhouse
2010-05-19 11:01                                 ` [PATCH 1/4] mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to <linux/slab_def.h> David Woodhouse
2010-05-19 11:01                                   ` David Woodhouse
2010-05-19 13:30                                   ` Johannes Stezenbach
2010-05-19 13:30                                     ` Johannes Stezenbach
2010-05-19 18:03                                     ` Manfred Spraul
2010-05-19 18:10                                       ` David Woodhouse
2010-05-20 16:49                                         ` Manfred Spraul
2010-05-19 19:11                                   ` Pekka Enberg
2010-05-19 19:11                                     ` Pekka Enberg
2010-05-19 19:19                                     ` Christoph Lameter
2010-05-19 19:23                                       ` Pekka Enberg
2010-05-19 19:45                                         ` Christoph Lameter
2010-05-19 19:28                                       ` David Woodhouse
2010-05-19 11:01                                 ` [PATCH 2/4] mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to <linux/slob_def.h> David Woodhouse
2010-05-19 11:01                                   ` David Woodhouse
2010-05-19 11:02                                 ` [PATCH 3/4] mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to <linux/slub_def.h> David Woodhouse
2010-05-19 11:02                                   ` David Woodhouse
2010-05-19 11:02                                 ` [PATCH 4/4] crypto: Use ARCH_KMALLOC_MINALIGN for CRYPTO_MINALIGN now that it's exposed David Woodhouse
2010-05-19 11:02                                   ` David Woodhouse
2010-05-19 11:08                                 ` [BUG] SLOB breaks Crypto Pekka Enberg
2010-05-19 11:08                                   ` Pekka Enberg
2010-05-19 11:16                                   ` David Woodhouse
2010-05-19 11:16                                     ` David Woodhouse
2010-05-19 11:46                                     ` Herbert Xu
2010-05-19 11:46                                       ` Herbert Xu
2010-05-19 12:54                                       ` Pekka Enberg
2010-05-19 12:54                                         ` Pekka Enberg
2010-05-19 12:59                                         ` Herbert Xu
2010-05-19 12:59                                           ` Herbert Xu
2010-05-19 19:51                                           ` David Miller
2010-05-19 19:51                                             ` David Miller
2010-05-19 19:42                                     ` David Miller
2010-05-19 19:42                                       ` David Miller
2010-05-19 13:49                                 ` [PATCH 5/4] Provide __dma_aligned macro David Woodhouse
2010-05-19 13:49                                   ` David Woodhouse
2010-05-19 14:50                                   ` FUJITA Tomonori
2010-05-19  4:09                           ` [BUG] SLOB breaks Crypto Herbert Xu
2010-05-19  4:09                             ` Herbert Xu
2010-05-19  5:44                           ` Pekka Enberg
2010-05-19  5:44                             ` Pekka Enberg
2010-05-18 19:32                 ` Adrian-Ken Rueegsegger
2010-05-18 19:32                   ` Adrian-Ken Rueegsegger
2010-05-18 22:39                   ` Herbert Xu
2010-05-18 22:39                     ` Herbert Xu
2010-05-19  1:51                   ` Herbert Xu
2010-05-19  1:51                     ` Herbert Xu

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=20100518231053.GD5933@linux-sh.org \
    --to=lethal@linux-sh.org \
    --cc=anemo@mba.ocn.ne.jp \
    --cc=davem@davemloft.net \
    --cc=geert@linux-m68k.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=ken@codelabs.ch \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael-dev@fami-braun.de \
    --cc=mpm@selenic.com \
    --cc=penberg@cs.helsinki.fi \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.