Re: [PATCH] do not abuse ->cred_guard_mutex in threadgroup_lock()

From: Andrew Morton
Date: Thu Mar 21 2013 - 18:06:32 EST


On Thu, 21 Mar 2013 17:21:38 +0100 Oleg Nesterov <oleg@xxxxxxxxxx> wrote:

> threadgroup_lock() takes signal->cred_guard_mutex to ensure that
> thread_group_leader() is stable. This doesn't look nice, the scope
> of this lock in do_execve() is huge.
>
> And as Dave pointed out this can lead to deadlock, we have the
> following dependencies:
>
> do_execve: cred_guard_mutex -> i_mutex
> cgroup_mount: i_mutex -> cgroup_mutex
> attach_task_by_pid: cgroup_mutex -> cred_guard_mutex
>
> Change de_thread() to take threadgroup_change_begin() around the
> switch-the-leader code and change threadgroup_lock() to avoid
> ->cred_guard_mutex.
>
> Note that de_thread() can't sleep with ->group_rwsem held, this
> can obviously deadlock with the exiting leader if the writer is
> active, so it does threadgroup_change_end() before schedule().

<formletter>
When writing a changelog, please describe the end-user-visible effects
of the bug, so that others can more easily decide which kernel
version(s) should be fixed, and so that downstream kernel maintainers
can more easily work out whether this patch will fix a problem which
they or their customers are observing.
</formletter>

> Reported-by: Dave Jones <davej@xxxxxxxxxx>

Perhaps Dave's report provides the needed info? trinity went titsup?


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/