lkml.org 
[lkml]   [2009]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [RFC,PATCH 2/2] change __wake_up_parent() to use filtered wakeup
Date
> > 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.
>
> ... and in this case we do not wake up ->group_leader->real_parent.
>
> But this is fine? It doesn't make sense to wake up, wait_consider_task()
> will notice task_ptrace() and do nothing?

Right. I knew it needed more thought (that's why I said "maybe wrong" to
begin with ;-).

> I really need to think with a fresh head, but it seems to me we could add
> BUG_ON(p->parent != parent) into wait_consider_task() after "if (ptrace...)"
> check.
>
> And this "proves" your check in child_wait_callback() is correct, with
> __WNOTHREAD do_wait_thread(parent) is always called with parent ==
> sleeper, the caller of do_wait().
>
> No?

Yes, I think that's right.

> Btw, this reminds me that wait_consider_task() doesn't need the "parent"
> argument. I noticed this after adding wait_opts, but forgot to send a
> patch.

With the wq.private now in wait_opts, yes.


Thanks,
Roland


\
 
 \ /
  Last update: 2009-06-24 22:55    [W:0.077 / U:0.336 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site