Task memory dumps
We need a mechanism to dump the memory of a task which has crashed (a.k.a. core dump).
The idea is that when a task is terminated because of some error, the system does not clean up its memory immediately. Instead the user-space takes action according to system policy (e.g. copies the contents of the memory to a file, starts up a debugger) and only after this action finishes, the task memory is freed. This mechanism has three main parts:
- Ensure that task memory is not immediately freed.
- Notify some user-space server that a task was terminated.
- After the action is finished, notify kernel that the task memory can be freed.
It would be advisable to minimize the danger that task memory does not get freed up if the dump action fails.