Re: [GIT RFC] percpu: use dynamic percpu allocator as the defaultpercpu allocator

From: Tejun Heo
Date: Thu Apr 09 2009 - 07:55:59 EST


Hello, Ivan.

Ivan Kokshaysky wrote:
>> it seems like if two different files happen to use static percpu
>> variables with the same name, they would end up sharing it, right?
>> That looks a tad bit dangerous.
>
> True. One of possible solutions is to add another dummy variable,
> like this:
>
> #define DEFINE_PER_CPU_SECTION(type, name, section) \
> __attribute__((__section__(".discard"), __unused__)) \
> char __dummy__##name; \
> + __attribute__((__section__(".discard"))) \
> + char __per_cpu_multiple_def__##name; \
> __attribute__((__section__(PER_CPU_BASE_SECTION section))) \
> __weak __typeof__(type) per_cpu__##name
>
> so in that situation we'll get a link failure.

Hmmm... yeah, I agree not allowing common static names is the lesser
poison here. It's generally a good idea to use uniquely
distinguisible identifier for static symbols anyway to help debugging.
If this limitation is acceptable, I think we should also add the dup
build failure thing to the generic definition too tho so that such
cases can be discovered before they hit alpha and s390 later.

Any objections?

Thanks.

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