From: Manfred Spraul <manfred@colorfullife.com>
To: Johannes Stezenbach <js@sig21.net>
Cc: David Woodhouse <dwmw2@infradead.org>,
Herbert Xu <herbert@gondor.hengli.com.au>,
David Miller <davem@davemloft.net>,
penberg@cs.helsinki.fi, mpm@selenic.com, 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: [PATCH 1/4] mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to <linux/slab_def.h>
Date: Wed, 19 May 2010 20:03:00 +0200 [thread overview]
Message-ID: <4BF427D4.40600@colorfullife.com> (raw)
In-Reply-To: <20100519133028.GA26659@sig21.net>
On 05/19/2010 03:30 PM, Johannes Stezenbach wrote:
> Hi,
>
> I have some comments/questions, I hope it's not too silly:
>
> On Wed, May 19, 2010 at 12:01:42PM +0100, David Woodhouse wrote:
>
>> +#ifndef ARCH_KMALLOC_MINALIGN
>> +/*
>> + * Enforce a minimum alignment for the kmalloc caches.
>> + * Usually, the kmalloc caches are cache_line_size() aligned, except when
>> + * DEBUG and FORCED_DEBUG are enabled, then they are BYTES_PER_WORD aligned.
>> + * Some archs want to perform DMA into kmalloc caches and need a guaranteed
>> + * alignment larger than the alignment of a 64-bit integer.
>> + * ARCH_KMALLOC_MINALIGN allows that.
>> + * Note that increasing this value may disable some debug features.
>> + */
>> +#define ARCH_KMALLOC_MINALIGN __alignof__(unsigned long long)
>> +#endif
>>
> I think the comment is confusing. IIRC kmalloc() API guarantees that
> the allocated buffer is suitable for DMA, so if cache coherence is not
> handled by hardware the arch might need to set this to the cache line size,
> and that's what ARCH_KMALLOC_MINALIGN is about. Nothing else.
>
Is this text better?
/*
* Enforce a minimum alignment for the kmalloc caches.
* kmalloc allocations are guaranteed to be BYTES_PER_WORD aligned -
sizeof(void*)
* If an arch needs a larger guarantee (e.g. cache_line_size due to DMA),
then it
* must use ARCH_KMALLOC_MINALIGN to enforce that.
* Note: Do not set ARCH_KMALLOC_MINALIGN for performance reasons.
* Unless debug options are enabled, the kernel uses cache_line_size()
automatically.
*/
>> +#ifndef ARCH_SLAB_MINALIGN
>> +/*
>> + * Enforce a minimum alignment for all caches.
>> + * Intended for archs that get misalignment faults even for BYTES_PER_WORD
>> + * aligned buffers. Includes ARCH_KMALLOC_MINALIGN.
>> + * If possible: Do not enable this flag for CONFIG_DEBUG_SLAB, it disables
>> + * some debug features.
>> + */
>> +#define ARCH_SLAB_MINALIGN 0
>> +#endif
>>
> Why is this needed at all? If code calls kmem_cache_create()
> with wrong align parameter, or has wrong expectations wrt kmalloc()
> alignment guarantees, this code needs to be fixed?
> I mean, portable code cannot assume that unaligned accesses work?
>
ARM uses 8 bytes. I don't know why.
A 32-bit arch and unaligned 64-bit loads are not supported?
--
Manfred
next prev parent reply other threads:[~2010-05-19 18:01 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
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 [this message]
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=4BF427D4.40600@colorfullife.com \
--to=manfred@colorfullife.com \
--cc=anemo@mba.ocn.ne.jp \
--cc=davem@davemloft.net \
--cc=dwmw2@infradead.org \
--cc=geert@linux-m68k.org \
--cc=herbert@gondor.hengli.com.au \
--cc=js@sig21.net \
--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.