Re: [PATCH] fix exit_itimers() vs posix_timer_event() AB-BAdeadlock

From: Oleg Nesterov
Date: Sun Oct 23 2005 - 11:43:28 EST


Oleg Nesterov wrote:
>
> Andrew Morton wrote:
> >
> > Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
> > >
> > > + /*
> > > + * We are locking ->it_lock + tasklist_lock backwards
> > > + * from release_task()->exit_itimers(), beware deadlock.
> > > + */
> > > + leader = timr->it_process->group_leader;
> > > + while (unlikely(!read_trylock(&tasklist_lock))) {
> > > + if (leader->flags & PF_EXITING) {
> > > + smp_rmb();
> > > + if (thread_group_empty(leader))
> > > + return 0;
> > > + }
> > > + cpu_relax();
> > > + }
> >
> > Oh dear. Is there no way to fix this up by taking the locks in the correct
> > order? (Whatever that is).

Andrew, please drop this patch. It is obsoleted by Roland's
"[PATCH] Call exit_itimers from do_exit, not __exit_signal".

Oleg.
-
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/