On 06/21/2011 04:20 PM, Andi Kleen wrote: > Josef Bacik <jo...@redhat.com> writes: > >> When doing DIO tracing I noticed we were doing a ton of allocations, a lot of >> the time for extent_states. Some of the time we don't even use the >> prealloc'ed >> extent_state, it just get's free'd up. So instead create a per-cpu cache >> like >> the radix tree stuff. So we will check to see if our per-cpu cache has a >> prealloc'ed extent_state in it and if so we just continue, else we alloc a >> new >> one and fill the cache. Then if we need to use a prealloc'ed extent_state we >> can just take it out of our per-cpu cache. We will also refill the cache on >> free to try and limit the number of times we have to ask the allocator for >> caches. With this patch dbench 50 goes from ~210 mb/s to ~260 mb/s. Thanks, > > You're just reimplementing a poor man's custom slab cache -- all of this is > already > done in slab. > > If the difference is really that big better fix slab and have everyone > benefit? > > Did you use slub or slab? > Did you analyze where the cycles are spent? >
Ugh slub debugging bites me again. Thanks, Josef -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html