[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.1903191751560.18028@chino.kir.corp.google.com>
Date: Tue, 19 Mar 2019 17:53:51 -0700 (PDT)
From: David Rientjes <rientjes@...gle.com>
To: Christopher Lameter <cl@...ux.com>
cc: Vlastimil Babka <vbabka@...e.cz>, linux-mm@...ck.org,
Pekka Enberg <penberg@...nel.org>,
Joonsoo Kim <iamjoonsoo.kim@....com>,
Ming Lei <ming.lei@...hat.com>,
Dave Chinner <david@...morbit.com>,
Matthew Wilcox <willy@...radead.org>,
"Darrick J . Wong" <darrick.wong@...cle.com>,
Christoph Hellwig <hch@....de>,
Michal Hocko <mhocko@...nel.org>, linux-kernel@...r.kernel.org,
linux-xfs@...r.kernel.org, linux-fsdevel@...r.kernel.org,
linux-block@...r.kernel.org
Subject: Re: [RFC 0/2] guarantee natural alignment for kmalloc()
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?
Powered by blists - more mailing lists