The slab allocation algorithm uses a separate cache for each different object type. Assuming there is one cache per object type, explain why this doesn't scale well with multiple CPUs. What could be done to address this scalability issue?
This had long been a problem with the slab allocator - poor scalability with multiple CPUs. The issue comes from having to lock the global *** when it is being accesses. This has the effect of serializing *** accesses on multiprocessor systems. Solaris has addressed this by introducing a per-CPU ***, rather than a single global ***.