Re: [FOR REVIEW, PATCH 0/2] do_wait() cleanups.

From: Roland McGrath
Date: Wed May 06 2009 - 16:27:31 EST


> Also. This is completely off-topic wrt ptrace cleanups, but if we
> change do_wait() now perhaps it makes sense to optimize do_wait()
> in PIDTYPE_PID case. In this case we do not need to scan the lists,
> we can inspect the task directly. This change should be simple, but
> it will increase .text. Do you think it makes sense?

Yes, I think that's a worthwhile optimization in its own right. In waitpid
calls using an explicit PID, it will be a huge help for both applications
with many other children and for applications with many threads (when the
waitpid caller does not happen to be the fork caller). It looks like it
would be simple and cheap enough.

I doubt this would need much restructuring of the code (just a
short-circuit path that calls wait_consider_task from do_wait after
checking !task_detached(p) && !task_ptrace(p) && __WNOTHREAD ?
p->real_parent == current : same_thread_group(,p->real_parent)).
If that's true, then we can do this later after settling these
cleanups and ptrace stuff, perhaps along with the wakeup-avoidance
hack that never got finished. That stuff is really just pure optimization
not inherently apropos to anything else.


Thanks,
Roland
--
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/