lkml.org 
[lkml]   [2011]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [slub p4 6/7] slub: per cpu cache for partial pages
From
Date
On Wed, Aug 10, 2011 at 5:12 AM, Christoph Lameter <cl@linux.com> wrote:
> Allow filling out the rest of the kmem_cache_cpu cacheline with pointers to
> partial pages. The partial page list is used in slab_free() to avoid
> per node lock taking.
>
> In __slab_alloc() we can then take multiple partial pages off the per
> node partial list in one go reducing node lock pressure.
>
> We can also use the per cpu partial list in slab_alloc() to avoid scanning
> partial lists for pages with free objects.
>
> The main effect of a per cpu partial list is that the per node list_lock
> is taken for batches of partial pages instead of individual ones.
>
> Potential future enhancements:
>
> 1. The pickup from the partial list could be perhaps be done without disabling
> interrupts with some work. The free path already puts the page into the
> per cpu partial list without disabling interrupts.

Nice patches!

Could you share possible ways for this potential enhancement?

Thanks,
Lin Ming

>
> 2. __slab_free() may have some code paths that could use optimization.




\
 
 \ /
  Last update: 2011-08-24 09:29    [from the cache]
©2003-2011 Jasper Spaans