[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <49D32B96.3060102@kernel.org>
Date: Wed, 01 Apr 2009 17:53:42 +0900
From: Tejun Heo <tj@...nel.org>
To: Martin Schwidefsky <schwidefsky@...ibm.com>
CC: Ingo Molnar <mingo@...e.hu>, rusty@...tcorp.com.au,
tglx@...utronix.de, x86@...nel.org, linux-kernel@...r.kernel.org,
hpa@...or.com, Paul Mundt <lethal@...ux-sh.org>,
rmk@....linux.org.uk, starvik@...s.com, ralf@...ux-mips.org,
davem@...emloft.net, cooloney@...nel.org, kyle@...artin.ca,
matthew@....cx, grundler@...isc-linux.org, takata@...ux-m32r.org,
benh@...nel.crashing.org, rth@...ddle.net,
ink@...assic.park.msu.ru, heiko.carstens@...ibm.com
Subject: Re: [GIT RFC] percpu: use dynamic percpu allocator as the default
percpu allocator
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@...ENT
> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists