Re: [PATCH 06/10] percpu: kill percpu_alloc() and friends

From: Tony Luck
Date: Wed Mar 11 2009 - 14:37:15 EST


On Wed, Feb 18, 2009 at 5:04 AM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> +static inline void *__alloc_percpu(size_t size, size_t align)
>  {
> +       /*
> +        * Can't easily make larger alignment work with kmalloc.  WARN
> +        * on it.  Larger alignment should only be used for module
> +        * percpu sections on SMP for which this path isn't used.
> +        */
> +       WARN_ON_ONCE(align > __alignof__(unsigned long long));
>        return kzalloc(size, gfp);
>  }

This WARN_ON just pinged for me when I built & ran linux-next tag next-20090311

Stack trace from the WARN_ON pointed to __create_workqueue_key() which
does:

wq->cpu_wq = alloc_percpu(struct cpu_workqueue_struct);

and the cpu_workqueue_struct is defined as ____cacheline_aligned

I hit this on ia64, but all this code looks generic.

-Tony
--
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/