From: Andrew Donnellan
> Sent: 27 January 2023 03:21
> 
> On Thu, 2023-01-26 at 17:31 +0000, David Laight wrote:
> > Changing the size to kzalloc() doesn't help.
> > The alignment depends on the allocator and is only required to have
> > a relatively small alignment (ARCH_MINALIGN?) regardless of the size.
> >
> > IIRC one of the allocators adds a small header to every item.
> > It won't return 16 byte aligned items at all.
> 
> I'm relying on the behaviour described in Documentation/core-
> api/memory-allocation.rst:
> 
>     The address of a chunk allocated with kmalloc is aligned to at
>     least ARCH_KMALLOC_MINALIGN bytes. For sizes which are a power of
>     two, the alignment is also guaranteed to be at least the respective
>     size.
> 
> Is this wrong?

The alignment for power of two doesn't match what I've inferred
from reading comments on other patches.

It is true for dma_malloc_coherent() - that does guarantee that a
16k allocate will be aligned on a 16k physical address boundary.

        David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, 
UK
Registration No: 1397386 (Wales)

Reply via email to