Skip to contentSkip to conversation

SMP performance problem in 2.4 (was: Athlon spinlock performance)

DISCUSSION Manfred Spraul 1 participant 1 message Aug 6, 2003

lore
Share & tools
lore
#0 lore raw
Quoted 5 lines · Scott

The problem is in try_to_free_pages' and its associated routines, shrink_caches' and shrink_cache', in mm/vmscan.c'. After I made some changes to greatly reduce lock contention in the slab allocator and `shrink_cache',

How did you change the slab locking?

Quoted 7 lines

and then instrumented `shrink_cache' to see what it was doing, the problem showed up very clearly.

In one approximately 60-second period with the problematic workload running, try_to_free_pages' was called 511 times. It made 2597 calls to shrink_caches', which made 2592 calls to `shrink_cache' (i.e. it was very
rare for `kmem_cache_reap' to release enough pages itself).

2.6 contains a simple fix: I've removed kmem_cache_reap. Instead the code checks for empty pages in the slab caches every other second.

--
Manfred