2.1.76, working fragmentation avoidance patch

kwrohrer@enteract.com
Sun, 4 Jan 1998 05:30:50 -0600 (CST)


And lo, kwrohrer@enteract.com saith unto me:
> This copy of the patch might work; I hope I caught the previous
> last-patch-was-broken message before it escaped...
Alas, I failed. But I did something more important: our last, best
hope for victory.

> Once I mail this, I'll even try it myself...
However, my revised patch works just fine, and in fact seems to give me
very good recovery from queue_glue out of memory areas. By making new
allocations for small (order<2) hunks of memory start from the far end
of the free lists from the DMA-capable memory, it lets the small free
areas grow into bigger ones via "natural paging action". This means
not only fragmentation resistance, but fragmentation recovery.

Testing is encouraged by those with x86 boxes, especially if you have
other than 32M of memory (i.e. other than half-DMA, half-non-DMA); it
works for me. Suggestions as to a better heuristic for non-x86
architectures, and testing with such a heuristic implemented, are
also welcome. See http://www.enteract.com/~kwrohrer if you missed
the corrected patch, want the patch vs. stock 2.1.76, or just want
to visit my home page. Sorry, nothing vs. 2.1.77 yet; I need the
sleep and would probably screw up the merge.

I think I'll stop mailing now...

Keith (who will spot the B5 allusion first?)