Re: [Bug #11308] tbench regression on each kernel release from 2.6.22-> 2.6.28

From: Ilpo Järvinen
Date: Wed Sep 17 2008 - 13:04:35 EST


On Wed, 17 Sep 2008, Mike Galbraith wrote:

> On Wed, 2008-09-17 at 16:36 +0300, Ilpo Järvinen wrote:
> > On Wed, 17 Sep 2008, Mike Galbraith wrote:
> >
> > > On Wed, 2008-09-17 at 14:49 +0200, Ingo Molnar wrote:
> > >
> > > > git log --pretty=format:"%h: %s" 2069f45..847106f | grep -viE \
> > > > 'block|alsa|pcmcia|sound|Merge|iosched|blk|DAC960|scsi|s390|paride|pktcdvd|filter|cdrom|drm'
> > > >
> > > > gives us:
> > > >
> > > > 7daf705: Start using the new '%pS' infrastructure to print symbols
> > > > 6f0f0fd: security: remove register_security hook
> > > > 93cbace: security: remove dummy module fix
> > > > 5915eb5: security: remove dummy module
> > > > b478a9f: security: remove unused sb_get_mnt_opts hook
> > > > 32502b8: splice: fix generic_file_splice_read() race with page invalidation
> > > > 8b3d356: ramfs: enable splice write
> > > > a144ff0: xen: Avoid allocations causing swap activity on the resume path
> > > >
> > > > which really only leaves that security commit your bisection fingered.
> > > > Which _slightly_ raises its likelyhood of being implicated. Structure
> > > > size changes can move two formerly far-apart netperf-relevant symbols on
> > > > the same cacheline, which can start cache ping-pong-ing badly.
> > >
> > > I sure hope it's something like ping-pong, it's driving me NUTS.
> >
> > How about dividing the problem to smaller blocks then by restoring
> > parts of the change...
>
> Well, what I've done is check out the "bad" tree, reverted every darn
> commit between there and the "good" tree, and then reverted the reverts
> so I have a nice merge-free line and don't have to remember to think
> backward. (probably sounds silly to git-foo masters) I'll try
> bisecting that in the a.m. and see what happens.

This was my initial idea (which was mainly an error from my part as I
misread some shaids and midunderstood that the first regressing would be
the merge instead of the actual change), but in here I meant taking parts
of the 6f0f0fd on top of 6f0f0fd^. The most easiest way to do that
actually might be to do in fact the opposite, ie., but some of the
datastructure/layout changes back on top of 6f0f0fd and see if the
performance get restored (besides testing the Eric's patch).

--
i.