Thread (30 messages) 30 messages, 7 authors, 2003-07-03

Re: [RFC] My research agenda for 2.7

From: Mel Gorman <hidden>
Date: 2003-06-27 15:10:31
Also in: lkml

On Fri, 27 Jun 2003, Daniel Phillips wrote:
On Friday 27 June 2003 17:04, Martin J. Bligh wrote:
quoted
Daniel Phillips [off-list ref] wrote (on Friday, June 27, 2003
quoted
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 ;-)
That's exactly the idea.  Active defragmentation is just a fallback to handle
currently-unhandled corner cases.  A good, efficient allocator that resists
fragmentation in the first place is still needed.
I still suspect moving order0 allocations to slab will be a fragmentation
resistent allocator but my main concern would be that the slab allocator
overhead, both CPU and storage requirements will be too high.

On the other hand, it would do some things you are looking for. For
example, it allocates large blocks of memory in one lump and then
allocates them piecemeal. Second, it would be resistent to the FAFAFA
problem Martin pointed out. As slabs would be allocated in a large block
from the buddy, you are guarenteed that you'll be able to free up buddies.
Lastly, as there would be a cache specifically for userspace pages, a
defragger that looked exclusively at user pages will still be sure of
being able to free adjacent buddies.

I need to write a proper RFC.....

-- 
Mel Gorman
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help