[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
On Wed, Aug 10, 2011 at 5:12 AM, Christoph Lameter <> 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?

Lin Ming

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

 \ /
  Last update: 2011-08-24 09:29    [W:0.136 / U:7.088 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site