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

Martin Schwidefsky
2009-04-01T09:09:06Z

On Wed, 01 Apr 2009 17:50:45 +0900
Tejun Heo <tj@kernel.org> wrote:

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

If we map the modules with a 4GB distance to the main kernel image then
we don't have to worry about the offsets anymore. The compiler could
just use LARL to get the address of the static per-cpu variables and
SHIFT_PERCPU_PTR could be a RELOC_HIDE.

It just that the remapping we need to do is sooo icky ..

--
blue skies,
Martin.

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