Re: [Patch] Cacheline align xlog_t

Timothy Shimmin
2008-04-04T01:01:52Z

Andi Kleen wrote:
> On Thu, Apr 03, 2008 at 08:23:47AM +1000, David Chinner wrote:
>>> For the dynamic allocation you would rather need to make sure it
>>> starts at a cache line boundary explicitely because the allocator doesn't
>>> know the alignment of the target type, otherwise your careful
>>> padding might be useless.
>
>> There isn't one, right?
>
> You can always align yourself with kmalloc (or any other arbitary
> size allocator) with the standard technique:
> get L1_CACHE_BYTES-1 or possibly better cache_line_size() - 1 bytes
> more and then align the pointer manually with ALIGN. Only tricky part
> is that you have to undo the alignment before freeing.
>
Yeah, how do you know how much was offset for the alignment
to go back for the freeing. I guess you could also keep the original pointer
or the offset handy (a pain). Or can the allocator help out?

--Tim