On Wed, 7 Sep 2011, Alex,Shi wrote: > In the per cpu partial slub, we may add a full page into node partial > list. like the following scenario: > > cpu1 cpu2 > in unfreeze_partials in __slab_alloc > ... > add_partial(n, page, 1); > alloced from cpu partial, and > set frozen = 1. > second cmpxchg_double_slab() > set frozen = 0 This scenario cannot happen as the frozen state confers ownership to a cpu (like the cpu slabs). The cpu partial lists are different from the per node partial lists and a slab on the per node partial lists should never have the frozen bit set. > If it happen, we'd better to skip the full page and to seek next slab in > node partial instead of jump to other nodes. But I agree that the patch can be beneficial if acquire slab ever returns a full page. That should not happen though. Is this theoretical or do you have actual tests that show that this occurs? -- 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/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>