Skip to contentSkip to conversation

exit.c -prerelease-diff - Jan 4

DISCUSSION Frank Jacobberger 2 participants 2 messages Jan 4, 2001

lore
Share & tools
lore
#1 lore raw

In article <[email protected]>,

Quoted 3 lines · Frank Jacobberger

+ current->state = TASK_ZOMBIE;

Why the update on exit.c to include TASK_ZOMBIE?

There's a subtle race in the exit path, where we need to make sure that "wait4()" does not pick up the process before it is ready to be picked up.

As the flag for "I'm ready to be picked up" is "TASK_ZOMBIE", we need to make sure that it maintains serialization. Look at how "exit_code" is used, for example - as it used to be, we didn't actually have any guarantees that "exit_code" had even been _written_ yet when wait4() started using it.

(That's the bug I _know_ about - there may be others here, because the exit sequence is damn subtle sometimes. So the prerelease-diff fixes at least that one thing, but I'm still trying checking all the other exit-paths, things like __exit_mm()/mmput()/swap_out() etc)

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/