Messages in this thread |  | | Date | Sat, 25 Nov 2000 14:57:01 +0100 | From | Andrea Arcangeli <> | Subject | Re: [PATCH] blindingly stupid 2.2 VM bug |
| |
+ /* Only lower priority if we didn't make progress. */ + if (count == loopcount) + --priority; + loopcount = count;
If the while loops around the page-recycling-methods were missing we would have just noticed as soon as we needed to recycle some byte of cache.
+ /* Return success if we have enough free memory or we freed a page. */ + if (nr_free_pages > freepages.low) + return 1;
This anti-kill-flood check is just handled by the GFP layer (you don't need to replicate it here in the memory balancing layer). It's currently done against freepages.high to stay conservative (it's meant to catch a task killed while we were blocked; a task killed will certainly raise nr_free_pages over freepages.high).
+ return count < SWAP_CLUSTER_MAX;
This will make oom handling less graceful and if memory balancing fails wrongly when the machine isn't truly oom this will only hide the problem (and if there's a real problem like we had with MAP_SHARED and always-async-kpiod [fixed by VM-global] it won't even be enough to hide it).
VM-global-*-7 has no known bugs AFIK.
Andrea - 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/
|  |