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

From: Tejun Heo
Date: Wed Apr 01 2009 - 04:52:45 EST


Martin Schwidefsky wrote:
> On Wed, 01 Apr 2009 01:37:02 -0700 (PDT)
> David Miller <davem@xxxxxxxxxxxxx> wrote:
>
>> From: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
>> 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.
>

Also, there is no guarantee that the offset from dynamic allocator
will fall in the same 4G. There is reserve mechanism for static ones
for archs which need it but for dynamic ones, the offset can be any
value.

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/