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

Tejun Heo
2009-04-01T08:55:52Z

Hello, Martin.

Martin Schwidefsky wrote:
> Yes, @GOTENT is a relocation against the GOT slot that contains the
> address of the symbol. It is a special version of @GOT that uses larl
> to locate the got slot directly without the need of a got base pointer.
>
> The code sequence with @GOT:
>
> larl %r12,_GLOBAL_OFFSET_TABLE_
> lg %r1,symbol@GOT(%r12)
>
> is equivalent to:
>
> larl %r1,symbol@GOTENT
> lg %r1,0(%r1)
>
> The advantage of the second code sequence is that it need a single
> register and the size of the GOT is not limited to 4K as in the first
> example (the offset in an RX format instruction is limited to 12 bits -
> but that is probably something you don't want to know ;-).

Maybe we can build indirection pointer manually by twiddling with
DEFINE_PER_CPU() in such a way that it doesn't have to distinguish
symbols and variables?

--
tejun