summaryrefslogtreecommitdiff
path: root/mm/swap_state.c
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2008-01-07 23:20:27 -0800
committerChristoph Lameter <clameter@sgi.com>2008-02-04 10:56:02 -0800
commit7c2e132c54c79af4e524154074b9a02c3c0d6072 (patch)
tree0976894919b0a7675855d14cb7d68e007a200289 /mm/swap_state.c
parent9824601ead957a29e35d539e43266c003f7b085b (diff)
downloadlwn-7c2e132c54c79af4e524154074b9a02c3c0d6072.tar.gz
lwn-7c2e132c54c79af4e524154074b9a02c3c0d6072.zip
Add parameter to add_partial to avoid having two functions
Add a parameter to add_partial instead of having separate functions. The parameter allows a more detailed control of where the slab pages is placed in the partial queues. If we put slabs back to the front then they are likely immediately used for allocations. If they are put at the end then we can maximize the time that the partial slabs spent without being subject to allocations. When deactivating slab we can put the slabs that had remote objects freed (we can see that because objects were put on the freelist that requires locks) to them at the end of the list so that the cachelines of remote processors can cool down. Slabs that had objects from the local cpu freed to them (objects exist in the lockless freelist) are put in the front of the list to be reused ASAP in order to exploit the cache hot state of the local cpu. Patch seems to slightly improve tbench speed (1-2%). Signed-off-by: Christoph Lameter <clameter@sgi.com> Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'mm/swap_state.c')
0 files changed, 0 insertions, 0 deletions