OOM Killerのソース読んでみた

仕事でメモリ関係で問題が発生して、その対応の中でちょこっと読んでみたので、メモ


ソースコードはmm/oom_kill.c。


out_of_memory()->select_bad_process()->oom_badness()で決めて,oom_kill_process()でプロセス終了となる。
どのプロセスを終了させるかはout_of_memory()の中で条件に合うか、またはselect_bad_process()が決めるみたい。


select_bad_process()がどのようにプロセスを決めるかは単にfor_each_process()でプロセスを回しているだけなので、プロセスの親子関係とかは見ていないっぽい。
ちなみに、for_each_process()は単なるfor文のマクロ。