Re: [GIT PULL] scheduler fixes

Benjamin Herrenschmidt
2009-05-25T05:26:19Z

On Mon, 2009-05-25 at 04:53 +0200, Ingo Molnar wrote:
>
> Would it be possible to restructure things to move kmalloc init to
> before IRQ init as well? We have a couple of uglinesses there too.

Amen :-)

> Conceptually, memory should be the first thing set up in general, in
> a kernel. It does not need IRQs, timers, the scheduler or any of the
> IO facilities and abstractions. All of them need memory though - and
> as Linux scales to more and more hardware via the same single image,
> so will we get more and more dynamic concepts like cpumask_var_t and
> sparse-irqs, which want to allocate very early.
>
> setup_arch() is one huge function that sets up all architecture
> details at once - but if we split a separate setup_arch_mem() out of
> it, and left the rest in setup_arch (and moved it further down), we
> could remove much of bootmem (especially the ugly uses).
>
> This might even be doable realistically, and we could thus librarize
> bootmem and eliminate it from x86 at least. Perhaps.

Yup, see my earlier email. Archs like x86 and powerpc already have a low
level allocator they can use to allocate the mem_map etc... so bootmem
really becomes redundant.

Cheers
Ben.