On Tue, 19 Mar 2019, Vlastimil Babka wrote: > The recent thread [1] inspired me to look into guaranteeing alignment for > kmalloc() for power-of-two sizes. Turns out it's not difficult and in most > configuration nothing really changes as it happens implicitly. More details in > the first patch. If we agree we want to do this, I will see where to update > documentation and perhaps if there are any workarounds in the tree that can be > converted to plain kmalloc() afterwards. This means that the alignments are no longer uniform for all kmalloc caches and we get back to code making all sorts of assumptions about kmalloc alignments. Currently all kmalloc objects are aligned to KMALLOC_MIN_ALIGN. That will no longer be the case and alignments will become inconsistent. I think its valuable that alignment requirements need to be explicitly requested. Lets add an array of power of two aligned kmalloc caches if that is really necessary. Add some GFP_XXX flag to kmalloc to make it ^2 aligned maybe?