lkml.org 
[lkml]   [2006]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [MODSLAB 3/7] A Kmalloc subsystem
On Sat, 19 Aug 2006, Manfred Spraul wrote:

> What about:
>
> if (unlikely(addr & (~(PAGE_SIZE-1))))
> slabp=virt_to_page(addr)->pagefield;
> else
> slabp=addr & (~(PAGE_SIZE-1));

Well this would not be working with the simple slab design that puts the
first element at the page border to simplify alignment.

And as we have just seen virt to page is mostly an address
calculation in many configurations. I doubt that there would be a great
advantage. Todays processors biggest cause for latencies are
cacheline misses.. Some arithmetic with addresses does not seem to
be that important. Misaligning data in order to not put objects on such
boundaries could be an issue.

> Modify the kmalloc caches slightly and use non-power-of-2 cache sizes. Move
> the kmalloc(PAGE_SIZE) users to gfp.

Power of 2 cache sizes make the object align neatly to cacheline
boundaries and make them fit tightly into a page.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-08-19 18:49    [W:0.080 / U:36.252 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site