2012/8/16 Christoph Lameter <cl@xxxxxxxxx>: > On Thu, 16 Aug 2012, Joonsoo Kim wrote: > >> s->cpu_partial determine the maximum number of objects kept >> in the per cpu partial lists of a processor. Currently, it is used for >> not only per cpu partial list but also cpu freelist. Therefore >> get_partial_node() doesn't work properly according to our first intention. > > The "cpu freelist" in slub is the number of free objects in a specific > page. There is nothing that s->cpu_partial can do about that. > > Maybe I do not understand you correctly. Could you explain this in some > more detail? I assume that cpu slab and cpu partial slab are not same thing. In my definition, cpu slab is in c->page, cpu partial slab is in c->partial When we have no free objects in cpu slab and cpu partial slab, we try to get slab via get_partial_node(). In that function, we call acquire_slab(). Then we hit "!object" case (for cpu slab). In that case, we test available with s->cpu_partial. I think that s->cpu_partial is for cpu partial slab, not cpu slab. So this test is not proper. This patch is for correcting this. Thanks! -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>