Messages in this thread | | | Date | Wed, 27 Jan 2021 12:02:08 +0100 | From | Michal Hocko <> | Subject | Re: [PATCH] procfs/dmabuf: Add /proc/<pid>/task/<tid>/dmabuf_fds |
| |
On Wed 27-01-21 11:53:55, Christian König wrote: [...] > In general processes are currently not held accountable for memory they > reference through their file descriptors. DMA-buf is just one special case.
True
> In other words you can currently do something like this > > 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.
memfd is just shmem under cover, no? And that means that the memory gets 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. -- Michal Hocko SUSE Labs
| |