On Wed, 20 Mar 2019, Christopher Lameter 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? > No objection, but I think the GFP flags should remain what they are for: to Get Free Pages. If we are to add additional flags to specify characteristics of slab objects, can we add a kmalloc_flags() variant that will take a new set of flags? SLAB_OBJ_ALIGN_POW2?