[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20090624194239.A29174059B@magilla.sf.frob.com>
Date: Wed, 24 Jun 2009 12:42:39 -0700 (PDT)
From: Roland McGrath <roland@...hat.com>
To: Oleg Nesterov <oleg@...hat.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Ingo Molnar <mingo@...e.hu>,
Ratan Nalumasu <rnalumasu@...il.com>,
Vitaly Mayatskikh <vmayatsk@...hat.com>,
linux-kernel@...r.kernel.org
Subject: Re: [RFC,PATCH 2/2] change __wake_up_parent() to use filtered
wakeup
> > Agreed. The not-right case I had in mind was do_notify_parent_cldstop
> > where maybe it could be ->real_parent of the untraced group_leader.
>
> Hmm. Could you explain?
>
> I feel I missed something, but can't understand.
Sorry, it wasn't very clear. (I guess I should have said "traced group
leader", though that would not have been much more obvious.)
do_notify_parent_cldstop:
if (task_ptrace(tsk))
parent = tsk->parent;
else {
tsk = tsk->group_leader;
parent = tsk->real_parent;
}
...
__wake_up_parent(tsk, parent);
In the "else" case, parent is not necessarily tsk->parent. That is, if
an untraced thread calls do_notify_parent_cldstop() but its group_leader
is ptrace_reparented(). Then waitee->group_leader->real_parent is who
gets the wakeup, but __wake_up_parent->child_wait_wakeup would check
only waiter == waitee->group_leader->parent.
Thanks,
Roland
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists