Re: 2.6.18-rc2-mm1

From: Andrew Morton
Date: Fri Jul 28 2006 - 04:33:02 EST


On Fri, 28 Jul 2006 10:17:44 +0200
"Michal Piotrowski" <michal.k.k.piotrowski@xxxxxxxxx> wrote:

> Matt, can you look at this?
>
> My hunt file shows me, that this patches are causing oops.
> GOOD
> #
> #
> task-watchers-task-watchers.patch
> task-watchers-register-process-events-task-watcher.patch
> task-watchers-refactor-process-events.patch
> task-watchers-make-process-events-configurable-as.patch
> task-watchers-allow-task-watchers-to-block.patch
> task-watchers-register-audit-task-watcher.patch
> task-watchers-register-per-task-delay-accounting.patch
> task-watchers-register-profile-as-a-task-watcher.patch
> task-watchers-add-support-for-per-task-watchers.patch
> task-watchers-register-semundo-task-watcher.patch
> task-watchers-register-per-task-semundo-watcher.patch
> BAD

Thanks for working that out.

I've actually been thinking that we shouldn't proceed with those patches.

They're a nice cleanup and make the kernel code _look_ better and I really
like them because of this. But the cost is potentially significant. We
replace N direct calls with a walk of a notifier chain, more than N
indirect calls, demultiplexing at the other end and then a direct call.
That's a significant amount of additional overhead to make the kernel
source look nicer.

Plus, ugly though it is, you can look at the current code and see what it's
doing. With a notifier chain you have to grep around the tree and work out
what might be hooking into the chain, which is harder.

Finally, the consolidation into a notifier chain forces all the
fork/exit/exec hooks into an one-size-fits-all model. What happens if one
subsystem wants to hook in before exit_mmap() and another one wants to hook
in after exit_mmap() (for example)?


-
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/