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

From: Andrew Morton <[email-masked]>
Date: Sat, 23 Feb 2008 00:04:48 -0800

On Thu, 21 Feb 2008 19:00:03 +0100 Eric Dumazet <[email-masked]> 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.