Subject: Re: [bloat] Measuring header file bloat effects on kernel build performance: a more than 2x slowdown ...

From: Ingo Molnar <[email-masked]>
Date: Mon, 23 May 2011 13:51:38 +0200

* Alexey Dobriyan <[email-masked]> wrote:

> On Mon, May 23, 2011 at 1:55 PM, Ingo Molnar <[email-masked]> wrote:
> >
> > * Alexey Dobriyan <[email-masked]> wrote:
> >
> >> On Mon, May 23, 2011 at 12:09 PM, Ingo Molnar <[email-masked]> wrote:
> 
> >> > Anway, what i tried to demonstrate with this mail how much *real* slowdown
> >> > in the kernel build our current header file bloat is causing. We could
> >> > literally halve our kernel build times if we fixed this!
> >>
> >> News at 11!
> >
> > I have not seen *actual hard numbers* measured before, so how exactly is this
> > news at 11? So i think your condescending reply is neither fair nor justified.
> 
> That's because the final number itself neither important nor interesting.

I disagree rather violently: it's obviously important to know whether it's a 
marginal 3% or the massive 50%+ i measured ...

It's also important to know whether latest GCC got faster at parsing away 
~30-40 KLOC of irrelevant crap. (it didn't)

> It's enough to know it's big enough.
> 
> Even removing "extern" from prototypes has small but noticeable effect, 
> you're talking about real headers.
> 
> Linus dropped few header cleanups of mine, I don't even know when is the 
> right time to send them now.

I do not think your header cleanups are discouraged by Linus, at all (i think 
they were always pretty nice and valuable) - i think you misinterpreted the 
did-not-get-applied events:

Firstly, i've seen a fair amount of avoidable breakage from your header 
cleanups, which are really testable with relatively simple means (key configs 
and randconfig) - so you could either try to improve your testing, or you could 
try to team up with someone better at testing to produce less buggy patches, or 
you could push it into linux-next.

But my main guess is that it's mostly just bad timing: if you don't work 
through maintainer trees (which you don't and sometimes you can't) you don't 
want to push when there's lots of pending trees (for example right now in the 
merge window), nor when possibly-broken cleanups are frowned upon (-rc3 or 
later).

-rc1 to -rc2 would be a pretty safe and large window to send such bits IMO.

Thanks,

	Ingo