David Rientjes wrote: > How have you tested this? > > I'm wondering why you do not see oom killing of many processes if the > victim is a very large process that takes a long time to free memory in > exit_mmap() as I do because the oom reaper gives up trying to acquire > mm->mmap_sem and just sets MMF_OOM_SKIP itself. > We can call __oom_reap_task_mm() from exit_mmap() (or __mmput()) before exit_mmap() holds mmap_sem for write. Then, at least memory which could have been reclaimed if exit_mmap() did not hold mmap_sem for write will be guaranteed to be reclaimed before MMF_OOM_SKIP is set.