Task watchers is a notifier chain that sends notifications to registered
callers whenever a task forks, execs, changes its [re][ug]id, or exits.
The goal is to keep the these paths comparatively simple while
enabling the addition of per-task intialization, monitoring, and tear-down
functions by existing and proposed kernel features.
The first patch adds a global atomic notifier chain, registration
functions, and a function to invoke the callers on the chain.
Later patches:
Register a task watcher for process events, shuffle bits of process events
functions around to reduce the code, and turn it into a module.
Switch task watchers from an atomic to a blocking notifier chain
Register task watchers for:
Audit
Per Task Delay Accounting (note: not the taskstats calls)
Profile
Add a per-task raw notifier chain
Add a task watcher for semundo
Switch the semundo task watcher to a per-task watcher
I've broken up the patches this way for clarity, to allow cherry-picking, and
to help focus the discussion of any potentially controversial details.