On Sat, 31 May 2014, Vladimir Davydov wrote: > > You can use a similar approach than in SLUB. Reduce the size of the per > > cpu array objects to zero. Then SLAB will always fall back to its slow > > path in cache_flusharray() where you may be able to do something with less > > of an impact on performace. > > In contrast to SLUB, for SLAB this will slow down kfree significantly. But that is only when you want to destroy a cache. This is similar. > Fast path for SLAB is just putting an object to a per cpu array, while > the slow path requires taking a per node lock, which is much slower even > with no contention. There still can be lots of objects in a dead memcg > cache (e.g. hundreds of megabytes of dcache), so such performance > degradation is not acceptable, IMO. I am not sure that there is such a stark difference to SLUB. SLUB also takes the per node lock if necessary to handle freeing especially if you zap the per cpu partial slab pages. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>