kill task_detached() (Was: ptrace: kill detah tracehooks)
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest8 patches 14 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/8 | make do_notify_parent() return boolinclude/ kernel/ kernel/ | +17 | 1 reply | |
| 2/8 | kill tracehook_notify_death()include/ kernel/ | +11 | 10 replies | |
| 3/8 | __ptrace_detach: avoid task_detached(), check do_notify_parent()kernel/ | +18 | 1 reply | |
| 4/8 | make do_notify_parent() __must_check, update the callersinclude/ kernel/ | +9 | 1 reply | |
| 5/8 | reparent_leader: check EXIT_DEAD instead of task_detached()kernel/ | +1 | 0 replies | |
| 6/8 | kill task_detached()include/ kernel/ | +2 | 0 replies | |
| 7/8 | do not change dead_task->exit_signalkernel/ kernel/ | +0 | 0 replies | |
| 8/8 | redefine thread_group_leader() as exit_signal >= 0fs/ include/ | +5 | 1 reply |
Reviews trailers per patch
3 of 8 patches have a Reviewed-by or Acked-by.
| Patch | Tejun Heo |
|---|---|
| 1/8 | A-b |
| 2/8 | |
| 3/8 | A-b |
| 4/8 | A-b |
| 5/8 | |
| 6/8 | |
| 7/8 | |
| 8/8 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH 0/8] kill task_detached() (Was: ptrace: kill detah tracehooks)
Remove tracehook_notify_death(), and kill task_detached() logic.
IMHO, task_detached() is very strange and confusing. Sometimes it used instead of !thread_group_leader() when the task is live. Sometimes it is used to detect the EXIT_DEAD tasks (reparent_leader). Sometimes it used after do_notify_parent() which sets ->exit_signal = -1 to signal the caller it should set EXIT_DEAD.
Basically, this series does:
- s/task_detached/thread_group_leader/ when the caller need to know if it is the group_leader or not
- s/task_detached/EXIT_DEAD/ when the caller needs to filter out the EXIT_DEAD tasks
- changes do_notify_parent() to return a boolean and converts the callers from
do_notify_parent(p);
if (task_detached(p))
// aha, do_notify_parent() changed ->exit_signal release_task(p)
to
if (do_notify_parent(p))
release_task(p)
- kills the now unused task_detached()
- makes task->exit_signal "const" and redefines thread_group_leader() for micro-optimization.
fs/exec.c | 1 + include/linux/sched.h | 15 ++++------- include/linux/tracehook.h | 34 -------------------------- kernel/exit.c | 58 +++++++++++++++++++------------------------- kernel/ptrace.c | 32 +++++++++++++----------- kernel/signal.c | 16 ++++++------ 6 files changed, 57 insertions(+), 99 deletions(-)
Oleg.