On Thu, Jun 23, 2016 at 7:31 AM, Oleg Nesterov <oleg@xxxxxxxxxx> wrote: > > I didn't see the patches yet, quite possibly I misunderstood... But no, > I don't this we can do this (if we are not going to move ti->flags to > task_struct at least). Argh. Yes, ti->flags is used by others. Everything else should be thread-synchronous, but there's ti->flags. (And if we get scheduled, the thread-synchronous things will matter, of course): > Yes, but the problem is that a zombie thread can do its last schedule > before it is reaped. Worse, the wait sequence will definitely look at it. But that does bring up another possibility: do it at wait() time, when we do release_thread(). That's when we *used* to synchronously free it, before we did the lockless RCU walks. At that point, it has been removed from all the thread lists. So the only way to find it is through the RCU walks. Do any of *those* touch ti->flags? I'm not seeing it, and it sounds fixable if any do. If we could release the thread stack in release_thread(), that would be good. Andy - I bet you can at least test it. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html