From: Matthew Helsley <matthltc@us.ibm.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Jan Beulich <jbeulich@novell.com>,
linux-kernel@vger.kernel.org, pagg@oss.sgi.com, erikj@sgi.com,
pj@sgi.com
Subject: Re: [PATCH 0/4] add task handling notifier
Date: Tue, 08 Jan 2008 19:27:23 -0800 [thread overview]
Message-ID: <1199849244.17010.190.camel@localhost.localdomain> (raw)
In-Reply-To: <1199845447.17010.149.camel@localhost.localdomain>
On Tue, 2008-01-08 at 18:24 -0800, Matt Helsley wrote:
> On Sun, 2007-12-23 at 12:26 +0000, Christoph Hellwig wrote:
> > On Thu, Dec 20, 2007 at 01:11:24PM +0000, Jan Beulich wrote:
> > > With more and more sub-systems/sub-components leaving their footprint
> > > in task handling functions, it seems reasonable to add notifiers that
> > > these components can use instead of having them all patch themselves
> > > directly into core files.
> >
> > I agree that we probably want something like this. As do some others,
> > so we already had a few a few attempts at similar things. The first one
> > is from SGI and called PAGG (http://oss.sgi.com/projects/pagg/) and also
> > includes allocating per-task data for it's users. Then also from SGI
> > there has been a simplified version called pnotify that's also available
> > from the website above.
> >
> > Later Matt Helsley had something called "Task Watchers" which lwn has
> > an article on: http://lwn.net/Articles/208117/.
>
> Apologies for the late reply -- I haven't had internet access for the
> last few weeks.
>
> > For some reason neither ever made a lot of progess (performance
> > problems?).
>
> Yeah. Some discussion on measuring the performance of Task Watchers:
> http://thread.gmane.org/gmane.linux.lse/4698
>
> The requirements for Task Watchers were:
>
> Allow sleeping in most/all notifier functions in these paths:
> fork
> exec
> exit
> change [re][ug]id
> No performance overhead
> One "chain" per path ("I only care about exec().")
> Easy to use
> Scales to large numbers of CPUs
> Useful to make most in-tree code more readable. Task Watchers took
> direct calls to these pieces of code out of the fork/exec/exit paths:
> audit
> semundo
> cpusets
> mempolicy
> trace irqflags
> lockdep
> keys (for processes -- not for thread groups)
> process events connector
> Useful for loadable modules
>
> Performance overhead in microbenchmarks was measurable at around 1% (see
> the URL above). Overhead on benchmarks like kernbench on the other hand
> were in the noise margins (which were around 1.6%) and hence I couldn't
> determine the overhead there.
>
> I never got the loadable module part completely working due to races
> between notifier functions and the module unload path. The solution to
> the races seemed to require adding more overhead to the notifier
> function paths (SRCU-like grace periods).
>
> I stopped pushing the patch set because I hadn't found any new
> optimizations to offset the overheads while still meeting all the
> requirements and Andrew still felt that the "make it more readable"
> argument was not sufficient to justify its inclusion.
Oops. It's been nearly two years so I've forgotten exactly where Task
Watchers v2 was when I stopped pushing it. After a bit more searching I
found a more recent posting:
http://lkml.org/lkml/2006/12/14/384
And here's why I think the microbenchmark results improved to the point
there was a small performance improvement over mainline:
http://lkml.org/lkml/2006/12/19/124
I seem to recall kernbench was still too noisy to tell.
The patch allowing modules to register Task Watchers still isn't posted
there for the reasons I've already described.
Cheers,
-Matt Helsley
prev parent reply other threads:[~2008-01-09 3:27 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-20 13:11 [PATCH 0/4] add task handling notifier Jan Beulich
2007-12-20 22:25 ` Ingo Oeser
2007-12-21 7:36 ` Jan Beulich
2007-12-23 12:26 ` Christoph Hellwig
2007-12-25 22:05 ` Andrew Morton
2008-01-08 13:38 ` Jan Beulich
2008-01-08 22:14 ` Andrew Morton
2008-01-09 0:03 ` Paul Jackson
2008-01-09 0:31 ` Andrew Morton
2008-01-09 2:47 ` Matt Helsley
2008-01-09 3:22 ` Andrew Morton
2008-01-09 9:52 ` Jan Beulich
2008-01-09 10:03 ` Christoph Hellwig
2008-01-09 2:24 ` Matt Helsley
2008-01-09 3:27 ` Matthew Helsley [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1199849244.17010.190.camel@localhost.localdomain \
--to=matthltc@us.ibm.com \
--cc=erikj@sgi.com \
--cc=hch@infradead.org \
--cc=jbeulich@novell.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pagg@oss.sgi.com \
--cc=pj@sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox