From: Peter Zijlstra
Sent: 13 May 2020 14:36
On Wed, May 13, 2020 at 10:10:03AM +0000, David Laight wrote:
From: Geert Uytterhoeven
Sent: 13 May 2020 10:49
...
I don't want to apply this to older kernels as it could cause extra memory usage for no good reason. I have no idea why a non ARC system would want it :(
I think the reference to ARC is a red herring. The real issue is that buffers used for DMA may not have the required alignment, which is not limited to ARC systems.
Note that I'm also not super happy with the extra memory usage. But devm_*() conveniences come with their penalties...
Interesting thought. Could the devm 'header' be put right at the end of the kmalloc() buffer?
https://lkml.kernel.org/r/20191220140655.GN2827@hirez.programming.kicks-ass....
All the way around the loop.....
ISTR there have also been issues with one of the kmalloc() implementations adding a header to the memory block. Didn't it generate 4n+2 aligned buffers on m68k - breaking code that tried to use the two lower bits of an address.
If one of the kmalloc()s behaves like that it ought to be possible for devm_alloc() to use the spare space in the same cache line??
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)