[Devel] [PATCH rh7 2/2] exit: clear TIF_MEMDIE after exit_task_work

Vladimir Davydov vdavydov at virtuozzo.com
Tue Mar 1 05:49:10 PST 2016


On Tue, Mar 01, 2016 at 12:21:20PM +0300, Kirill Tkhai wrote:
> 
> 
> On 01.03.2016 12:16, Kirill Tkhai wrote:
> > On 29.02.2016 18:58, Vladimir Davydov wrote:
> >> An mm_struct may be pinned by a file. An example is vhost-net device
> >> created by a qemu/kvm (see vhost_net_ioctl -> vhost_net_set_owner ->
> >> vhost_dev_set_owner). If such process gets OOM-killed, the reference to
> >> its mm_struct will only be released from exit_task_work -> ____fput ->
> >> __fput -> vhost_net_release -> vhost_dev_cleanup, which is called after
> >> exit_mmap, where TIF_MEMDIE is cleared. As a result, we can start
> >> selecting the next victim before giving the last one a chance to free
> >> its memory. In practice, this leads to killing several VMs along with
> >> the fattest one.
> > 
> > Do we have the same issue when group_leader's threads are owning the mm?
> 
> I.e. !group_leader, but threads in its group.

No. In this case next time oom is invoked, we will select another thread
sharing the same mm and so forth until the whole thread group exits, so
no needless kills should happen.


More information about the Devel mailing list