Re: Avoiding external fragmentation with a placement policy Version 12

Martin J. Bligh
2005-06-02T18:42:39Z

>> It gets very messy when CIFS requires a large buffer to write back
>> to disk in order to free memory ...
>
> How about just fixing CIFS to submit memory page by page? The network
> stack below it supports that just fine and the VFS above it does anyways,
> so it doesnt make much sense that CIFS sitting below them uses
> larger buffers.

Might well be possible, but it's not just CIFS though. I don't see why
CIFS needs phys contig memory, but I think some of the drivers do (at
least they do at the moment). Large pages and hotplug definitely will.

>> There's one example ... we can probably work around it if we try hard
>> enough. However, the fundamental question becomes "do we support higher
>> order allocs, or not?". If not fine ... but we ought to quit pretending
>> we do. If so, then we need to make them more reliable.
>
> My understanding was that the deal was that order 1 is supposed
> to work but somewhat slower, and bigger orders are supposed to work
> at boot up time.

If that's the decision we come to, I'm OK with it ... but lots of code
needs fixing first. However, I don't think that's currently the stated
intent, we try pretty hard for up to order 3 in __alloc_pages(). I think
we'll have an inherent need for higher orders from what I've seen, and
thus we'll have to be capable to some extent of reclaiming mem for those
allocs. We should probably put together a list of things that really
need it, Joel had a start at one later down this thread.

M.