> On Friday 27 June 2003 16:43, Martin J. Bligh wrote:
>> The buddy allocator is not a good system for getting rid of fragmentation.
>
> We've talked in the past about throwing out the buddy allocator and adopting
> something more modern and efficient and I hope somebody will actually get
> around to doing that. In any event, defragging is an orthogonal issue. Some
> allocation strategies may be statistically more resistiant to fragmentation
> than others, but no allocator has been invented, or ever will be, that can
> guarantee that terminal fragmentation will never occur - only active
> defragmentation can provide such a guarantee.
Whilst I agree with that in principle, it's inevitably expensive. Thus
whilst we may need to have that code, we should try to avoid using it ;-)
The buddy allocator is obviously flawed in this department ... strategies
like allocating a 4M block to a process up front, then allocing out of that
until we're low on mem, then reclaiming in as large blocks as possible from
those process caches, etc, etc, would obviously help too. Though maybe
we're just permanently low on mem after a while, so it'd be better to just
group pagecache pages together ... that would actually be pretty simple to
change ... hmmm.
M.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/