Re: [PATCH 00/11] Task watchers: Introduction

From: Peter Williams
Date: Wed Jun 21 2006 - 01:41:00 EST


Matt Helsley wrote:
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

This feature is less useful than it could be in that it only allows a per-task raw notifier to be added to the current task. For the per process CPU capping client that I'm writing, I'd like to be able to attach one of these to a task that's being forked (from the forking task). Not being able to do this will force me to go to the expense of maintaining my own hash tables for locating my per task data.

On a related note, I can't see where the new task's notify field gets initialized during fork.


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.

Peter
--
Peter Williams pwil3058@xxxxxxxxxxxxxx

"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/