The scenario was roughly this. Process A consumes 55% of available memory but has stable memory usage and has been running for days. Process B has a memory allocation bug and rapidly goes from low memory usage to consuming the remaining 45%. Which process gets killed first on my system? Process A.
I'm not up on the latest OOM scoring heuristics (they keep changing), but if it's only looking at instantaneous memory usage when things go critical, and not the trend, that seems dumb. I'd be willing to bet memory leaks are an especially common cause of OOM.
...then again, putting all these heuristics in the kernel with no tunables seems dumber. Does anyone know if delegating to a userspace OOM killer is possible or being contemplated?