On Fri, 18 Jun 2010, Tejun Heo wrote: > Hello, > > On 06/18/2010 07:31 PM, Christoph Lameter wrote: > > We need SLUB_PAGE_SHIFT * sizeof(kmem_cache_cpu). So it would be > > > > BUILD_BUG_ON(PERCPU_DYNAMIC_EARLY_SIZE < SLUB_PAGE_SHIFT * sizeof(struct > > kmem_cache_cpu))? > > Yeah, something like that but I would add some buffer there for > alignment and whatnot. Only the percpu allocator would know the waste for alignment and "whatnot". What would you like me to add to the above formula to make it safe? > > What is the role of SLOTS? > > It's allocation map. Each consecutive allocs consume one if alignment > doesn't require padding but two if it does. ie. It limits how many > items one can allocate. > > > Each kmem_cache_cpu structure is a separate percpu allocation. > > If it's a single item. Nothing to worry about. ok so BUILD_BUG_ON(SLUB_PAGE_SHIFT * <fuzz-factor> > SLOTS); I dont know what fuzz factor would be needed. Maybe its best to have a macro provided by percpu? VERIFY_EARLY_ALLOCS(<nr-of-allocs>,<total-size-consumed>) The macro would generate the proper BUILD_BUG_ON? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>