Re: [PATCH] alloc_percpu() fails to allocate percpu data

From: Andrew Morton
Date: Sat Feb 23 2008 - 03:23:42 EST


On Thu, 21 Feb 2008 19:00:03 +0100 Eric Dumazet <dada1@xxxxxxxxxxxxx> wrote:

> +#ifndef cache_line_size
> +#define cache_line_size() L1_CACHE_BYTES
> +#endif

argh, you made me look.

Really cache_line_size() should be implemented in include/linux/cache.h.
Then we tromp the stupid private implementations in slob.c and slub.c.

Then we wonder why x86 uses a custom cache_line_size(), but still uses
L1_CACHE_BYTES for its L1_CACHE_ALIGN().

Once we've answered that, we look at your

+ /*
+ * We should make sure each CPU gets private memory.
+ */
+ size = roundup(size, cache_line_size());

and wonder whether it should have used L1_CACHE_ALIGN().

I think I'd better stop looking.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/