[PATCH] Use 32 bit division in slab_put_obj()
authorBenjamin LaHaise <bcrl@linux.intel.com>
Wed, 1 Feb 2006 11:05:30 +0000 (03:05 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 1 Feb 2006 16:53:15 +0000 (08:53 -0800)
commit9884fd8df195fe48d4e1be2279b419be96127cae
tree1438571d206c1d488efb8454c64ae00c51438a2e
parentc84db23c6e587d3ab00a41c51fedf758e1f6ecd4
[PATCH] Use 32 bit division in slab_put_obj()

Improve the performance of slab_put_obj().  Without the cast, gcc considers
ptrdiff_t a 64 bit signed integer and ends up emitting code to use a full
signed 128 bit divide on EM64T, which is substantially slower than a 32 bit
unsigned divide.

I noticed this when looking at the profile of a case where the slab balance
is just on edge and thrashes back and forth freeing a block.

Signed-off-by: Benjamin LaHaise <benjamin.c.lahaise@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
mm/slab.c