> True its very very fast but now we have SLAB handling the small allocations
> we should ditch the buddy allocator IMHO for something more intelligent, or
> even something really stupid like first fit. Both will do better than it
First fit and binary buddy are not exclusive; moreover, binary buddies offer
rather fast rejoin operations (see mm/page_alloc.c:free_pages_ok). If we
really want to rip out (or fiddle with) the low-level allocation code, we
could do something to weight userspace pages towards the high (non-ISA-DMA
capable, in case it matters) end of memory, while locked (kernel and kernel
dynamic data) pages gravitate towards the boundary between DMA and non-DMA
memory (with pages going on the DMA side if they need it or if we need the
room).
However, none of these plans actually deals with fragmentation in any way,
they just run a little farther and pray the fragmentation doesn't follow.
Problem is, it *will* catch up one day. I'd just as soon shoot it now,
so we can make larger allocations, then actually do something to make
them happen should they block.
Keith