SLUB slab validation: Move tracking information alloc outside of lock
authorChristoph Lameter <clameter@sgi.com>
Tue, 17 Jul 2007 11:03:20 +0000 (04:03 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 17 Jul 2007 17:23:01 +0000 (10:23 -0700)
commit68dff6a9af9f27df5aeee6d0339818b0e36c1b51
treef25cc5e85925a8901e301e8f8d5d04188f27c0ee
parent5b95a4acf157eee552e013795b54eaa2ab1ee4a1
SLUB slab validation: Move tracking information alloc outside of lock

We currently have to do an GFP_ATOMIC allocation because the list_lock is
already taken when we first allocate memory for tracking allocation
information.  It would be better if we could avoid atomic allocations.

Allocate a size of the tracking table that is usually sufficient (one page)
before we take the list lock.  We will then only do the atomic allocation
if we need to resize the table to become larger than a page (mostly only
needed under large NUMA because of the tracking of cpus and nodes otherwise
the table stays small).

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/slub.c