Re: SMP/highmem problem

Thomas Langås
2001-05-22T00:07:43Z

Rik van Riel:
> > So, any other ideas are very welcome :)
>
> The basis for the patch will be the page_alloc.c VM
> patch on http://www.surriel.com/patches/, but with 2
> minor changes:
>
> 1) don't allow GFP_BUFFER pages to loop in __alloc_pages(),
> but have them fail after a while ... needed to avoid
> deadlocks

I added a counter which didn't "goto try_again" if it hit 10.

> 2) never allow nr_free_buffer_pages to return a number
> larger than how many dirty pages would reasonably fit
> in ZONE_DMA and ZONE_NORMAL ... should fix your problem

Made this function do return MIN(sum, ZONE_DMA+ZONE_NORMAL)

This did actually improve things _alot_ :) We're going to perform some more
tests sometime tomorrow, but as far as I can tell, things are going way
better now than they did before. However, it might not be perfect yet...

--
-Thomas