Messages in this thread Patch in this message |  | | Date | Fri, 24 Nov 2000 15:28:31 -0800 | | From | Chip Salzenberg <> | | Subject | Re: [PATCH] blindingly stupid 2.2 VM bug |
| |
According to Rik van Riel: > Luckily my patch fixes some of the suspect areas in > VM-global [...]
Would you say that the below patch is just the try_to_free_pages bug fix, then?
Index: mm/vmscan.c --- mm/vmscan.c.prev +++ mm/vmscan.c Fri Nov 24 15:17:59 2000 @@ -401,4 +401,5 @@ int try_to_free_pages(unsigned int gfp_m int priority; int count = SWAP_CLUSTER_MAX; + int loopcount = count; int killed = 0; @@ -409,5 +410,5 @@ int try_to_free_pages(unsigned int gfp_m again: - priority = 5; + priority = 6; do { while (shrink_mmap(priority, gfp_mask)) { @@ -431,5 +432,10 @@ again: shrink_dcache_memory(priority, gfp_mask); - } while (--priority > 0); + + /* Only lower priority if we didn't make progress. */ + if (count == loopcount) + --priority; + loopcount = count; + } while (priority > 0); done: unlock_kernel(); @@ -454,6 +460,9 @@ done: } - /* Return success if we freed a page. */ - return priority > 0; + /* Return success if we have enough free memory or we freed a page. */ + if (nr_free_pages > freepages.low) + return 1; + + return count < SWAP_CLUSTER_MAX; } -- Chip Salzenberg - a.k.a. - <chip@valinux.com> "Give me immortality, or give me death!" // Firesign Theatre - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |