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

Martin Schwidefsky
2009-04-01T08:47:55Z

On Wed, 01 Apr 2009 01:37:02 -0700 (PDT)
David Miller <davem@davemloft.net> wrote:

> From: Martin Schwidefsky <schwidefsky@de.ibm.com>
> Date: Wed, 1 Apr 2009 10:32:57 +0200
>
> > 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 ;-).
>
> If practical I think you guys should just force all of the module
> address space below 4GB virtually, as we do on sparc64. It's a good
> way to avoid all of these problems.

We have thought about that solution as well but it not really a good
one. For a machine with more than 4GB of memory we would either loose
the memory that overlaps with the module area or we'd have to play
nasty remapping tricks. On s390 the kernel image is linked to address 0
(PAGE_OFFSET==0) and we have a simple 1:1 mapping for all real memory.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.