On 06/21/2011 04:20 PM, Andi Kleen wrote: > Josef Bacik <josef@xxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
