Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment

Nick Piggin
2008-03-03T12:29:18Z

On Mon, Mar 03, 2008 at 11:44:07AM +0200, Pekka Enberg wrote:
> Hi Nick,
>
> On Mon, Mar 3, 2008 at 11:34 AM, Nick Piggin <npiggin@suse.de> wrote:
> > SLUB should pack even small objects nicely into cachelines if that is what
> > has been asked for. Use the same algorithm as SLAB for this.
>
> The patches look good but this changelog is missing context. Why do we
> want to do this?

You're right, the changelog should be improved if/when it is merged.
Actually the context is discussed in another thread just now on lkml
if you are interested ("alloc_percpu() fails to allocate percpu data").

>
> On Mon, Mar 3, 2008 at 11:34 AM, Nick Piggin <npiggin@suse.de> wrote:
> > @@ -1896,12 +1896,15 @@ static unsigned long calculate_alignment
> > * specified alignment though. If that is greater
> > * then use it.
> > */
>
> You might want to fix the above comment too.

Yes.

>
> > - if ((flags & SLAB_HWCACHE_ALIGN) &&
> > - size > cache_line_size() / 2)
> > - return max_t(unsigned long, align, cache_line_size());
> > + if (flags & SLAB_HWCACHE_ALIGN) {
> > + unsigned long ralign = cache_line_size();
> > + while (size <= ralign / 2)
> > + ralign /= 2;
> > + align = max(align, ralign);
> > + }