Messages in this thread | | | Date | Thu, 17 Jun 1999 03:36:50 +0200 (CEST) | From | Andrea Arcangeli <> | Subject | [patch] 2.2.10_andrea-VM6.gz |
| |
I just released a 2.2.10_andrea-VM6. This new patch is still better in detecting an OOM condition (VM5 was working fine here but I had a report from Juergen that is still able to deadlock VM5 with the same stack-eater that was just working fine here... but I think to have fixed the only bit of code (*) that may have confused VM5 and so VM6 should definitely never deadlock with an OOM, and it definitely works still better than VM5 here).
It will also improve drammatically swap/VM performances compared to a clean 2.2.10 (try if you don't trust :). It will also avoid init(1) to be killed during OOM.
(as usual there is the SCHED_YIELD fix from Ingo + my reschedule_idle partial rewrite)
I also changed how I choose the task to kill: when 2.2.10_andrea-VM6 reaches OOM, it sends a SIGKILL to all tasks that belongs to the bigger MM in the system. I perfectly know it's far from being a perfect solution (there isn't a perfect solution except asking the user what to kill in a dialog window, but we can't do that since we can't wait for an user feedback) but it's the simpler one that is likely to avoid us to kill innocent daemons when an application become crazy (like in the DBMS CGI query case for example). We may want to change the heuristic to something of more complex of course but I know there are cases where this simple heuristic is just enough (and _needed_) to do the right thing. (we may also use a sysctl to change the oom behaviour)
I will appreciate any feedback/comment about the patch :). Many thanks.
You can donwload the VM patch against 2.2.10 from here:
ftp://e-mind.com/pub/andrea/kernel-patches/2.2.10_andrea-VM6.gz
As usual you are suggested to download from the mirrors though 8^):
ftp://ftp.suse.com/pub/people/andrea/kernel-patches/2.2.10_andrea-VM6.gz (USA, Thanks to SuSE -> http://www.suse.com/, large bandwith)
ftp://ftp.linux.it/pub/People/andrea/kernel-patches/2.2.10_andrea-VM6.gz (Italy, Thanks to linux.it guys)
ftp://master.softaplic.com.br/pub/andrea/kernel-patches/2.2.10_andrea-VM6.gz (Brazil, Thanks to Edesio Costa e Silva <edesio@acm.org>, 2MBits/sec)
Andrea Arcangeli
(*) I think the reason VM5 may get confused and deadlock (as clean 2.2.10 does), is that I was considering a progress the unmapping of a private mmap or of a swap cache page. So I may go into an infinite loop of pagein/unmap/pagein/unmap without never really go oom().
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |