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

Ingo Molnar
2008-09-17T12:49:43Z

* Mike Galbraith <efault-Mmb7MZpHnFY@public.gmane.org> wrote:

> > It looks like a potentially bogus bisection result, but _maybe_ it
> > has relevance: changes the size of "struct security_operations",
> > which could have alignment and layout effects on all sorts of kernel
> > variables, kmalloc sizes, etc.
>
> This may well be a mythical creature infestation for all I know ;-),
> but it's address is somewhere in the 2069f45..847106f block, 316
> commits, none of which look like they should be the least bit
> interesting to netperf. I reverted this particular commit in 27.git,
> got the expected result. Looks like I'll keep poking at it, can't
> seem to resist. Grr.

are you sure it's 2069f45..847106f? Filtering out the
likely-uninteresting commits:

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.

It wouldnt be the first such incident - alignment changes impacting
macro benchmarks. (and it's hard to find it as the thing that changes
alignment/size/sharedness might be something totally unrelated)

It's still a bit too early to say this for sure though ...

Ingo