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

Tejun Heo
2009-03-25T14:17:29Z

Martin Schwidefsky wrote:
> On Wed, 25 Mar 2009 20:51:31 +0900
> Tejun Heo <tj@kernel.org> wrote:
>
>>> With your patches and a RELOC_HIDE version that uses the GOTENT
>>> indirection the kernel won't compile because the "X" constraint for
>>> the GOTENT access needs a symbol and there are quite a few users that
>>> pass a pointer. I do not see a simple solution for that problem yet.
>> Ah... okay. Now I get it. It wasn't expecting variables there. How
>> about doing the following?
>>
>> #define SHIFT_PERCPU_PTR(ptr, offset) (({ \
>> if (__builtin_constant_p(ptr)) \
>> do GOTENT trick; \
>> else \
>> RELOC_HIDE(); \
>> }))
>
> That doesn't work because __builtin_constant_p is false for variable
> symbols. I would need a __builtin_symbol_p but that doesn't exist.

Right, I somehow always get confused about the two. Eh... Not easy.
I think alpha might have the same problem too. I suppose we'll have
to make the legacy allocator available for alpha and s390 for the time
being. I'll get to that.

Thanks.

--
tejun