Messages in this thread | | | From | Roland McGrath <> | Subject | Re: [PATCH 4/4] forget_original_parent: cleanup ptrace pathes | Date | Wed, 4 Feb 2009 18:40:20 -0800 (PST) |
| |
> - Fold ptrace_exit() into forget_original_parent(), it is trivial > now. More importantly, this makes the code more symmetrical with > reparent_thread().
Please don't do this. The ptrace functions are separated not because they are large, but because they are the ptrace innards. We have been moving away from the core task handling innards having intimate ptrace magic knowledge directly intertwined, and we don't want to move back the other way. In later cleanups, we will eventually separate ptrace linkage from the tasklist_lock'd parent/child linkage more thoroughly.
> - The same for ptrace_exit_finish(), and "ptrace_" is not correct > any longer. > > - "ptrace_dead" doesn't match the reality, rename to "dead_list".
For the same reasons, I am not entirely sanguine about overloading ptrace_entry for any case not related to ptrace. We want to be able to clean up the ptrace data structures in the future such that there may well not be any such list_head allocated in an untraced task_struct.
This case is sufficiently obscure, I can't see that anyone would really care about the marginal performance hit for just dropping the lock after reparent_thread returns true, call release_task(), re-lock and restart the loop on remaining children. (And I don't see any atomicity problem with this unlock/relock.)
> - swap the reparent_thread()'s arguments, just to make it more > symmetrical with __ptrace_detach().
No problem there.
Thanks, Roland
| |