Re: [PATCH 1/2] percpu: make @dyn_size always mean min dyn_size in first chunk init functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]