On Wed 27-01-21 11:53:55, Christian König wrote:
[...]
In general processes are currently not held accountable for memory theyTrue
reference through their file descriptors. DMA-buf is just one special case.
In other words you can currently do something like thismemfd is just shmem under cover, no? And that means that the memory gets
fd = memfd_create("test", 0);
while (1)
write(fd, buf, 1024);
and the OOM killer will terminate random processes, but never the one
holding the memfd reference.
accounted to MM_SHMEMPAGES. But you are right that this in its own
doesn't help much if the fd is shared and the memory stays behind a
killed victim.
But I do agree with you that there are resources which are bound to a
process life time but the oom killer has no idea about those as they are
not accounted on a per process level and/or oom_badness doesn't take
them into consideration.