Messages in this thread | | | Subject | Re: [GIT PULL] scheduler fixes | From | Benjamin Herrenschmidt <> | Date | Mon, 25 May 2009 15:19:03 +1000 |
| |
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.
| |